전체 글 381

2023년 12월 1주차(12/4 ~ 12/8) Weekly I Learned "2023년의 마지막 한 달 잘 보내기 ⭐"

지난 한 주 되돌아보기 2023년도 어느덧 이제 한 달도 채 남지 않았다. 😅 7월부터는 유튜브 등 각종 온라인 콘텐츠 소비 시간이 부쩍 많이 늘었는데, 마지막 한 달은 정말 알차게 보내서 연말까지 세운 목표들을 모두 이뤄내고자 한다...💪 (과연..? 👀) 2023년의 마지막(?) 업무를 배정받다..!! 🚀 2023년이 모두 종료되어가는 이 시점 2023년의 마지막 업무로 보여지는 업무를 배정받게 되었다. 대대적인 개선 작업이기에 팀원과 함께 작업하며, 작업 기간도 무려 3주나 된다. 현재는 기존 능과 실태(?)에 대해 제대로 숙지하는 시간을 가지는 중에 있는데, 다음 주부터는 이제 본격적으로 설계와 개발 작업에 착수해야 한다. ☕ 예상치 못했던 에러들에 대응해보았다..!! 🔧 지난 달에 배포했었던 일..

2023년 11월 4주차(11/27 ~ 12/1) Weekly I Learned "Step by Step"

지난 한 주 되돌아보기 나름대로 여유있었던 11월 3주차와 달리 이번 11월 4주차에 배정받았던 작업은 그간 관심갔던 부분인 동시성 이슈에 관한 것이었기에 하루하루 시간 가는 줄도 모르고 상당히 몰입도 있게 작업을 수행할 수 있었다. 🏃‍♂️ 또 다른 기술적 과제가 주어지다! 지난 번 WebClient 를 활용하여 blocking I/O 처리 로직을 non-blocking I/O 로 전환하여 서버 성능 최적화 작업을 했던 이래로 새로운 기술적 과제를 배정받게 되었다. 최근에 동시성 이슈로 인해 Lost Update 가 발생하는 문제가 있었는데, 11월 4주차에는 동시성 이슈로 인한 문제를 개선하는 작업을 배정받게 되었다. 다소 긴 처리 시간을 요하는 트랜잭션 A 와 짧은 처리 시간을 요하지만 실시간으로 ..

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 을 새롭게 접목해보려고 했으나, 해결책 모를 빌드 에러가 ..

입사 후 3개월간의 백엔드 엔지니어 여정 회고

목차 1. 입사한지 벌써 3개월! ⭐ 2. 회사에서의 나의 역할은? 👨‍💻 3. 신입 온보딩, 비지니스를 이해하기 위한 과정 🐥 4. 본격 실무 수행, 차근차근 배워나가는 과정 🏃‍♂️ 4-1. Http Client 전환을 통해 서버 성능을 개선해보았다! ☕ 4-2. 여러 비지니스 요구사항들에 대응해보았다! 🛴 4-3. 기존에 잔재된 소소한(?) 버그들을 발견 & 해결해보았다! 🔎 4-4. 적극적으로 협업을 해보았다! 👋 5. 개인적으로 배울 수 있었던 것들 5-1. MySQL 의 트랜잭션 격리수준에 대해 깊게 알아보았다! 5-2. Git 에 대한 이해도를 높일 수 있었다! 5-3. 리액티브 프로그래밍에 대해 학습해보았다! 5-4. SQL 튜닝을 위해 인덱스에 대해 깊게 알아보았다! 5-5. 그외 여러가..