Weekly I Learned/2023's(1. ~ 12.) WIL 52

2023년 11월 3주차(11/20 ~ 11/24) Weekly I Learned "내실을 다져야 할 때! ✍"

지난 한 주 되돌아보기 11월 3주차는 오랜만에 큰 무리 없이 보낼 수 있었던 한 주였다. 아울러, 11월 2주차에 개발 작업을 마무리한 부분이 QA 도 통과되서 production 으로 배포까지 마무리도 되었다. 앞으로는 다음 작업 사이클을 대비하여 Spring, Database 등 내실을 다지고자 한다. 💪 JPA 의 N + 1 에 대해 놓치고 있었던 부분을 잡다! 동기로부터 JPA 의 N + 1 이슈에 대한 질문을 받았는데, 그 질문에 대해 답을 하면서 그동안 제대로 인지하지 못하고 있었던 부분에 대해 바로 잡을 수 있었다. ⭐ 1 : N 관계에서 1 을 driving table 로 하여 fetch join 없이 단건 조회(findById)했을 때 1 에 연관된 N 의 엔티티들은 하이버네이트가 생성..

2023년 11월 2주차(11/13 ~ 11/17) Weekly I Learned "지난 여정을 되돌아 보다!"

지난 한 주 되돌아보기 11월 2주차는 생일이 있었던 주간이었기에 생일 휴가와 연차 휴가가 포함된 달콤한(?) 주간이었다. 🍺 휴식의 시간이 많아 한 주간 배울 수 있었던 내용이 다소 적었지만 나름대로 되돌아 보고자 한다. 신규 기능 구현 완료! 지난 주에 이어서 신규 기능 구현을 마무리 지을 수 있었다. 부트캠프 당시 Querydsl 기반의 동적 쿼리를 구현해본 경험이 있었는데, 이번에는 JPA 에서 제공하는 Specification 을 이용하여 동적 쿼리를 구현해보았다. Querydsl 이 주는 장점이 많지만 Specification 도 나름대로(?) 동적 쿼리를 구현하는데 요긴하게 사용되었다. (사실, 현재 서비스 프로젝트에 Querydsl 을 새롭게 접목해보려고 했으나, 해결책 모를 빌드 에러가 ..

2023년 11월 1주차(11/6 ~ 11/10) Weekly I Learned "수습 종료 그리고 회사 일 삼매경 🏃‍♂️"

지난 한 주 되돌아보기 11월 1주차 역시 주어진 회사 일을 처리하느라 하루하루 바쁜 시간을 보냈었다. 💫 저번달 자기개발 스터디원들과 함께 올해말까지 개인적으로 이루고자 하는 목표들을 공유했었는데, 과연 지킬 수 있을지 의문이다... 👀 회사 일 삼매경... 💫 11월 1주차는 회사 일 삼매경이었던 한 주였다. 👀 먼저, 기존 SDK 를 변경하는 작업을 수행했는데, 이는 큰 어려움은 없었다. 이외에도 작업을 진행하면서 stage 상의 database 접근(READ)이 필요함에 따라 로컬 상의 WAS 와 stage 상의 database 간 연동 작업을 수행하기도 했다. 이러한 로컬 인프라 환경을 구축하는 과정에서 여러 우여곡절들(aws 관련 설정 등)이 있었는데, 추후에 시간적 여유가 된다면 기존 문서화..

2023년 10월 5주차(10/30 ~ 11/3) Weekly I Learned "점차 익숙해지고 있는 업무! 🐥"

지난 한 주 되돌아보기 입사한지 어느덧 3개월이 되가고 있는 요즘 이슈 처리 사이클을 여러번 거치면서 업무가 점차 손에 익는듯한 느낌을 받고있는 중에 있다. ✨ (이전 보다는 뭔가 자연스러워진 느낌이다. 👀) Http Client 동작 테스트 및 재배포 🔧 지난 주 blocking I/O 방식을 그대로 유지한채(비지니스 로직 변경 없이) 단순히 RestTemplate 에 의존하는 것을 WebClient 에 의존하는 것으로 바꾸기만한 일부 Http Client 에서 예상치 못한(인코딩과 관련된) 에러가 발생했었기에, 해당 Http Client 들에 대해 일괄적으로 로컬 환경에서 Client Server 를 구축한 이후 Test Target Server 와의 연동 테스트를 재수행했다. 로컬 환경 상에서 Cl..

2023년 10월 4주차(10/23 ~ 10/27) Weekly I Learned "입사 후 첫 장애 대응기"

지난 한 주 되돌아보기 10월 4주차는 현 회사에 입사한 이래로 처음으로 굵직한 이벤트를 겪을 수 있었던 주차였다. 🚀 기존 시스템은 내가 입사하기 전부터 이미 구축이 되있었던 터라 비지니스적으로 새로운 기능 개발에 참여한 것은 없지만, 백엔드 성능 개선 TF 에 합류하여 일정 부분 서비스에 기여할 수 있었다. 🛒 배포 후 첫 장애...🧨 그동안 RestTemplate 기반의 Http Client 들을 WebClient 로 전환했었던 작업들을 배포했다. 그중에는 외부 서버와 blocking I/O 방식으로 통신하는 것을 non-blocking I/O 방식으로 전환하는 작업도 있었으며, blocking I/O 방식을 그대로 유지하되 WebClient 로만 전환(추후 non-blocking I/O 로 개선하..