전체 글

개발자로서의 저에 대한 기억을 로깅하기 위한 블로그입니다.
Java/Spring Boot

Datadog Agentlesss Logging 시 service 이름 추가하기

최근에 회사 내 Spring Boot 프로젝트 중 하나의 APM을 Datadog으로 변경하는 업무를 맡았다. Datadog은 정보를 수집하고 싶은 서버 당 Agent를 설치하는 방식을 권장한다. 그에 따라 수많은 환경에서 Agent를 설치할 수 있도록 지원하고 있다. 이번에는 로그 수집에 따른 요금 산정을 위해 회사 내 프로젝트에 급하게 적용할 필요가 있었고, DevOps 쪽 자원이 부족해 프로젝트에서 Agent 없이 로깅하는 형태로 먼저 적용해야 했다. 1단계: 공식 문서를 따라가기 공식 문서를 보면 아주 Log4j, Log4j2, Logback 등 로깅 라이브러리에 따라 Agentless Logging 방법을 안내하고 있다. 특별한 방법은 아니고 logstash-logback-encoder 라는 라이..

Java/Spring Boot

MultipartFile과 TeeFilter를 같이 사용하지 말자

분명 파일을 같이 보냈는데 요청 파일을 찾을 수 없다 최근에 받은 프로젝트에 대해서 전체적으로 테스트하고 결과를 기록하던 중에 이미지를 업로드하는 API에서 요청 파일을 MultipartFile로 받지 못하는 문제가 발생했다. @PostMapping("/image-upload") public ResponseEntity imageUpload(@RequestPart(value="file") MultipartFile multipartFile) { //... 이미지 업로드 로직 } 해당 API endpoint에 대해 작성되어있는 테스트 코드는 통과했기 때문에 애플리케이션 구동 시 request part 'file' is not present 라는 에러가 뜨는 게 당황스러웠다. 해당 버그를 해결하기 위해 많은 삽..

Java/Spring Boot

Spring Boot로 만드는 API 서버 템플릿 (2) - 맛있는 Refresh Token을 위한 여정

문제 상황 이전 글 에서 언급했던 것과 같이, API 템플릿에서 Refresh Token에 대해서 개발한 부분이 불편했다. 템플릿을 본격적으로 사용하기 전에 고쳐야 마음 편하게 API 템플릿을 사용할 수 있을 거라고 생각해서 이번에는 맛있는 Refresh Token을 만들고자 노력해봤다. 해결 과정 이번 글에서는 변경에 대한 고민 과정을 담는 것이 의미있을 것 같아서 Refresh Token 변경 과정을 모두 기록하고자 한다. github repo: https://github.com/y2gcoder/spring-api-backend-template 1. Refresh Token을 따로 분리하기 Refresh Token을 맛있게 바꾸기 위해서 제일 먼저 한 것은 Refresh Token을 분리하는 것이었다..

Java/Spring Boot

Spring Boot로 만드는 API 서버 템플릿 (1) - 시작

제작 배경 개발자로 일하면서 봤던 수많은 소프트웨어 개발 관련 용어들 중 개인적으로 제일 마음에 들었던 용어 DRY(Don't repeat yourself)였다. 언젠가부터 프로젝트를 시작할 때마다 환경 설정하는 과정이 너무 지루하게 느껴졌다. 똑같은 라이브러리를 추가하고, 해당 라이브러리에서 자주 사용하는 설정을 추가해주는 과정을 반복하는 것은 내가 좋아하는 DRY한 과정이 아니었다. 그래서 이번 기회에 개인적으로 스프링 부트를 이용해 프로젝트를 진행할 때마다 반복적으로 했던 기본 설정들을 Github 템플릿으로 만들어보기로 했다. 템플릿으로 만들어두면 나중에 개인 프로젝트를 진행할 때 초반 설정에 드는 시간을 절약할 수 있을 것이란 생각이 들었다. 인프런 강의을 참고해서 내 개인 설정과, 평소 적용하..

문파관작
y2g.log