[Project] Jscode 멘토링 1일차

박상혁·2023년 5월 10일
0

Project

목록 보기
8/14

서론

Jscode라는 멘토링 프로그램을 진행하면서 회차마다 프로젝트를 구현하여 이에 대한 느낀점을 작성하려 합니다.
어떤 방식으로, 어떤 흐름대로 구현하는지, 다른 방법은 없는지 팀원들과 서로 논의하며 점점 살을 붙여나가는 방식으로 구현 방식을 정리하는 목적으로 작성합니다.

본론 (1일차 - level1, level2 구현)

👉 프로젝트 환경 설정에 대해 정리하였습니다.

[Project] Spring 프로젝트 초기 설정

👉 git과 github 사용법에 대해 정리하였습니다.

이때까지 git은 별도의 브랜치를 만들지 않고 commit만 진행하여 github 리포지토리에 바로 push하는것만 반복했었습니다.
이는 git의 장점을 살리지 못하는 행동임을 이번 기회에 깨닫게 되었고, 실제 협업 단계에서 사용되는 방식을 학습하고 적용하고 싶어 이렇게 기초적인 개념부터 정리해보고 사용해보았습니다.
[Git] 깃 개요 및 기초 명령어
[Git] 브랜치 전략

👉 게시판 CRUD를 구현하였습니다.

  • REST API 규칙을 최대한 지켜서 요청 URL 및 응답 코드를 만들어보았습니다. (기본 라우팅 방법 학습)
  • Entity - Service - Controller 패턴대로 구현했습니다.
  • JPA를 사용하여 DB연동 및 JPA 기본 제공 메서드를 사용했습니다.
  • Entity에 직접 get,set으로 접근하는 것을 막기 위함이며 또한 원하는 데이터만 출력하게 하기 위해 dto를 추가해보았습니다.

❗ {DELETE, PUT, PATCH} HTTP 메서드가 지원하지 않는다는 오류가 발생했었습니다.
해당 오류를 해결하기 위해 많은 시간을 할애하였고 결국 @PathVariable과 @RequestParam의 사용법을 잘못 알고있어서 생긴 오류임을 알게 되었습니다.
이에 Handler 메서드의 파라미터까지 값을 전달해주는 바인딩 어노테이션들을 확실하게 이해할 필요성을 느껴 별도의 포스팅으로 정리하였습니다.
[Spring MVC] 객체 바인딩 어노테이션

👉 Postman을 사용하여 요청 및 응답 테스트를 진행하였습니다.

대표적인 API 클라이언트인 Postman을 사용하여 테스트를 진행하였고, 모든 Controller들이 정상작동 하였습니다.

결론

😞 제 생각보다 훨씬 방대한 개념들이 존재했습니다.

  • JPA 개념을 공부하면서 어려움을 겪었습니다.
    실제로 내부가 어떻게 동작하는지 모르는 상태였기 때문에 이에 대해 깊은 학습이 필요했습니다.

  • 심화 미션을 보면서 개발자는 생산성 및 가독성을 생각해야 된다는 점을 알게 되었습니다.
    제가 모르는 코딩 기법 및 지식들이 많아 그동안 자만하고 있었던 저를 깊이 반성하게 되는 시간이였습니다..
    앞으로 구현 후에 코드를 다시보며 심화 미션에 있는 개념들을 한개씩 적용시켜보는 시간을 갖도록 하겠습니다.

profile
개발 노트

0개의 댓글