안녕하세요.2024년부터 이 티스토리 블로그를 통해 개발하면서 배운 것들, 겪은 시행착오와 소소한 기록들을 꾸준히 남겨왔습니다.방문해 주시고 읽어주신 모든 분들께 진심으로 감사드립니다. 이번에 기술 블로그를 개인 블로그로 이전을 결심하게 되었습니다. 이전을 결정한 이유는 블로그 환경을 조금 더 자유롭게 꾸리고 싶었고, 글쓰기에 집중할 수 있는 나만의 공간이 필요하다고 느꼈기 때문입니다. 기존 티스토리 게시글들은 당분간 유지될 예정이나, 신규 글 업데이트는 더 이상 이루어지지 않을 예정입니다. 함께해 주신 구독자분들과 방문자분들께 다시 한번 감사드리며, 새 블로그에서도 많은 관심과 방문 부탁드립니다. 🙏 👉🏻 새로운 블로그 URL : https://chanhan.blog 차나니의 블로그개발 기술 블..
분류 전체보기
프론트엔드 개발자와 협업하다 보면 한 번쯤 이런 상황을 겪어 봤을 것 같습니다. '혹시 API 언제쯤 호출해 볼 수 있을까요 ?' 백엔드 개발이 완료될 때까지 프론트엔드 개발자가 기다려야 하는 상황, '퍼블리싱부터 진행하시면 안될까요...?'라고 했지만, 근본적인 해결책이 필요했습니다. ❓ Mock API를 도입하게된 이유저희 팀은 프론트엔드 개발자와 백엔드 개발자가 동시에 개발을 진행하는 구조입니다. 그런데 실제로는 백엔드 API가 완성될 때까지 프론트엔드 개발자가 온전히 작업을 진행하기 어려운 상황이 반복됐습니다.👉🏻 UI는 완성됐는데 연동할 API가 없어 대기👉🏻 서로 다른 속도로 개발이 진행되다 보니 병목이 생기는 구간 명확단순히 속도의 문제가 아니라 팀 전체 흐름이 끊기는 문제였습니다. ..
작년 사내에서 사용할 수 있는 AI 코드 리뷰 라이브러리를 제작했습니다. 라이브러리를 구축했지만, 특정 언어에만 제한되고 독립 서버에서 실행하기 위한 파이프라인을 서버마다 반복 구축해야 되는 번거로움이 있었습니다. 단점을 보완할 수 있는 방법을 찾던 중 우연히 무신사의 AI 코드 리뷰 구축기 블로그 글을 보게 되었고, 저와 비슷한 고민을 하고 있어 해당 블로그를 참고해 작업을 이어가기로 했습니다. 🔍 AI 코드 리뷰 라이브러리를 구축한 이유기존에 사내 코드 리뷰 문화가 존재하지 않았고, 코드 리뷰 문화를 도입하려는 시도 역시 물거품으로 돌아갔습니다. 현실적으로 바쁜 일정 속에서 실시간으로 세밀하게 PR을 확인하기에는 물리적인 시간 제약이 컸습니다. 그래서 저는 리뷰의 진입장벽을 낮추고 최소한의 코드 품..
회사 입사 후 처음으로 외부 파견을 나가게 되었습니다. 프로젝트는 마지막을 향해가고 있었고, QA에서 발견된 다수의 버그 처리와 쿼리 튜닝이 주요 업무였습니다. 사전에 프로젝트 코드를 전달받았는데, 최근 프로젝트임에도 코드 상태가 좋지 않았습니다. QA 단계에서 발견되는 반복적인 버그들의 원인이 코드 간의 높은 결합도와 가독성 저하에 있다고 판단되었습니다. 단순히 현재의 버그를 수정하는 것에 그치지 않고, 서비스 오픈 후 운영 단계에서 발생할 유지보수 비용을 근복적으로 절감하기 위해 리팩토링을 결심했습니다.보안상 결과물과 커버리지 내역을 공유드리지 못하는 점 양해 부탁드리겠습니다. ⭐️ 리팩토링 목표 설정👉🏻 도메인 지식을 먼저 익히기도메인 지식 없이 객체지향 프로그래밍을 하는 것은 불가능하다고 생..
한 달 동안 토스에서 진행하는 러너스하이 2기에 참여했습니다. 멘토링 프로그램이지만 '스스로 문제를 찾고 해결할 수 있는 힘'을 기르는 것이 러너스하이의 핵심이라고 생각됩니다. 직접적인 멘토링 대신 두 번의 세션이 진행되었고, 세션을 통해 성장에 대한 방향성과 토스의 실제 사례들을 간접 체험할 수 있었습니다. 세션 내용은 공개되지 않은 사항으로 자세하게 작성하기는 어렵지만, 제가 느낀 점을 한마디로 정리하자면 '데이터와 임팩트를 중심으로 성장하기'라고 할 수 있을 것 같습니다. 🤷♂️ 주제선정하기프로그램을 진행하면서 시간이 제일 많이 소요되고, 정말 많이 고민했던 부분은 주제 선정이었습니다.주제는 제약 없이 사내의 문제점 또는 개선할 수 있는 부분을 직접 찾아 진행하는 것이었기 때문에 사내의 문제점을..
삶에 많은 변화가 일어날 것 같았지만, 많은 일이 일어나기엔 1년은 너무 짧은 시간이었습니다. 2025년은 제가 발버둥 치던 해라고 정리할 수 있을 것 같습니다. ☕️ 커피챗은 처음이지 ?저는 성장에 목말라 있었고, 다른 개발자분들의 이야기를 듣고 싶어서 관심 있는 회사에 근무하는 개발자 몇 분에게 커피챗을 신청했습니다. 모두 흔쾌히 승낙해 주셨고, 학습에 대한 유익한 방법과 자신감을 얻어갈 수 있었습니다. 회사 견학까지 갈 수 있는 기회도 만들어 주셔서 실제 업무 환경과 개발 문화를 직접 보면서 어떤 개발자가 되고 싶은지, 어떤 환경에서 일하고 싶은지 목표가 한층 더 뚜렷해졌습니다.일면식도 없는 저에게 그동안 쌓인 지식과 따뜻한 응원을 나눠주신 것이 큰 힘이 되었고, ‘어떤 개발자가 되고 싶으신가요?’..
NextStep TDD, 클린 코드 with Java 21기 후기를 남겨보려고 합니다!이 과정을 선택한 이유는 수료생들의 후기 덕분이었습니다. 교육을 통해 코드 스타일이 많이 바뀌었다는 내용이 많았고, 20기까지 꾸준히 운영되어 온 만큼 수료생들의 평가가 하나같이 긍정적이었습니다. 하지만 짧은 교육 일정에 비해 강의 비용이 부담스러워 선뜻 신청하지 못하고 고민하던 중, 같은 동아리 회원 중 해당 과정을 수료하신 분의 조언을 들을 수 있었고, 현재에 머물러 있지 않고 한 걸음 더 나아가고 싶어 교육 과정에 신청하게 되었습니다. 🏃♂️ 과정을 진행하며과정은 총 4개의 미션으로 이루어져 있으며, 우아한테크코스에서 학습용으로 사용하는 코드를 베이스로 진행되었습니다. 첫 번째와 두 번째 미션은 TDD와 OOP..
동시 접속자가 증가하면, DB에 전달되는 부하 또한 증가하게 됩니다. 아직 심각한 성능 저하를 경험하지는 못했지만, 사내 서비스에 사용자가 점차 늘어나는 상황에서 단일 DB 구조의 잠재적 문제를 미리 파악해 장애를 방지해야겠다고 판단했습니다. Clustering, Replication, Sharding 등 다양한 선택지 중 해당 프로젝트에 가장 적합한 Replication을 선택하게 되었습니다. 선택한 이유와 Replication을 적용하면서 확인한 성능 개선 결과를 공유하겠습니다. 😣 단일 DB의 한계단일 DB는 모든 쓰기/읽기 요청이 한 곳에 집중되어 트래픽이 증가할 경우 성능 저하를 피할 수 없고, 장애 발생 시 전체 서비스가 중단될 수밖에 없습니다.'그럼 성능을 올리면 되잖아?'라고 생각할 수 ..