Log4j2 아키텍처 분석하기 - 2
·
나의 생각
Configuration지난 글에서 봤던 모든 LoggerContext는 각각 활성화된 Configuration을 가지고 있습니다.모든 Appender, Layout, Filter, Logger의 설정을 모델링하며, StrSubstitutor 등의 참조를 포함하고 있습니다.Appender: 로그 출력 대상 (예: 파일, 콘솔, 원격 서버 등)Layout: 로그 메시지의 형식 정의Filter: 로그 출력 여부를 결정하는 조건Logger: 로그를 기록하는 주체StrSubstitutor: 변수 치환 기능을 제공하는 유틸리티 클래스 (예: ${env:HOME} 같은 표현을 실제 값으로 치환)Log4j Core의 Configuration은 일반적으로 애플리케이션 초기화 시에 수행됩니다.권장되는 방식은 1) 설정 ..
Log4j2 아키텍처 분석하기 - 1
·
나의 생각
들어가며본 글을 통해 제가 평소에 궁금했던 Log4j2에 대해서 직접 코드와 아키텍처를 분석해 보겠습니다.Log4j2는 2021년 11월에 Log4 Shell(취약점)로 인해 엄청난 문제가 발생했었는데, 당시의 저는 대학생이었고 사건에 대해서는 대략 들었지만 지식이 없어 더 깊게 알지 못했습니다. 지하철에서 옆 자리의 어느 개발자 분들이 이에 대해 이야기 나누는 것을 들었던 기억나네요.이번 기회를 통해 해당 사태의 주인공인 Log4j2에 대해서 더 깊이 알아볼 수 있으면 좋겠습니다.ModuleLog4j 프로젝트는 수많은 모듈로 이루어진 멀티 모듈 구조를 이루고 있습니다. 너무 많아 일부를 가져온 것이고, 아래에 몇 개의 모듈이 더 있습니다.그만큼 log4j는 다양한 환경에서 작동될 수 있도록 구현되어 있..
Log의 필요성과 주의점
·
나의 생각
들어가며백엔드 개발자(또는 개발자를 준비하는 사람)이라면 로그는 정말 중요하다는 말을 많이 듣게 됩니다.저 역시 초반에 귀가 닳도록 들었고, 그에 대한 중요성을 인지하고는 있었으나 몇 개의 프로젝트를 진행하다 보니 시간이 지나면서 비로소 직접 느끼기 시작했습니다.본 글을 통해 로그가 왜 중요한지 그리고 어떤 점에서 주의를 해야 할지 경험에서 느낀 저의 생각을 전달하려고 합니다. Log는 왜 필요하고 중요할까?애초에 왜 로깅이 필요한지에 대해서 얘기해보려고 합니다.일단 잠시 모든 것을 제쳐두고, 소제목처럼 원초적인 질문에 대해서 저의 한 문장의 대답은 이렇습니다.어떠한 시스템 즉 프로그램은 항상 예기치 못한 오류와 버그들로 가득 차 있고, 복잡한 코드 사이에서 버그가 발생했던 정확한 시간과 위치를 알아내고..
1.5년간의 취준의 삶, 그리고 현재
·
회고록
들어가며2023년 1월부터 2025 5월인 지금까지, 개발자로 거듭나기 위해 정신없이 달려오며 그동안 미루어왔던 나에 대한 회고를 해야겠다고 결심했다. 조금만 생각해 봐도 취준을 시작할 때보다 현재의 나는 많은 성장을 해왔음을 느낄 수 있다. 서류조차 뚫을 수 없었던 내가, 지금은 몇 개의 면접과 최종 결과를 기다리는 나름 경쟁력(?)이 있는 취준생이 되었다고 생각한다. 아직은 함께할 회사와 인연이 닿지 못했지만 앞으로 더더욱 성장하기 위해서는 그동안 내가 어떻게, 얼마나 성장했는지 회고하는 것이 필요한 것 같다. 2023년부터라면 취준의 기간이 2.5년 이라고도 볼 수 있겠지만, 내가 준비되었고 진심으로 회사에 문을 두드리기 시작한 것은 2024년이기 때문에 일단 1.5년이라고 생각하고 있다. 202..
[TnT] TSID 도입 - DB PK를 위한 ID 생성
·
Project - TnT
본 게시글은 IT 동아리 YAPP 25기에서 활동하면서 론칭한 앱 TnT를 개발하며 생각과 고민을 적은 게시글입니다. GitHub - YAPP-Github/TnT-Server: 🧨 Trainer & Trainee [YAPP 25th App-2 Team]🧨 Trainer & Trainee [YAPP 25th App-2 Team]. Contribute to YAPP-Github/TnT-Server development by creating an account on GitHub.github.com 들어가며TnT 서비스의 기초가 될 데이터베이스를 설계하면서 각 엔티티에 대한 PK를 어떻게 생성하면 좋을지 고민하게 되었습니다.이전까지는 DB에서 자동으로 생성해 주는 (MySQL의 Auto Increment) ..