일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- 비전공자를 위한 데이터베이스 입문
- ORA-00922
- Oracle 사용자명 입력
- oracle
- Oracle Express Edition
- ORA-12899
- 무료 오라클 설치
- Oracle 18c 설치
- Oracle 초기 사용자
- Oracle 18c HR schema
- Oracle 사용자명
- 무료 오라클 데이터베이스
- 오라클 캐릭터셋 조회
- Oracle 테이블 대소문자
- oracle 18c
- ora-01722
- 윈도우 Oracle
- 오라클 캐릭터셋 확인
- Oracle 18c HR
- Orace 18c
- 오라클 캐릭터셋 변경
- Oracle 윈도우 설치
- Oracle 테이블 띄어쓰기
- 서평단
- Today
- Total
목록Development (116)
The Nirsa Way
[Spring Boot] 코틀린 Mockk 기반 단위 테스트스프링 부트 환경에서 보통 많이 쓰이는 목킹 라이브러리는 Mockito와 Mockk을 사용하게 됩니다. 대부분 자바 진형에서는 Mockito를 많이 사용하지만 Mockk는 final 클래스, 확장 함수, 코루틴 테스트 등 코틀린에 친화적인 목킹 라이브러리로써 코틀린 진형에서 테스트 코드를 작성할 때 많이 사용됩니다.Mockk에서 자주 사용되는 어노테이션은 다음과 같습니다.@Mockk : Mock 객체를 생성할 필드에 사용@InjectMockks : 테스트 대상 객체 생성 및 Mockk 객체 주입@ExtendWith(MockkExtension::class) : JUnit5 환경에서 Mockk 활성화// 예시 코드@ExtendWith(MockKExt..
이메일 인증 구현 - Redis 유효 시간 적용하기이미 로컬에 redis가 설치되어 있다는 전제하에 진행합니다. 윈도우 환경에 redis를 설치하는 것은 https://github.com/microsoftarchive/redis/releases 으로 접속하셔서 msi를 다운 받아 실행하시면 됩니다.build.gradle에 redis 의존성과 application.properties쪽에 설정을 추가해주세요.implementation("org.springframework.boot:spring-boot-starter-data-redis:3.5.4")spring.data.redis.host=localhostspring.data.redis.port=6379 RedisConfig를 생성하여 빈을 등록해줍니다.@Co..

이메일 인증 구현 - Naver SMTP인증 구현을 위해 네이버 로그인 및 메일로 이동하여 좌측 하단의 환경설정을 클릭합니다. POP3/IMAP 설정을 클릭 후 사용함으로 변경하고 확인을 눌러주세요. 저장을 클릭하면 하단에 아래와 같은 정보가 표시됩니다. (선택) 앱 비밀번호를 위해 2단계 인증 및 앱 비밀번호 설정을 진행합니다.2단계 인증이 안되어 있으신 분들은 "설정"으로 나올텐데, 2단계 인증을 먼저 등록 해주세요. 직접 입력은 편하신 대로 입력 후 "생성하기" 버튼을 클릭하면 앱 비밀번호가 생성됩니다. 이제 스프링 부트에서 이메일을 전송할 때 해당 앱 비밀번호를 사용할 예정입니다. 스프링 부트로 돌아가 build.gradle에 아래와 같이 의존성을 추가 해주세요.// https://mvnrepos..

