TWIL7 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. [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. [TWIL] Ehcache Replication으로 세션공유하기 캐시 라이브러리인 Ehcache를 이용하여 이중화 구성에서 세션을 공유하는 방법에 대해 정리해보았습니다.기준 버전은 Ehcache 2.10 입니다.만약 인증을 담당하는 인증 서버가 여러대일때, 우리는 어떻게 세션 공유를 할 수 있을까요?저희 팀은 이를 위해 EHcache의 RMI Replication을 이용하고 있어요. 1. 클라이언트가 로그인 하면 인증토큰을 발급2. Ehcache에 인증 토큰을 저장3. Ehcache Replication을 사용하여 다른 서버에도 자동으로 복제4. 이후 사용자가 다른 서버로 접속해도 동일한 인증토큰으로 인증 상태를 유지 이런 흐름으로 세션이 공유되고 있습니다. 그럼 지금부터 Ehcache에 대해 알아보고 어떻게 사용하는지 알아볼게요. #1. Ehcache가 뭐야?E.. 2025. 2. 28. 이전 1 2 다음