본문 바로가기

Backend

(30)
[Spring Boot]Exception Handling 하기 동작 과정에서 발생하는 Exception을 제어하는 방법을 작성한 포스팅입니다. [관련 포스트] [Spring Boot]Response Handling 하기-MVC [Spring Boot]Response Handling 하기-Flux [활용 목적] 예외 처리된 결과를 특정 포맷으로 변경하여 제공하고 싶은 경우 Exception 별로 별도의 동작(로그, 추가 행동)을 작성하려는 경우 [Dependencies] dependencies { ... implementation 'org.springframework.boot:spring-boot-starter-web' // 별도의 모듈로 만들고 프로젝트가 MVC인지 Flux 인지 모를 경우 // implementation group: 'javax.servlet', ..
[Spring Boot] Feign Client 로그 미동작 해결 Feign Client의 logLevel을 FULL로 설정하면 통신과정에서 주고받는 정보 등을 모두 log로 확인할 수 있습니다. 하지만 jar로 빌드 후 서비스를 배포하면 log가 보이지 않게 됩니다. 해당 현상에 대해 원인 파악 후 알게 된 해결방법을 작성합니다. 문제 Jar File로 배포 후 서비스 동작 시 Feign Client의 log가 확인되지 않는다. 원인 Feign Client를 만드는 과정에서부터 시작됩니다. @Configuration public class VCAClientConfig { @Bean public VCAClient vcaClient(@Autowired ObjectMapper objectMapper, @Value("${client.vca.url}") String url) ..
[Spring Boot] Gradle을 사용하여 편하게 배포하자! 서버 배포 시 매번 수정된 properties 파일과 jar 파일을 여러 번의 명령어를 통해 이동시키는 것이 번거로워 해결했던 방법을 작성하였습니다. * 현재 dockerfile을 통한 배포 및 업데이트를 진행하고 있으므로 추후 내용을 포함하도록 하겠습니다. 우선 제가 진행했던 프로젝트에서 배포할 내용은 다음과 같습니다. application.yml & properties 파일 jar 파일 외부 서버 호출 전용 lib 폴더 암호화 및 인증에 필요한 cert 폴더 목표는 build -> 생성된 파일 run 디렉토리로 이동입니다. 구성 build.gradle에 내용 추가 doLast는 task의 동작 끝에 추가 동작을 설정하는 함수입니다. ext { rootProjectName = getRootProject..
[SpringBoot] 외부 Properties File 사용하기 서버 구성에 필요한 속성을. properties 또는. yml 파일에 작성합니다. 저 같은 경우가 때 src/main/resources 경로에 위치한 application.properties에 작성하는 편인데 서버 배포 과정 중 문제가 있었습니다. 서비스 초기 배포다 보니 스케줄링 설정, 암호화 파일의 경로나 확장 파일의 경로가 추가되는 등 properties가 자주 변경하는 일이 발생하였고, 변경된 properties를 적용하기 위해 반복적으로 서버의 build가 발생하는 상황이었습니다. properties가 변경되었다고 해서 서버의 build가 발생해야 하는 것은 비효율적이라 생각하여 다른 방법을 찾기로 하였습니다. Property 읽는 과정 Property를 바인딩하는 다양한 방법이 존재하듯이 바인..
Elastic Search CRUD 이전 포스트 Elastic Search Inverted Index 이전 포스트 Elastic Search Mapping Type 이전 포스트 Elastic Search Data Type 이전 포스트 Elastic Search 버전 별 차이점 이전 포스트 Elastic Search 추상화 개념 이전 포스트 Elastic Search의 가장 큰 특.. pcloud.tistory.com 기본적인 CRUD(Create, Read, Update, Delete) 연산에 대해 학습하겠습니다. Elastic Search는 REST API를 준수하며, CRUD 연산은 Document를 대상으로 수행할 수 있습니다. Index API(색인 API) ID 명시 Document 색인 만약 기존에 존재하는 Document ID..
Elastic Search Inverted Index 이전 포스트 Elastic Search Mapping Type 이전 포스트 Elastic Search Data Type 이전 포스트 Elastic Search 버전 별 차이점 이전 포스트 Elastic Search 추상화 개념 이전 포스트 Elastic Search의 가장 큰 특징이라면 RDBMS와 다르게 Document 지향적이.. pcloud.tistory.com Elastic Search의 검색이 빠른 이유는 무엇일까요? 여러가지 이유가 있겠지만 그 중 전문 텍스트 검색을 지원하는 시스템에서 핵심 데이터 구조인 역색인(Inverted Index)을 꼽을 수 있습니다. Inverted Index는 마치 책 마지막에 정리된 색인 목록과 유사한 성격을 갖고 있습니다. 진행할 예제는 [일래스틱 스택 6 입..
Elastic Search Mapping Type 이전 포스트 Elastic Search Data Type 이전 포스트 Elastic Search 버전 별 차이점 이전 포스트 Elastic Search 추상화 개념 이전 포스트 Elastic Search의 가장 큰 특징이라면 RDBMS와 다르게 Document 지향적이며, 이를 일급 객체로 취급하는 것입니. pcloud.tistory.com Mapping Type 이전 포스트의 예제 중 /message/_doc/1 색인을 진행하였다면, 모르는 사이 자동으로 Mapping이 생성되었을 것입니다. Mapping은 Index에 삽입될 Field의 Data Type을 정의하는 것을 말합니다. Mapping을 하지 않았지만 GET /message/_doc/1을 진행할 수 있던 이유는 Elastic Search에서..
Elastic Search Data Type 이전 포스트 Elastic Search 버전 별 차이점 이전 포스트 Elastic Search 추상화 개념 이전 포스트 Elastic Search의 가장 큰 특징이라면 RDBMS와 다르게 Document 지향적이며, 이를 일급 객체로 취급하는 것입니다. 당연하게도 RDMBS의 스키마처럼 DB 구 pcloud.tistory.com RDBMS와 Elastic Search를 비교한 내용을 기억한다면 Elastic Search엔 Schema가 존재하지 않는 것을 알 것입니다. Elastic Search는 field와 field type 없이도 Document를 저장할 수 있습니다. 하지만 실제 운영 환경에서 사용하는 데이터는 Schema가 존재하며 체계화된 구조를 갖고 있습니다. 예로 Elastic Search..