실시간 메시지 병렬 처리 실험 - 2 (Partition과 Consumer 인스턴스의 상관 관계)Partition과 Consumer 인스턴스의 차이를 확인하기 위한 부하 테스트 입니다. 셋팅은 실시간 메시지 병렬 처리 실험 - 1 (셋팅, JMeter, plugins-manager) 을 참고해주세요.코드는 적절한 파티션 수를 구하는 방법에서 작성한 그대로 사용하며 OrderConsumer만 처리 지연을 발생시키기 위해 아래와 같이 변경합니다.@Componentpublic class OrderConsumer { @KafkaListener(topics = "order-topic", groupId = "order-group", concurrency="1") public void listen(Orde..

실시간 메시지 병렬 처리 실험 - 1 (셋팅, JMeter, plugins-manager)병렬 처리 실험을 위한 셋팅입니다. 스프링 부트에 간단한 주문 시스템을 만들어 두었으니 해당 컨트롤러로 요청하여 부하 테스트를 진행하기 위해 셋팅하는 포스팅입니다.우선 https://jmeter.apache.org/download_jmeter.cgi으로 접속하여 다운로드 받아주세요. 저는 윈도우 환경이므로 zip 파일을 다운로드 받았습니다. 이후 jmeter-plugins 설치를 위해 https://jmeter-plugins.org/install/Install/으로 접속하여 다운로드 받아주시고 JMeter의 lib/ext 폴더 안에 설치한 jmeter-plugins-manager-1.11.jar를 넣어주세요. 설치..

적절한 파티션 수를 구하는 방법컨플루언트 Docs를 보면 max(t/p, t/c) partitions와 같은 공식을 기준으로 파티션 수를 계산하라는 언급이 있습니다. 현재 저는 Key 기반으로 카프카를 실습중이며 컨플루언트의 기술 블로그 중 내용을 보면 Key 기반으로 메시지를 전송하는 경우 주의해야 한다는 내용이 작성되어 있습니다. 해시 함수를 이용해 Key를 라우팅하게 되는데 파티션 수가 증가하면 다른 파티션으로 라우팅 될 가능성이 생겨 순서 보장이 깨질 수 있다는 내용입니다.그렇기 때문에 보통 오버 파티셔닝을 하여 파티션 수를 계산할 때 현재가 아니라 향후 1~2년간의 예상 처리량을 기준으로 파티션을 결정한다고 합니다. 이제 파티션 수를 결정해 볼텐데, 아래와 같은 예상 시나리오를 기반으로 진행합..

Spring Boot와 연동하여 간단한 주문 시스템 만들기 - (요청/응답 받기)이제 스프링부트와 연동하여 아주 간단한(요청/응답 받기 수준) 주문 시스템을 만들 예정입니다. html, css, js 파일은 올려두었으니 혹시 필요하신분이 계시다면 다운로드 받아 스프링 부트 환경에 셋팅해주시면 됩니다. 참고로 현재 셋팅은 타임리프 기준입니다. 현재 저는 스프링 부트 3.5.3 버전을 사용중이며 아래와 build.gradle에 개발 시 필요한 web, devtool, lombok, thymeleaf 의존성을 주입 받고 카프카를 사용할 예정이기에 spring-kafka도 추가하여 주세요.dependencies { implementation 'org.springframework.boot:spring-boo..

리눅스에 카프카 설치하기현재 저는 VMware에 리눅스 서버(Rocky 9.6)를 준비해두었으며 테스트를 위한 서버이므로 selinux, firewalld를 모두 disabled 해두었습니다. 우선 kafka의 바이너리를 다운로드 받기 위해 vim, wget, tar을 설치해두겠습니다.dnf -y install vim wget tar※ 만약 자바가 설치되어 있지 않은 경우 설치 진행저의 경우 dnf -y install java-17-openjdk java-17-openjdk-devel -y 을 입력하여 jdk 17을 설치해두었습니다. 이후 https://downloads.apache.org/kafka/ 으로 이동하여 원하는 버전의 폴더를 클릭합니다. (저는 3.9.0으로 진행하겠습니다) 소스 다운로드와 ..

카프카의 핵심 요소카프카의 핵심 요소는 크게 Topic, Partition, Offset, Consumer Group, KRaft, Replication, Durability으로 구성되어 있습니다. 1. Topic메시지를 분류하는 논리적 단위입니다. 생산자는 Topic에 메시지를 발행(Publish) 하고, 소비자는 Topic을 구독(Subscribe)하여 메시지를 가져갑니다. 2. Parttion, Offset각각의 Topic은 여러 개의 Partition으로 분할되어 병렬 처리가 가능합니다. Partition은 메시지를 물리적으로 저장하는 단위로써 메시지는 파티션 내에서 Offset을 기준으로 정렬됩니다.또한 Offset은 파티션 내 메시지의 고유한 순번으로써 Consumer는 각 partition에..

Apache Kafka란?실시간의 스트리밍 데이터를 수집하고 처리하는 분산형 스트리밍 플랫폼 입니다. 이미 많은 기업에서 도입하여 사용되고 있으며 대용량 트래픽을 처리하기 위한 해결 방안으로써 많이 주목을 받고 있습니다.이번 포스팅에서는 Kafka를 공부하기 전 밑바탕이 되는 개념인 메시지 브로커와 Pub/Sub & 스트리밍에 대한 내용을 다룹니다.메시지 브로커(Message Broker)메시지 브로커는 송신자(Producer)와 수신자(Consumer)간에 메시지를 중계하며 비동기적으로 데이터를 주고받게 하는 시스템입니다. 시스템간 직접 통신을 대신하여 중간에서 메시지를 효율적으로 전달해주는 역할을 수행합니다.메시지 브로커의 구성요소는 아래와 같으며 Topic은 Pub/Sub 패턴으로써 여러 수신자(C..