전체 글 (5) 썸네일형 리스트형 신입 개발자의 3천 줄 if문 레거시 파괴하기 (YOUTHCON'25에서 발표한 내용을 바탕으로 작성했습니다. 발표에서는 시간 상의 이유로 담지 못했던 내용도 틈틈이 추가했습니다.🙂) 이 글은 다음과 같은 독자를 대상으로 작성했습니다. ✔︎ 처음으로 거대한 레거시 코드를 마주하고 "이걸 내가 건드려도 될까?"라는 두려움을 느껴본 주니어 개발자✔︎ 이론과 현실 사이의 코드 괴리가 왜 생기는지 궁금한 주니어 개발자 결론부터 말씀드리면 저는 이 작업을 성공적으로 마무리하게 됩니다! 다음 사진은 레거시 개선 작업 배포 후 저의 실장님께서 보내주신 DM인데요. 어마무시해 보이는 레거시를 개선하는 일, 저도 했으니 누구나 도전할 수 있다는 희망적인 메시지를 전달하고 싶다는 마음으로 이 글을 작성하게 되었습니다. 회사에서 처음으로 레거시 개선 프로젝트를 진행하.. YOUTHCON'25 발표 후기 '신입 개발자의 3천 줄 if문 레거시 파괴하기'를 주제로 YOUTHCON'25(이하 유스콘)에서 발표를 진행했습니다. 오리엔테이션부터 최종 발표까지 약 1개월 동안 진행된 이 발표가 저에게 정말 값진 경험이 되어 후기를 공유드리고자 합니다.'유스콘'이란?유스콘은 주니어 개발자를 위한 행사로, 선배 개발자와 페어를 이뤄 발표가 아직 두려운 주니어 개발자에게 자신감을 심어 주기 위해 기획된 행사입니다. 이 행사는 '아는 것을 유쾌하게, 모르는 것은 진지하게'라는 아너 코드를 바탕으로, 다양한 주제로 발표를 하는 발표자들이 언제든 자신을 솔직하게 드러낼 수 있는 환경을 제공해 주었습니다. (행사 정보)참여하게 된 배경회사에서 약 4개월 동안 레거시 개선 프로젝트를 진행했었습니다. 4개월 동안 많이 헤매기도 .. 함께 일하고 싶은 개발자로 성장하기 재직 중 가장 많이 고민했던 부분 중 하나입니다. 일하면서 나름의 기준이 생겨 글로 정리하게 되었습니다.1. 본업에 충실하기가장 먼저 본업에 충실해야 합니다. 자신이 맡은 1인분을 온전히 해내지 못하면 다른 누군가가 그 비용을 감당해야 하고, 팀 전체의 효율이 떨어질 수 있기 때문에 협업 시에는 늘 본업에 충실해야 한다고 생각합니다. 만 1년 차인 제가 백엔드 개발자로서 1인분을 잘해내는 것은 다음과 같이 정의했습니다. 1. 정해진 기한 내에 맡은 업무 완료하기2. 담당한 기능 끝까지 책임지기 (충분한 테스트 진행하기, 이슈 발생 가능성 사전에 공유하기, 모니터링)3. 업무 진행 상황 자주 공유하기4. 내가 아닌 다른 동료가 이 일을 맡게 되더라도 업무 진행에 지장이 없도록 문서화하기 네 가지 조건에는 .. 내가 꿈꾸는 프로그래머로서의 삶 정이 많은 개발자프로그래밍에 대한 애정저는 부족함이 많은 개발자입니다. 자랑거리도 아닌 문장을 첫 문장으로 자랑스럽게 작성할 수 있었던 것은, 부족함을 채우기 위해 노력하는 중이기 때문입니다. 부족함을 인지하는 과정과 이상과 현실의 괴리에서 오는 고통을 마주하는 건 항상 힘들지만, 부족함을 인정하고 발전하고자 하는 욕심 많은 제 모습을 좋아합니다. 저뿐만이 아닙니다. 우테코에서 뛰어난 실력을 갖춘 크루들은 알고 있는 것을 내세우기보다 자신의 부족한 점에 대해 이야기하기 바쁘고, 부족한 점을 채우기 위해 밤, 낮 가리지 않고 부단히 노력합니다. 더 나은 개발자가 되기 위한 걱정과 고민은 어쩐지 개발 문화와도 많이 닮아있습니다. 불과 한 달 전 작성한 코드는 레거시가 되어 리팩토링의 대상이 되고, 조금 더 .. 스프링 이벤트 사용 시 트랜잭션 분리를 위해 어떤 어노테이션을 사용해야 할까? 프로젝트에서 트랜잭션 분리의 필요성을 느낀 배경기존 중고 거래에 '경매'를 도입한 '중고 경매 거래 플랫폼' 프로젝트를 진행하게 되었습니다. 판매자가 등록한 경매 상품이 낙찰되면 낙찰자와 판매자는 1:1 채팅을 주고받을 수 있게 되고, 채팅을 통해 거래를 진행하게 됩니다. 채팅을 전송할 때 알림이 전송되지 않아 불편함을 겪는 사용자가 발생했고, 알림 기능을 추가하면서 문제가 발생했습니다. 메시지 전송 기능에 알림 기능을 도입하면서 알림 전송 실패로 인해 메시지 전송 트랜잭션이 롤백 되는 문제였습니다. 비즈니스 중요도를 고려하면 사용자 편의를 위한 부가적인 알림 기능이 메시지 전송이라는 메인 기능에 영향을 미치는 것이 부자연스럽다고 판단해 트랜잭션 분리를 고려하게 되었습니다.먼저 서비스 코드는 다음과 같습.. 이전 1 다음