본문 바로가기

전체 글

(257)
2025년 마무리 회고록 정말 눈깜짝할새에 지나간 2025년이었다.의미없이 보낸 날도 많은 것 같았는데 돌이켜보면 하나씩 원하는 것을 이루기 위해 노력한 나날들이었다.대단한 성과는 없지만 개인적인 포인트를 짚어보며 올해 아니 작년을 마무리해보고자 한다-! 10년 연애 끝! 2025년에 가장 큰 프로젝트라면 결혼이 아닐까? 드디어 우리의 햇수로 10년 연애 끝..!1년 가량 귀찮아죽겠는.. 그래도 J신부로쒀 할거 다 준비한.. 결혼 준비도 드디어 끝내서 후련하다.오래 연애한 만큼 깨볶는 것 보단 현실적인 생활 습관을 맞춰가는 게 오히려 더 힘든 결혼생활이긴 한다.그래도 이젠 그럭저럭 맞아가는 중.. 잘 지내보자구 짝꿍.. 🙃 휴덕은 있어도 탈덕은 없다 개발블로그에 올릴만한 건 아니지만 ㅎㅎㅎㅎ 일상 겸이니깐요..ㅎ내 오랜 덕..
[항해99 10기 WIL] 9,10주차 - 드디어 마지막! kafka와 모니터링 나에겐 먼 존재였던 kafka를 경험하다예전에 kafka가 포함된 인강을 들었던 적이 있다. 그 때는 kafka의 개념을 이해하기도 어려웠었고, 잘 사용해보지 않던 도커로 컨테이너 여러개를 띄워가며 온라인 강의를 따라가기 바빴었다. 뭔가 따라는 하고있는데 그래서 이게 어떤 방식으로 동작하고, 언제 사용되는거지? 이런 부분을 이해하지 못한 채 실습만 따라하다 지쳤던 기억이 있다.특히 ai가 나오지 않았던 시절이라 docker compose 설정부터 어렵고 힘들었던 기억이 커서 나에게 진입장벽이 꽤나 높았던 기술로 기억에 남았었다. 몇년이 지나고 항해를 통해 kafka를 다시 접하게 되었다. 이전과 다른 점은 정해진 실습에 급급하지 않아도 되고, 코치님의 이해가 쏙쏙되는 발제와 스스로 학습하는 과정을 통해 ..
고객 입장에서 바라본, 롯데렌터카 추가 운전자 등록 플로우 개선점 문제 상황친구와 제주도를 가기위해 친구가 렌트카를 빌렸는데, 나에게 '추가 운전자 등록 링크'가 문자로 날라왔다.같이 운전해야하니 이걸 해야하나보다~ 싶어서 열심히 폼을 작성했는데 마지막에 계속 이런 얼럿이 떴다. 난 다 입력한거 같은데.. 모바일, pc로 둘다 해봤는데 똑같았다. 친구가 본인이 예약자 면허증번호 입력 안해서 그런거같다고해서 원인 파악은 되었다. 의문 & 개선점근데 플로우가 적절치 못하다는 생각이 든다. 추가 운전자 등록 입장에서는 필요한 것을 다 입력한 상태인데 저 값을 계속 입력하라고 나오니 어디서 뭘 누락했나? 싶어서 계속 다시 시도해보고, 어디서 문제인지 파악이 안되는 상황이 온다. (물론 눈치 빠르다면 저 얼럿 보고 대충 짐작 하겠지만) 예약자의 면허증번호가 먼저 채워져야한다면..
[항해99 10기 WIL] 8주차 - 잠시 숨고르기 회고 타임 8주차까지 버틴(?) 것을 자축하며, 잠시 숨고르는 회고 타임을 가져보자어느새 8주차가 지나고 벌써 9주차 시작이다. 초반 주차에는 이걸 10주차까지 어떻게버티지.. 라는 생각이 있었다. 일단 이런 교육 방식은 처음이어서 어떻게 공부해야할지 헤매기도 했다. 항해는 기존의 강의들처럼 한땀한땀 이론 공부를 하고 실습 코드를 같이 치는 방식으로 진행되지 않는다. 매주 코치님들이 '발제'하는 시간은 있지만, 공부해야할 것의 큰 그림을 overview 해주는 과정으로 볼 수 있다.(물론 필요에 따라 깊은 설명도 당연히 해주심) 다만 우리가 스스로 공부해야 할 키워드를 던져주고, 주어진 과제를 수행하면서 궁금한 것을 '문답'하는 과정에 더욱 집중되는 학습 방식이었다. 이러한 방식의 좋은 점은 스스로 학습하는 것에 ..
[항해99 10기 WIL] 6,7주차 - redis 활용하기 why redis?redis는 메모리 기반으로 key-value 값을 저장할 수 있고 TTL 유효 기간을 가질 수 있는 NoSql 저장소이다. 메모리에서 관리하기 때문에 빠르다는 장점이 있다. 별도로 redis 서버를 둔다면 분산 처리가 가능하여 락, 캐시, 세션 등을 처리할 때 유용하다.1개의 서버만 운영한다면 락은 db 락을 통해 처리할 수 있고, 로컬 캐시를 활용하는 것도 가능할 것이다. 다만 분산 서버 환경에서는 여러 서버에서 요청한다면 동시성 이슈 보장이 안되고 서버 간 캐시 정합성이 맞지 않을 것이다. 이를 방지하기 위해 redis 캐시 서버를 별도로 두고 분산 시스템으로 활용한다. 분산 락, 글로벌 캐시분산 락을 처리하기 위해 Spring Boot에서 Redisson 라이브러리를 사용했고, ..
[항해99 10기 WIL] 4,5주차 - JPA, 동시성 제어 친해지고 싶지만 아직 어색한 JPA4주차에는 인메모리 기반 데이터에서 DB로 전환하는 과정을 진행했다. Java의 ORM인 JPA를 사용했다. 일할 때 myBatis만 사용했던터라 익숙해지지 않았던 jpa ㅠㅠ jpa의 교과서 김영한님 강의도 들어봤고 사이드프로젝트할 때 깔짝해본게 다지만 오래전 기억이라 또 가물가물.. 아무튼 이러쿵저러쿵 써보긴 했으나 jpa 깊숙하게 공부는 더 필요할거같다. 또 다시 나만의 숙제로 남겨두기..🥲 testContainer로 통합 테스트하기testContainer는 실제 DB로 테스트를 하지 않고 가상의 테스트 DB를 도커로 띄워 테스트 하는 방식이다. 메모리 기반의 H2를 사용하면 되지 않나? 생각이 들 수도 있지만 H2와 실제 사용하는 DB와 일부 적용 기준이 다르기..
[항해99 10기 WIL] 3주차 - 갈아엎고 갈아엎는 아키텍처.. ⚒️ 아키텍처 구성 방식의 헷갈림3주차는 아키텍처를 적용하고 인메모리 DB를 사용해 API 개발을 진행하는 과정이었다. 레이어드 아키텍처, 헥사고날 아키텍처, 클린 아키텍처 이렇게 3가지를 학습했고, 과제에 레이어드 아키텍처를 적용하였다.난 레이어드 아키텍처가 controller, service, repository 정도로 나뉜 패키지 구성이 다인줄 알았다. 실제로 개발 강의에서나 작은 프로젝트를 시작할 때 이 구조를 많이 적용하기 때문에 이 방식이 익숙했다. 근데 presentation, application, domain, infrastructure를 상위 패키지로 두고 하위에 controller, usecase, service, entity, repository 등을 구성하는 방식을 알려주셨다. 어? 이..
[항해99 10기 WIL] 2주차 - 본격 서비스 설계 시작! 무한히 늘어나는 설계 범위...🤯이번 주차 주제는 '설계'였다. 우리 팀은 이커머스, 콘서트 티켓팅 두 주제 중 이커머스를 골랐고, 이 주제에 대해 개발 전 설계 작업을 하는 것이었다. 요구사항 명세, ERD, 시퀀스 다이어그램, API 명세에 대해 작성해보고 간단한 컨트롤러 요청/응답 구조를 만들어 mock데이터를 제공해보는 과제였다.나는 가장 먼저 요구사항을 훑고 ERD로 표현할 도메인을 고민해보았다. 이 부분에서 가장 시간이 많이 늘어났던 것 같다. 처음에는 DB가 23개가 나왔다. 실무에서의 이커머스 환경을 생각했고 정규화도 잘 하려고 고민하다보니 많이 늘어났던 것이다. 다른 팀 멘토링 청강 때 우연히 나의 ERD가 마루타가 되었는데 10개 이내로 축소되었다. 아주 상세하게 짠건 좋으나 앞으로 ..