본문 바로가기

전체 글336

SpringBoot 3.3.x → 3.4.x Migration 트러블슈팅 서버 모듈에 사용하는 SpringBoot 버전을 변경하는 이슈를 맡아서마주한 문제점들을 공유해보겠습니다. 이번에 제가 맡은 일은 저희 팀에서 관리하는 자바 모듈의 SpringBoot 의존성을 3.4.3버전으로 변경하는 것이었어요.아직 쭈니어 개발자인 저… 의존성 버전을 변경하는 이슈는 개발자 인생에서 처음이었는데요.SpringBoot 3.3.1 → 3.4.3“메이저 버전은 그대로고, 마이너 버전만 변경하는 것이니 별로 달라진거 없을거다. 다른 프로젝트에서도 똑같이 SpringBoot 버전을 변경했는데, 문제 없이 잘 동작했다. “는 말을 듣고“아 그럼 버전 올리고 테스트 한 바퀴 돌리면 끝이겠다~ 빨리 끝나겠다~” 라는 생각을 했습니다.그리고 버전을 올려서 서버를 패치했는데 제대로 동작하지 않았어요. 문.. 2025. 4. 20.
[TWIL] DNS와 /etc/hosts 사이트에서 DNS 서버 정보를 변경해서 /etc/resolv.conf 파일이 변경이 되었는데,서비스에 영향도가 있냐는 문의가 왔었습니다. 오늘은 DNS 서버는 무엇이고, /etc/resolv.conf 파일은 무엇인지.hostName 설정하는 /etc/hosts 파일은 무엇인지정리해보는 시간을 가져보겠습니다.  1. DNS 서버네임서버라고도 불리는 DNS(Domain Name System)서버는 도메인을 IP주소로 변환시켜서 사용자가 원하는 정보를 가진 컴퓨터로 찾아가게 해주는 역할을 수행합니다. 예를 들면,1. 웹 브라우저에 도메인을 입력하면 컴퓨터는 해당 IP 주소를 얻기 위해 DNS 서버에 요청을 보냅니다2. DNS서버는 데이터베이스를 검색하거나 다른 DNS서버에 연결하여 도메인과 연결된 IP주소를 .. 2025. 4. 13.
Quartz 라이브러리 기본 구성 ✅ Quartz의 기본 구성 요소 구성요소 설명Job실제로 수행할 작업을 정의한 인터페이스 (org.quartz.Job)Spring에서는 @Component, @DisallowConcurrentExecution 등으로 관리 가능JobDetailJob 인스턴스를 정의하고 구성하는 정보 객체 (Job의 클래스, 이름, 그룹, 데이터 등 포함)Job 클래스에 대한 메타 정보라고 할 수 있고, 동일 Job이라도 파라미터 달리 해서 여러 개 만들 수 있음TriggerJob이 언제 실행될지를 정의 (시간, 주기, 조건 등)단일 Job에 여러 개도 붙을 수 있음JobDataMapJob 실행 시 함께 전달할 데이터(Map 구조)JobDetail과 Trigger 양쪽에서 설정 가능. 병합되어 Job에 전달됨Schedul.. 2025. 4. 5.
[TWIL] Quartz : Multi WAS 환경에서의 배치 스케줄링 방식 이해하기 특정한 시각이나 일정한 시간 간격을 두고 주기적으로 실행해야 하는 작업을 스케줄링 작업이라고 하는데요. 주로 백그라운드에서 반복적으로 수행해야 하는 작업입니다. SpringBoot 환경에서 스케줄링 작업을 구현할 때는 2가지 방식을 사용할 수 있습니다.  1. Spring Scheduler별도의 추가적인 의존성 필요x 스프링 프레임워크에서 제공하는 기능@EnableScheduling 어노테이션 사용2. Quartz오픈소스 Java 스케줄링 라이브러리 (SpringQuatz 의존성을 받을수도, 따로 사용할수도 있다)Scheduler간의 Clustering 기능Scheduler 실패에 대한 후처리 가능이벤트 처리 가능이렇게 Quartz로 스케줄링을 구현하면 구현이 복잡해지긴 하지만, 세부 설정이 가능해지는 .. 2025. 4. 5.
[TWIL]CPU 과점유 시 확인해야 할 사항들 이번에 통합 테스트를 진행하면서 cpu가 과점유되는 현상이 있었는데요.그때 대처했다면 더 좋았을 사항들을 회고하려고 합니다. 문제 상황 : 새로운 기능에 대한 통합 테스트 중 java 모듈이 순간적으로 cpu를 과점유 한다는 제보해당 상황에서 전체적인 응답 지연 발생Keep : 프로젝트에서 만족했고, 앞으로의 업무에서 지속하고 싶은 부분Top 명령으로 cpu 과점유를 하는 것으로 의심되는 process를 특정할 수 있었습니다. linux의 top 은 시스템 리소스 모니터링 도구로, CPU, 메모리 사용량, 프로세스 목록 등을 실시간으로 확인할 수 있습니다.옵션 없이 사용하면 3초마다 화면을 갱신하면서 CPU 사용률 순으로 정보를 보여줍니다. top 명령 실행 시 아래와 같은 화면이 표시됩니다. Top 명.. 2025. 3. 21.
[TWIL]Git upstream과 친해지기 여러분은 Git과 친하신가요? 개발자라면 피할 수 없는 존재가 바로 Git일텐데요.하지만 전 Git 하수... Git을 매일 사용하지만 패키징 기간이 오면 머지할 생각에 걱정부터 앞서는 주니어 개발자입니다. 따라서 오늘은 저희 팀에서 사용하는 upstream을 활용하는 Git 머지 방법에 대해 정리해보려고 합니다. # Git-Flow 전략일단 저희 팀은 기본적으로 Git-Flow 전략을 채택하고 있습니다. 항상 유지되는 master, develop 브랜치와일시적으로 생성되는 feature, release, hotfix 브랜치로 구성되는 branch 전략입니다. master (or main) 배포된 최종 버전이 존재하는 브랜치입니다. 언제든지 제품으로 바로 사용할 수 있는 상태여야 합니다. 따라서 제일 안.. 2025. 3. 15.