이번에 항해 플러스 백엔드 과정을 수료하고 나만의 생각이 담긴 회고를 조금 적어보려고 한다. 참고로 평소 회고와는 거리가 멀었기 때문에 생각을 글로 정리하는게 쉽지는 않았다.. 이번 후기는 내가 왜 항해를 시작하게 되었는지, 중간중간 어떤 느낌을 받았었는지 위주로 적게 되었다. 💡 항해를 시작하기 전: 작은 스타트업에서의 업무 세상이 나를 억까 하누...첫 이직 후, 작은 스타트업에서 2년 정도를 보냈다. 처음 회사에 들어갔을 때 할 일이 정말 많았다. 매일이 바빴고, 야근은 일상이었다.하지만, 그게 백엔드의 일이었나? 아니었다... 😔 이직 초기에 주로 프론트엔드 업무를 했었는데, 백엔드 개발자로 성장하고 싶다는 열망에 이직했지만, 현실은 달랐다.몇 개월 동안 내가 맡은 업무는 백오피스 어드민 화면..
전체
Transactional Outbox Pattern 도입 및 Kafka 활용 경험 공유이번 주에는 Transactional Outbox Pattern을 도입하고, Kafka를 통한 이벤트 발행/구독을 적용하는 작업을 진행했습니다. 프로젝트를 통해 얻은 피드백과 문제 해결 과정을 정리해보았습니다.📝 피드백 요약Spring Boot 버전 관리 활용MySQL 의존성을 Spring Boot의 버전 관리 기능으로 관리할 것.최신 버전을 사용할 때 발생할 수 있는 문제를 예측하고 대처 방안을 고민해볼 것.이벤트 리스너 네이밍 개선기존 이름: paymentSpringEventPublisher→ 너무 기술에 종속적임.더 직관적이고 역할 중심적인 이름으로 변경 필요.아웃박스 패턴 관련 테스트 코드 작성패턴 도입 이후,..
인덱스와 서비스 확장에 대한 분석 후기이번 주는 인덱스와 서비스 확장에 초점을 맞춰 분석과 개선 작업을 진행했습니다. 여러 문제를 마주하고 해결하는 과정에서 배운 점과 느낀 점들을 기록해봅니다. 추가적으로, 항해에 참여하고싶다면 다음 추천 코드를 통해, 다음 과정에 대한 할인을 받아보는 것도 좋을 것 같습니다 ㅎㅎ추천인 이름: 이철진추천인 코드: rYq2PX📝 이번 과제에서의 피드백좋은 점인덱스와 락의 관계를 깊이 있게 분석하고, 유의미한 성능 측정을 통해 얻은 결과에 대해 긍정적인 피드백을 받았습니다. 그동안 노력한 결과가 인정받아 뿌듯한 순간이었어요.개선해야 할 점기본 키 인덱스의 유무일부 데이터베이스는 테이블에 기본 키 인덱스를 제공하지 않는 경우가 있으므로 이를 명심해야 합니다.복합키 인덱스 활..
이번 주차에는 캐시가 필요한 곳에 적절히 캐싱 전략을 사용하여 적용 해 보는 시간을 가졌습니다. 지난 주차 동안, 어려웠던 과정들을 겪고나니 상대적으로 러프하게 흘러갔었네요.. ㅎㅎ 이번 주차에 캐시에 대한 분석을 진행하면서, Lettuce와 Redisson에서 지원하는 서로 다른 Lock에 대한 방식과 어떤 경우에 캐시를 적용해야할지에 대한 많은 사실을 알게 되었습니다. 이번 주차 피드백을 마치고, 다음 스텝으로 가기위한 브라운 뱃지를 얻었네요.. ㅎㅎ 뭔가 포켓몬 도장 깨는듯한 느낌이랄까...남은 3주 간의 여정에서도 과제에 대한 이해를 높이고, 좋은 코드와 좋은 설계를 구현하는 것을 목표로 하고 싶습니다. 추가적으로, 항해에 참여하고싶다면 다음 추천 코드를 통해, 다음 과정에 대한 할인을 받아보는 ..
이번 주에는 분산 환경을 고려한 다양한 동시성 제어 방식을 분석하고 도입하는 작업을 진행했습니다. 개인적으로는 굉장히 어려운 주제였고, 고민도 많았습니다. 단순히 Redis를 이용해 락을 걸기는 어렵지 않았지만, 분산 락을 잡은 후 트랜잭션을 어떻게 유지할지, 이후의 과정에서 만약 실패가 발생하면 어떻게 처리할지 등 다양한 요소를 고려해야 했기 때문에 많은 고민이 필요했습니다. 나름 고생한 덕분에, 과제도 무사히 통과하고 새로운 뱃지를 얻었습니다. 단순히 목표를 설정하는 것과는 달리 소소한 보상체계가 있어서 재밌게 진행하는듯한 느낌이네요.. ㅎㅎ 뱃지가 전부가 아니긴 하지만, 과제를 통과해야 인정을 받는 느낌인지라 인정을 뱃지를 얻기위함이 아닌 인정을 받기위한 과제를 수행해나가는 것이 중요하다고 느꼈습니..
다사다난했던, 지난 5주간의 일정이 빠르게 지나갔고 벌써 두 번째 챕터를 마무리하게 되었습니다.이번 챕터를 통해서 직접 시나리오 설계 및 구축해가는 과정을 통해 다이어그램 및 문서화에 대한 소프트 스킬을 얻게 되었네요.. ㅎㅎ 벌써 과제의 절반이 지나온 지금, 처음에는 뱃지 욕심이 없었지만 계속 통과를 하게 되니 모두 통과하고 싶다는 욕심이 점점 생기게 되네요.. ㅎㅎ 처음에는 언제 10주가 빨리 흘러가나.. 내가 과제 하나라도 통과할 수 있을까.. 하는 걱정이 많이 들었는데, 이제는 채용 전형 과제에 대한 자신감도 많이 생긴듯합니다.또한, 어떤 방법이 옳은가를 확신하지는 못 하지만 어떤 방법이 옳지 못 한지에 대한 코드를 보는 안목도 조금은 성장한듯합니다. :) 앞으로 진행될 대용량 트래픽 과정에 대해..
항해 4주차는 이후에 어떤 일정이 있을지 모르지만, 구현으로는 제일 힘든 주였던 것 같습니다. 이커머스 시나리오에 대해 모든 로직과 단위 테스트를 한 주 만에 만드려고 하니, 정말 힘들었던 한 주였던 것 같습니다. 그래도 시나리오를 바탕으로 TDD 기반의 서버 로직을 구현할 수 있는 뜻 깊은 한 주였던 것 같습니다. 추가적으로, 항해에 참여하고싶다면 다음 추천 코드를 통해, 다음 과정에 대한 할인을 받아보는 것도 좋을 것 같습니다 ㅎㅎ 추천인 이름: 이철진추천인 코드: rYq2PX 이번 주차에도 많은 것들을 배우고 느꼈는데, 이를 회고해보려고 합니다.이번 주차를 지나며 겪었던 문제시간적으로 여유가 많지 않았고, 구현해야할 부분이 많아서 힘든 한 주였습니다.그래도, 직접 비즈니스 로직을 구현해가면서 놓쳤..
항해 3주차에는 앞으로 남은 7주간의 과정에서 시나리오를 선택하여 이를 어떻게 구현할 것인지에 대해 분석 및 시각화 자료를 준비하게 되었습니다. 처음에는 이러한 소프트 스킬이 많이 부족했기에, 시각화 자료를 뭘 쓰는게 좋을지 고민이 많았었는데 멘토링과 팀 활동을 통해 네트워킹을 진행하게 되면서 많은 도움을 얻었던 것 같습니다. 이번주차에서는 요구사항을 분석하고, 이를 시각화해주기 위해서 시퀀스 다이어그램을 활용했습니다. 시퀀스 다이어그램을 활용하면서 요구사항을 미리 분석하는 과정을 통해 구현 과정에서 빼 먹을 수 있는 부분들을 한 번 더 생각하게 되었습니다. 시퀀스 다이어그램 예시) 잔액 충전 Flow 추가적으로, 항해에 참여하고싶다면 다음 추천 코드를 통해, 다음 과정에 대한 할인을 받아보는 것도 좋..