| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 1차원 DP
- 2차원 dp
- 99클럽
- @BeforeAll
- @BeforeEach
- @Builder
- @Entity
- @GeneratedValue
- @GenericGenerator
- @NoargsConstructor
- @Query
- @Table
- @Transactional
- Actions
- Amazon EFS
- amazon fsx
- Android Studio
- ANSI SQL
- api gateway 설계
- api gateway 필터
- ApplicationEvent
- argocd
- assertThat
- async/await
- AVG
- AWS
- aws autoscaling
- aws eks
- aws iam role
- AWS KMS
- Today
- Total
목록전체 글 (340)
기록
1. -DskipTestsmvn package -DskipTests 이 옵션은 테스트 실행만 생략한다. 테스트 코드는 여전히 컴파일된다. 즉 test-compile 단계는 수행되지만, test 단계에서 실제 테스트 러너는 동작하지 않는다. 그 결과 테스트 코드에 문법 오류가 있으면 빌드는 실패한다. 실행은 하지 않지만, 컴파일 오류는 그대로 잡아낸다. 2. -Dmaven.test.skip=truemvn package -Dmaven.test.skip=true 이 옵션은 테스트 컴파일과 실행을 모두 생략한다. 테스트 관련 단계 자체를 건너뛴다. 따라서 src/test/java에 문법 오류가 있어도 빌드는 통과한다. 이 방식은 테스트 영역을 빌드에서 완전히 제외하는 것에 가깝다.
보호되어 있는 글입니다.
1. 개요왼쪽은 Maven의 선형 라이프사이클 구조다. 사용자는 mvn test, mvn package처럼 어디까지 실행할지를 선택하며, 해당 단계까지 정해진 순서대로 내려간다. 각 단계는 내부적으로 플러그인이 실제 작업을 수행한다. 오른쪽은 Gradle의 task 의존성 구조다. build는 assemble과 check에 의존하고, check는 다시 test에 의존한다. Gradle은 먼저 이러한 의존 관계를 계산한 뒤, 필요한 task만 실행한다. 단계가 아니라 의존 그래프를 기준으로 동작한다. 1. Apache MavenMaven은 정해진 순서를 따라 내려가는 빌드 도구다. validate → compile → test → package → install → deploy라는 단계가 이미 정해져 있다..
개요2025년 8월부터 2026년 2월까지 진행한 쿠버네티스 스터디에서 《Kubernetes Patterns, 2nd Edition》을 교재로 사용했다. 이 책은 쿠버네티스 환경에서 반복적으로 등장하는 배포, 운영, 확장 문제를 패턴 형태로 정리한다.https://www.oreilly.com/library/view/kubernetes-patterns-2nd/9781098131678/ Kubernetes Patterns, 2nd EditionThis second edition comes with a dedicated playlist of interactive Katacoda labs mapped to sections of the book. As you read through each chapter, you..
개요2025년 4월부터 5월까지 진행한 스터디에서 《스프링으로 시작하는 리액티브 프로그래밍》을 교재로 사용했다. 리액티브 프로그래밍의 기본 개념과 Reactive Streams, Project Reactor, Spring WebFlux의 핵심 내용을 다루는 책이다. https://product.kyobobook.co.kr/detail/S000201399476 스프링으로 시작하는 리액티브 프로그래밍 | 황정식 - 교보문고스프링으로 시작하는 리액티브 프로그래밍 | *리액티브 프로그래밍의 기본기를 확실하게 다진다*리액티브 프로그래밍은 적은 컴퓨팅 파워로 대량의 요청 트래픽을 효과적으로 처리할 수 있는product.kyobobook.co.kr목차Part 01 리액티브 프로그래밍(Reactive Programmi..
한국어 검색의 가장 큰 특징은 “단어의 경계가 명확하지 않다”는 점이다. 영어는 공백으로 단어가 구분되지만, 한국어는 띄어쓰기 오류나 복합명사 때문에 단순 문자열 비교로는 정확한 검색이 어렵다. 예를 들어 “무선마우스”, “무선 마우스”, “무선형 마우스”는 모두 사용자가 같은 제품을 찾으려는 의도지만, 문자열 기준으로는 완전히 다른 단어다. 이런 문제를 해결하기 위해 Elasticsearch에서는 Nori 분석기를 사용한다. Nori는 한국어 형태소 분석기(morphological analyzer)로, 문장을 의미 단위로 분해하고 색인과 검색을 돕는다.1. Nori 분석기의 기본 원리Elasticsearch는 데이터를 저장하기 전에 “토큰화(tokenization)” 과정을 거친다. 이 과정에서 텍스트..
검색 API의 목표는 사용자의 짧은 질의(q)를 받아 의미 있는 결과를 빠르고 안정적으로 반환하는 것이다. Query 서버는 Spring WebFlux 기반의 논블로킹 아키텍처 위에서 Elasticsearch와 통신하며, ReactiveElasticsearchOperations로 네이티브 쿼리를 유연하게 구성한다. 본 편에서는 컨트롤러→서비스→리포지토리 흐름, 검색 점수 모델 설계, 페이징·정렬·필터 확장, 에러·관측·성능 고려까지 단계적으로 정리한다.1. 전체 흐름 요청은 ProductQueryController → ProductQueryService → ProductQueryRepository → Elasticsearch 순으로 진행된다. 컨트롤러는 파라미터를 검증해 서비스로 전달하고, 서비스는 리포..
상품 검색 엔진의 핵심은 단순한 데이터 저장이 아니라, “검색 가능한 데이터로 변환하는 것”이다.API 서버가 Kafka를 통해 발행한 상품 등록 이벤트는 Query 서버(Spring WebFlux)를 거쳐 Elasticsearch로 전달되며, 이 과정을 담당하는 것이 바로 상품 색인기(Product Indexer) 이다. 색인기는 데이터를 읽고, 가공하고, 분석기를 적용해 검색 효율이 높은 형태로 재구성한다. 1. Query 서버 구조Query 서버는 Spring WebFlux 기반으로 구현되어 있으며, Kafka Listener와 Reactive Elasticsearch를 결합해 완전 비동기 방식으로 동작한다.색인기는 등록 요청이 몰려와도 스레드를 점유하지 않으며, Reactor 기반 스트림으로 I/..