Level 완성 후기
Level2 (게시판 만들기)
지난번에 프로젝트를 위한 세팅을 완료하고, 본격적으로 게시판 개발을 시작했다.
국비로 진행된 프로젝트에서는 풀스택으로 개발을 해봤기 때문에 직접 데이터를 보내고 확인하는 작업을 했지만,
JSCODE 클래스에서는 현재 프론트 개발이 되어있지 않기 때문에 Postman으로 대체했다.
Postman도 처음 사용해보기 때문에 조작법에 애를 먹었지만 검색을 통해 어떻게 잘 해결했다.
국비에서는 spring을 사용했었고 JPA를 사용하지 않고 mapper인터페이스를 이용했지만,
JSCODE 클래스에서는 CRUD 개발에 있어서 간단한 JPA문법만 공부하면 알아서 다 해줬다(신기함)
물론 entity라는 속성이나 새로 공부해야 하는 것도 있고, JPA도 어렵지만...알아서 자동으로 해준다는 점이
너무 매력적이다.
2단계에서는 기본적인 CRUD를 개발하는 단계이다
✅ 학습 목표
- URL, Http Method를 활용한 기본 라우팅 방법 학습
- Request Body, Query Params, Path Params 사용해보기
- ORM 사용
- 엔티티(테이블) 생성
- 기본적인 CRUD 활용
- 요청부터 응답까지 전체 과정 경험
- REST API 설계
- HTTP Status Code (상태 코드)
- Postman 사용법
학습 목표를 보아 힌트도 주어져 있고 대략 어느방향으로 해야할지 감이 잡혀서 못할 수준은 아니었다.
후기: 개발도구와, 협업도구, 프레임워크 전부다 처음 사용해보는거라 낯설게 다가왔지만, 꾸역꾸역 해결해 나가니까 퍼즐푸는 느낌이기도 하고 재미있었다.
Level3(정렬, 검색, 개수 제한 기능추가)
기본적인 CRUD 개발을 마치고 세부 기능이다.
✅ 학습 목표
- 정렬 기능
- 검색 기능
- 데이터 조회 시 limit 걸기
- createdAt 컬럼 배우기
1.Table에 게시판 생성시간 추가
2. 게시판 최근 작성한 순으로 최대 100개 조회
3. 검색기능 추가
후기: 검색 기능에서 많은 시간이 걸렸다, 처음 Controller에서부터 Data flow대로 코드를 봐도 모르겠어서 멘토님께 여쭤봤다. 멘토님께서 검색 관련된 JPA를 알려주는 사이트를 추천해봤는데 그거대로 수정해보니깐 바로 됐다..........
findByBoardTitleLike->findByBoardTitleContains
findByBoardTitleContains=문자열이 제목의 어느 부분에든 포함되어 있다면 해당 게시물을 반환한다.
findByBoardTitleLike = 이 메서드는 SQL의 LIKE 연산자와 유사한 기능이다. 검색어에 와일드카드 문자(%)를 사용하여 부분 일치를 지정할 수 있다.
예를 들어, 검색어가 "%게시판%"이라면 게시판 제목에 "게시판"라는 문자열이 포함된 게시물을 반환한다.
Level2 (유효성 검사, 예외 처리)
✅ 학습 목표
- 유효성 검사
- 예외 처리
✅ 요구 사항
- 게시글 작성 기능
- 게시글 제목, 내용은 필수적으로 포함해야 한다.
- 제목은 1글자 이상 15글자 이하여야 한다.
- 내용은 1글자 이상 1000글자 이하여야 한다.
- 제목은 공백으로만 이루어질 수는 없다.
위 요구사항이 지켜지지 않았을때 예외처리 or 사용자에게 에러 메세지로 응답한다.
후기: 기존 2레벨에서 에러 메세지나 응답코드를 미리 작성해놔서 오래걸리진 않았다. 게시판 글자수 제한이나 여러 제한사항만 추가하면 끝이었다.
'STUDY' 카테고리의 다른 글
백엔드 입문 프로젝트 클래스(Spring boot)을 마치며.. (2) | 2023.06.01 |
---|---|
Spring boot (JPA) (0) | 2023.05.11 |
백엔드 입문 프로젝트 클래스(Spring boot) (0) | 2023.05.11 |
IntStream (0) | 2023.04.19 |
IntStream(3) (0) | 2023.04.19 |