우아한테크코스5기

💋 인트로 안녕하세요. 우아한테크코스 5기 깃짱이라고 합니다. 리팩터링 미션을 통해서, 메뉴, 주문, 테이블로 이루어져 있는 코드를 객체 지향 관점에서, 의존성의 관점에서, 그리고 그 연장선으로 모듈로 분리하게 되는 과정까지의 리팩터링 경험을 하게 되었습니다. 처음에는 단지 손가락 노동 뿐인 귀찮은 미션이라고 생각했는데, 미션 진행할 수록 객체지향에 대해서 제가 가지고 있던 일종의 강박 같은 것들을 깨뜨렸습니다. 단지 어떤 코드가 안좋다는, 근거 없이 느낌적인 느낌으로만 내리던 말도 안되는 판단을 버리고, 어떤 코드가 정말로 좋은 코드인지에 대해서 상황을 생각하며 더 입체적으로 판단을 내릴 수 있게 되었습니다. 💋 1단계: 테스트를 통한 코드 보호 1단계 Pull Request: https://githu..
💋 인트로 이 글은 우테코 5기 코치 제이슨의 강의를 듣고, 깃짱이 작성한 글입니다. 💋 레거시 코드 ✔️ 레거시 코드란? 레거시 코드란, 이해할 수 없고 수정하기도 힘든 코드를 지칭하는 속어처럼 사용될 때가 많다. 하지만, 레거시 코드는 그 당시로는 최선의 선택이었다. 레거시 코드는 모든 개발자가 극복해야 할 난제이고, 어쩌면 그 레거시 코드가 있기에 내가 일하고 있는 기업의 서비스가 현재 사용되고 있는 것일 수도 있다. 그런데, 레거시 코드가 없이 서비스를 개발할 수는 없을까? 왜 시스템은 부패해가는 것일까? 왜 시스템은 깨끗한 상태에 머물러 있지 않을까? ✔️ 레거시 코드가 생기는 과정 기획자가 있고, 개발자가 있다. 기획자와 개발자가 함께 논의해서 기획을 한다면 베스트겠지만, 대부분 상황에서는 기..
💋 인트로 이 포스팅은 우테코 코치 구구의 강의를 듣고 깃짱이 정리한 글입니다. 💋 달리는 기차의 바퀴를 갈아끼울 수 있을까? 우리는 처음부터 완벽한 설계와 완벽한 코드를 작성할 수 없다. 시장 상황은 계속 바뀌고, 참여하는 개발자들의 역량도 계속 변한다. 기술은 발전하고, 지금 사용하던 기술은 언젠가 레거시가 된다. 달리는 기차(운영중인 서비스)의 바퀴를 바꿀 수 있어야 한다. 점진적인 리팩터링을 통해서! 💋 다 뜯어고치자: 원대한 재설계의 꿈 결론부터 말하면, 지금 코드를 다 뜯어고치는건 좋은 방법이 아닐 때가 많다고 한다. 물론 현재 프로젝트의 규모가 작다면, 레거시에 허덕이는 것보다는 그냥 새로 만드는 것이 더 빠를 때도 많을 수 있다. 하지만, 원대한 재설계, 즉 뜯어고치는 것은 아래와 같은 순..
💋 인트로 이 포스팅은 우아한테크코스 5기 깃짱이 톰캣 구현하기 미션 후 작성했습니다. SpringBoot를 사용하게 되면 내장된 톰캣을 사용한다. 물론 알빠 NO 하고 사용해도 되지만, 어떻게 작동하는지 알 수 있다면 더 섬세하게 튜닝하고 디버깅할 수 있을 것이다. 이번 미션에서는 HTTP Server가 어떤 일을 하는지 알아보기 위해서 톰캣 서버의 역할 중 일부를 직접 구현해 보았다. 💋 코드 저장소 최종 코드: https://github.com/woowacourse/jwp-dashboard-http/tree/eunkeeee 1, 2단계: https://github.com/woowacourse/jwp-dashboard-http/pull/342 3단계: https://github.com/woowacou..
💋 인트로 우테코에서는 매 레벨이 끝날 때마다 레벨 인터뷰를 진행한다. 일종의 모의면접 이번 레벨에서는 각 팀이 서비스 구현을 끝냈기 때문에 해당 서비스를 만드는 동안 생겼던 이슈들을 바탕으로 레벨인터뷰 질문지를 구성하고 진행했다. 내 질문은 미리 작성해둔 레벨로그를 바탕으로 크루들이 해줬으며, 이후에 인터뷰어, 옵저버에게 피드백을 받았다. 이번 포스팅에서는 네이버 클로버노트를 통해 정리한 실제 대화 스크립트와 받았던 피드백을 정리해 보려고 한다. 실제 면접 상황에서 이렇게 대답한다면 어떨지 나중에 또 읽어봐야겠다...ㅋㅋ 💋 실제 대화 스크립트 2023.08.29 화 오후 2:30 ・ 28분 48초 인터뷰어(토리) 01:28 안녕하세요. 간단한 자기소개와 서비스 소개 한 번만 부탁드립니다. 깃짱 01:..
⭐ 레벨3 인터뷰를 준비하며 레벨3은 그간 레벨1, 레벨2와 다르게 팀프로젝트로 진행되었다. 그간은 좀 강의나 책 내용을 학습하면서 작은 프로젝트에 적용하면서 공부했기 때문에 먼저 개념을 배우고 예제를 풀어나간 느낌이었다면, 레벨3는 프로젝트를 진행하면서 해당 프로젝트에서 적용해야 할 문제점을 위해서 공부를 했달까..? 더 당장에 필요한 내용을 공부했기 때문에 와닿았던 것 같다. 💋 서비스 기획 ✔서비스 기획의 중심점은 페인 포인트 팀원들의 모든 상상과 욕심이 합쳐져서 매우 어려운 요구사항이 도출됨. 우리 팀이 마주한 고객의 페인포인트는, 카페 사장 측의 '개성', 그리고 카페 이용 고객의 '편리'에 대한 부분이었음. 카페 사장의 개성을 구현하기 위한 자유도를 꽤나 과감히 포기하면서 본격적으로 기능 구..
💋 소통이 잘 되고, 문서화를 잘 하는 팀원 아직 내가 어떤 개발자가 되고 싶다는 뚜렷한 목표는 없다! 늘 팀에 기여하는 기분을 느끼면서 살고싶다. 나는 우테코에서 가장 개발 공부 기간이 짧다. 따라서 인프라에 익숙하지도 않고, 아직 특출나게 코드 작성이 뛰어나지도 않다. 따라서 이번에는 "팀원 전체가 공통된 설계를 동기화할 수 있도록, 원활한 협업을 위해 소통이 잘 되고, 문서화를 잘 하는 팀원" 포지션이 되기로 다짐했다. ✔ 회의 전에 할 일을 정리한다. 첫 회의 때 다들 큰 준비를 하지 않은 것 같아서, 오늘 무엇을 해야 하는지 목표에 대해서 먼저 정리했다. 원래 내 목표는 함께 인수테스트를 작성하는 것이었지만 안드로이드가 인수테스트에 능숙한 것 같지는 않아서, 함께 API를 설계하는 것을 목표로 ..
⭐ 레벨2 인터뷰를 준비하며 약 두 달 간의 레벨2 과정을 마치고, 다시 레벨 인터뷰가 왔다. 내가 공부한 내용들을 정리해보는 글이다. 💋 레벨 도중 진행한 미션에 대한 회고 웹 자동차 경주 회고 [우테코] 웹 자동차 경주 1단계 회고: 안녕 스프링? Spring을 처음 만난 2일간의 기록 스프링을 처음 접하게 되어 굉장히 혼란스러운 이틀이었다...! 처음으로 공식문서도 열심히 읽어보고, 지식을 쓸어담기 위해서 노력했던 것 같다. 나의 코드 저장소와 PR 링크를 먼저 첨부한다! engineerinsight.tistory.com 장바구니 미션 1단계 회고 [우테코] 장바구니 미션 1단계 회고(feat. 현구막): 우당탕탕 스프링 공부하기! 자세한 내용은 목차 💋 코드 저장소 1단계 Pull Request ..
💋 코드저장소 1단계 Pull Request [1단계 - 지하철 정보 관리 기능] 깃짱(조은기) 미션 제출합니다. by eunkeeee · Pull Request #35 · woowacou 안녕하세요 서브웨이! 저는 깃짱이라고 합니다. 지난번에 샘플 코드와 제 코드가 섞여서 리뷰하기 매우 어려웠을 것 같아요 죄송합니다ㅠㅠ 샘플 코드를 다 날려버리고, 다시 돌아가는 애플리 github.com 2단계 Pull Request [2단계 - 경로 조회 기능] 깃짱(조은기) 미션 제출합니다! by eunkeeee · Pull Request #134 · woowacourse/jwp-s 안녕하세요 서브웨이! 이번 미션 통해서 처음부터 도메인 코드가 라이브러리와 강하게 결합하면 어떻게 되는지 잘 배운 것 같습니다......
💋 코드 저장소 1단계 Pull Request 링크 1단계 코드 저장소 💋 인트로 이번 미션은 상품에 대한 CRUD가 메인이었다. API 설계에 대해서 고민해볼 수 있었던 미션이었다! 또 완전 좋은 리뷰어를 만나서, 많이 배웠다. 너무 좋은 리뷰를 많이 남겨주셔서 잊기 전에 회고인 척 하는 피드백 정리를 작성해보려고 한다! 💋 CRUD DAO 설계 CRUD에 관해서 dao 인터페이스를 작성하는데, 메서드 시그니처 중에서도 특히 반환값을 어떻게 해야 할지 고민이었다. public interface ProductDao { Product save(Product product); List findAll(); Product findById(long id); Product update(Product product)..
깃짱
'우아한테크코스5기' 카테고리의 글 목록