👨‍🚀 우아한테크코스 5기

👨‍🚀 우아한테크코스 5기

레이어드 아키텍처에 패키지 구조를 개선해서 코드 생산성 높이기

🟩 레이어드 아키텍처와 팀의 선택 레이어드 아키텍처는 유사한 책임을 지닌 계층으로 구성하고 계층이 하위 계층에만 의존할 수 있도록 구성하는 패턴입니다. 각 계층에 맞는 개체를 포함시켜 높은 직관성으로 코드 생산성을 향상시킬 수 있었습니다. 프로젝트에서는 크게 4계층으로 나누기로 결정했습니다. Controller 계층 : 클라이언트의 요청, 응답을 담당 Service 계층 : 비즈니스 로직을 담당 Domain 계층 : 도메인 로직을 담당 Repository 계층 : 데이터를 담당 팀원들 모두 공통적으로 가장 이해도가 높은 구조이며 관심사를 계층별로 분리하여 유지보수가 쉬워짐을 기대했습니다. 이에 더해서 팀원들 간의 DTO의 의존 방향까지 회의를 진행했습니다. 🟩 Service는 클라이언트를 모르게 Cont..

👨‍🚀 우아한테크코스 5기

우아한테크코스 5기 LEVEL3 - 회고

🚀 우아한테크코스 5기 레벨3 끝 - 2023년 8월 18일 금요일 약 2개월의 시간 동안 백엔드 + 프론트엔드 프로젝트를 3번의 데모데이 + 런칭 페스티벌을 진행하고 릴리즈 할 수 있었다. 백엔드 + 프론트엔드가 하나가 되어 제대로 된 프로젝트를 진행한 게 이번이 처음이었고 그만큼 재밌었고 힘들기도 한 기간이었다. 2023년 8월 18일 금요일 '바톤(baton)'이라는 프로젝트명으로 '코드 리뷰 중개 사이트'를 런칭했다. 첫 데모데이에 발표한 기획을 갈아엎어보기도 하며 '바톤(baton)'에 3번의 데모데이와 론칭 페스티벌으로부터 잊지 못할 추억들도 생기고 그 과정에서 만나보지 못한 새로운 고민을 해결해볼 수도 있었다. 또한 개발자라는 생각만으로 단순히 다양한 기능을 구현하는데 초점을 두지 않고 '바..

👨‍🚀 우아한테크코스 5기

[20230709] 우아한테크코스 5기 LEVEL 3 - 바톤 프로젝트 2주차

바톤 프로젝트 2주차가 지나고 1차 데모데이까지 끝났다. 기획에 집중해서 의미있는 프로젝트를 만드려고 매일매일 빠짐없이 회의했었다. 프로젝트를 한 번 돌아보자. 🟩 코드 컨벤션백엔드와 프론트엔드의 코드 컨벤션을 정했다. 사실 백엔드와 프론트엔드가 같이 코드 컨벤션을 정한다고하면 무엇이 필요한지 몰랐다. 사용하는 언어도 다르고 프레임워크도 다른데 맞춰야 되는 이유가 있을까? 백엔드와 프론트엔드의 최종적인 목표는 동일하다. 같은 바톤 프로젝트를 통해서 사용자들의 니즈를 만족시키는 것이다. 즉, 도메인 부분은 같다. 같은 도메인이라면 사용하는 코드에서 중복되는 부분은 도메인 용어가 있다. 현재 바톤은 "릴레이 소설"이라는 주제를 가지고 있다. 릴레이 소설이라는 도메인을 가진다면 소설, 문장, 단어, 작가 등의..

👨‍🚀 우아한테크코스 5기

[20230703] 우아한테크코스 5기 LEVEL3 - 바톤 프로젝트 1주차

우아한테크코스의 크루로서 생활한지 벌써 5개월 정도의 시간이 지났다. 그리고 기다리던 레벨3 프로젝트가 시작되었다. 릴레이 소설을 주제로 팀이 만들어졌고 "바톤"이라는 이름으로 진행하게 됐다. 🟩 킥오프 미팅 킥오프 미팅을 통해서 현재 [바톤] 프로젝트가 어떤 목표를 지향하고 있는지 알아봤다. 기획자분의 이야기를 먼저 듣고 이후 팀원들이 추가적으로 덧붙이면서 프로젝트에 대한 싱크를 맞췄다. 프로젝트를 시작하기 전 매우 기초적인 단계로 현재 [바톤] 팀이 진행하고 있는 프로젝트가 무엇인지 알 수 있었다. 프로젝트에 대한 간단한 소개 프로젝트 기획 배경 다른 서비스와의 차별점 기대 효과 정도의 이야기를 통해 문서화하고 킥오프 미팅을 마쳤다. 🟩 나 사용 설명서 [바톤] 팀이 정해지고 나서 다시 새로운 크루분..

👨‍🚀 우아한테크코스 5기

[20230607] 우아한테크코스 5기 LEVEL2 - 레벨2 및 인터뷰 회고

우아한테크코스 레벨2가 끝났다! 레벨1 마지막과 동일하게 레벨2에서도 인터뷰를 진행했다. 확실한 정답이 있다고 할 수는 없지만 개념은 공통적인 부분이라고 느낄 수 있었던 기간이었다. 레벨2에서 알게된 키워드를 나열해보면서 많은 것을 배워갔다는 것도 느꼈다. 🟩 레벨2 포스팅 스프링 🔗 [Spring MVC - ArgumentResolver] ArgumentResolver를 이용해서 컨트롤러 메서드의 파라미터 받기 🔗 [Spring MVC - Exception] @ExceptionHandler와 ExceptionHandlerExceptionResolver로 예외 처리하기 (1/2) 🔗 [Spring MVC] 디스패처 서블릿(DispatcherServlet) 둘러보기 🔗 [Spring] 필터(Filter)란..

