728x90
로깅이란시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것 로그 레벨 (Log Level)로그의 레벨은 총 5가지로 구분된다. Error : 예상하지 못한 심각한 문제가 발생하는 경우DB 연결 실패예상하지 못한 예외 발생필수 파일이나 리소스 누락으로 인해 애플리케이션 실행 불가 Warn : 애플리케이션이 정상적으로 작동하지만, 주의가 필요한 경우이미 예측해서 처리한 예외에 대해 남기는 로그설정 파일이 누락되었으나 기본값 사용하여 동작은 가능 Info : 운영에 참고할만한 사항서버 애플리케이션 시작/중지주요 작업의 완료 여부 (ex. 스케줄러) Debug : 개발 단계에서 디버깅 용도SQL 쿼리 로깅외부 API 호출 요청/응답 로깅 Trace : Debug 레벨보다 더 세부적..
적용 배경DB password 등을 관리하는 application.yml 파일을 Github에 그대로 올리게 된다면 보안 상 문제가 될 수 있다.이러한 문제를 해결하고 application.yml 값을 안전하게 다루기 위해 사람들은 다양한 방식을 적용한다. 현재 왓캠퍼스 프로젝트는 빠른 배포를 위해서 단순히 application-prod.yml를 Git Actions Secrets을 통해 관리하고 있었다.그리고 CD 과정에서 artifact 파일을 생성하기 전, resources 패키지에 해당 파일을 저장해주는 방식을 사용했다. 하지만 그렇게 관리했을 때 특정 프로퍼티 값은 위와 같이 읽을 수 없는 문제가 발생했다.application-prod.yml 을 통해 다른 로컬에서 작업하려면 직접 해당 파일을..
작업 배경서버를 운영할 때는 로깅을 통해 서비스 운영에 유용한 매트릭을 흭득할 수 있다. 특히 요청/응답 정보 로깅은 실제로 서비스를 운영하면서 버그가 발생했을 때 해당 버그가 어떤 요청에서 비롯되어 어떻게 처리되다가 버그가 발생된 것인지를 쉽게 확인할 수 있도록 만들어준다.또한 '어떤 요청을 받고 있는지', '적절한 응답을 보내고 있는지', '수상한 요청(Dos, DDos 등)은 없는지', '요청에 소요된 시간이 길진 않은지' 등 유용한 지표를 얻을 수 있다. 이렇듯 장점이 명확하기 때문에 요청/응답 정보 로깅은 서버를 개발하는 과정에서 필수적으로 진행해야하는 과정이라고 생각한다.때문에 오늘은 스프링부트에서 Request/Response 정보를 로깅하는 방법에 대해서 알아볼 것이다. AOP 로깅 vs..
설정 이유기존에 인증서 흭득에 사용했던 certbot standalone 방식은 80번 포트에 직접 "독립형" 웹서버를 사용하여 인증서를 갱신하는 방식이다.하지만 Nginx같이 80번 포트를 사용하는 웹서버가 떠있는 경우 사용이 불가능하다.이전에는 Nginx를 사용하지 않아 standalone을 적용했지만, 이제는 Nginx를 사용하는 환경이기 때문에 다른 설정이 필요해졌다. 사전 작업 1. Gabia DNS 설정땅콩 서비스는 도메인 주소를 Gabia에서 구매했기 때문에 Gabia에서 설정을 건드리게 됐다.DNS 관리툴에 들어가서 DNS 설정을 클릭한다. 그리고 A 레코드 : 서브 도메인 : EC2 IPv4 주소 를 입력해서 기본 설정을 수행한다. 2. Nginx 설치sudo apt-get update..
우테코 수료일이 다가오면서, 우테코에서 제공했던 AWS 계정 만료일도 코 앞으로 다가왔다.때문에 우리 팀 계정으로 서버를 이관하기 위해 사전 작업을 수행하는 과정에서 IAM 관리자 사용자에 Region 제한 설정을 하게 되어 글로 남겨보려고 한다. 문제 상황AWS에서 솔루션을 이용하다보면 실수로 타 리전을 이용하고 있었던 경험이 한 번쯤은 있을 것이다.이런 문제가 발생하면 사용할 리전에 동일한 설정을 반복해야하는 문제가 있고,거의 그럴 일은 없겠지만 타 리전에 실수로 만든 것을 모르고 넘어가게 된다면 비용 문제로도 이어진다. 이를 해결하고자 사용할 IAM 사용자에 권한 정책 설정을 통해 서울 리전만 사용 가능하도록 설정해보고자 했다. 설정 과정 사용할 IAM에 권한 추가 - 인라인 정책 생성 선택 ..
문제 상황왓캠퍼스 프로젝트를 Java/Spring -> Kotlin/Spring 으로 마이그레이션 하는 과정에서 하나의 문제를 마주했다.바로 'Kotlin 코드에서 Lombok 적용이 안 된다는 점' 이었다. 이에 따라 간편한 로깅을 위해 사용하던 Lombok의 @Slf4j 애노테이션까지 사용이 불가능해졌다.때문에 로깅을 해야하기도 하고, 이유도 궁금해서 해당 문제의 원인에 대해 찾아보게 되었다. Lombok이란?Lombok 공식문서의 소개에 따르면 Lombok은 아래와 같은 라이브러리이다.Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never wr..