👨‍🚀 우아한테크코스 5기

[20230521] 우아한테크코스 5기 LEVEL 2 - 지하철 미션, 추가 비용 정책을 데이터베이스에서 가져오려면

지하철 미션 3단계 진행하면서 노선별 거리당 추가 요금 정책을 어떻게 해결할 것인가에 대한 문제를 생각해보는 글이다. 거리당 추가 요금이 고정이라면 편하겠지만 노선이 계속 추가되거나 수정이 필요할 경우에 데이터베이스를 활용하지 않으면 서버를 내렸다가 켜야하는 상황이 발생한다. 이러한 문제를 해결하고자 노선별 거리당 추가 요금 정책을 데이터베이스에 저장하기로 했다. 그리고 문제를 해결하려고하니 오류가 마구 터지기 시작했다. 🥲 먼저 비용관련해서 고려해야할 부분은 3가지인데 "노선별 거리당 추가 요금 정책" 관련 이야기만 하려고 한다. 기본 요금 1,250 노선별 거리당 추가 요금 정책 ("추가 요금 정책" 이라고 부르겠다.) 승객별 요금 할인 🟧 01. 현재 지하철 애플리케이션 플로우 문제 상황을 더 확실..

👨‍🚀 우아한테크코스 5기

[20230508] 우아한테크코스 5기 LEVEL 2 - 장바구니 미션 2단계

🔗 Gitguh Repository GitHub - hyena0608/jwp-shopping-cart Contribute to hyena0608/jwp-shopping-cart development by creating an account on GitHub. github.com 🔗 Github PR [2단계 - 상품 관리 기능] 헤나(박현서) 미션 제출합니다 by hyena0608 · Pull Request #273 · woowacourse/jwp-s 안녕하세요 토니 !! 2단계도 잘 부탁드리겠습니다 😄 01. BasicAuthArgumentResolver에 Service 계층 넣어서 로그인 인증하기 중복되는 로직을 제거하기 위해서 ArgumentResolver에서 AuthService를 이용해서 DB에..

👨‍🚀 우아한테크코스 5기

[20230427] 우아한테크코스 5기 LEVEL 2 - 장바구니 1단계

안녕하세요 ~ 헤나입니다 ! 😄 🟧 01. id(pk값)을 제외하고 모든 정보를 수정한다고 할 때 PUT 메서드를 사용하는 것은 괜찮을까 ? 상품 정보를 수정하는 컨트롤러를 작성하던 중에 문득 고민된 부분이 있었다. PUT과 PATCH 메서드의 차이 때문이다. 현재 상품 수정 컨트롤러 코드는 아래와 같다. public class ProductApi { @PatchMapping("/{id}") public ResponseEntity updateProduct( @PathVariable(value = "id") long productId, @RequestBody @Valid ProductUpdateRequest request ) { final ProductResponse productResponse = pro..

👨‍🚀 우아한테크코스 5기

[20230424] 우아한테크코스 5기 LEVEL 2 - 웹 자동차 경주 1단계 & 2단계 회고

안녕하세요 ~ 헤나입니다 ! 😄 이번에는 "LEVEL2 - 웹 자동차 경주 미션 1단계" 회고를 진행해보려고 합니다 ! 🟧 01. 테스트 검증부 하드코딩 기존에 테스트를 다음과 같이 작성했다. @DisplayName("자동차 경주를 통해 게임 결과를 반환한다.") @Test void race() { // given final String jeomoon = "저문"; final String hyena = "헤나"; final CarGroup carGroup = new CarGroup("저문,헤나"); final int trial = 10; // when final RacingInfoResponse response = service.race(carGroup, trial); final List names = ..

👨‍🚀 우아한테크코스 5기

[20230329] 우아한테크코스 5기 LEVEL 1 - 레벨 인터뷰 회고

안녕하세요 ~ 헤나입니다 ! 😄 우아한테크코스 레벨1을 끝내기 전에 "레벨 인터뷰"가 있습니다. 이번 글을 레벨 인터뷰 회고에 대한 글입니다 ~ 👍 🟧 레벨 인터뷰 이전에 네오 코치와 함께 진행하는 재밌는 인터뷰(회고) 시간이다. 같은 인터뷰 팀이 된 크루들과 함께 진행했다. 이 시간은 회고가 중심이라고 생각한다. 면접과 비슷한 형식이지만 잘한 점, 보완할 점을 얻어갈 수 있는 의미 있는 시간이지 않을까 싶다. 😄 자신이 있지도 없지도 않았지만 확실히 내가 한거는 얘기하고 싶었다. 그래서 따로 인터뷰 준비를 레벨로그 작성 외로는 하지 않았다. 있는 그대로의 모습을 보여주고 싶었고 사실 시간이 없었기도 하다. 🤔 그리고 느끼고 싶은게 있었는데, 다시 공부하지 않아도 기억하고 있을지, 결정한 기술들에 대해서..

hyena0608
'👨‍🚀 우아한테크코스 5기' 카테고리의 글 목록