1. 스프링 부트를 활용한 블로그 백엔드 서버 만들기
꼬박 이틀 걸린 것 같다. 아직은 흉내내기에 가까운 만들기지만, 최대한 빠르게 내 걸로 만들 수 있다면 좋겠다.
** 엔티티는 DB의 테이블( 객체 지향적 언어의 속성을 살려 자바 관점에서 본 객체 )과 속성이 같아야 한다.
22.12.08 트러블 슈팅
Post 생성자를 만들 때 Dto 인자를 주입하며 @RequestBody를 사용하지 않음
(@ResponseBody와 혼동: @RestController) -> 값이 할당되지 않음 : 해결
+@RequestBody로 받을 때는 반드시 받는 객체가 기본 생성자를 가지고 있어야 한다( 인자의 필드가 하나인 경우에, 인자를 가진 생성자 메서드만 있으면 안된다, 둘 다 있는 건 가능 + 하나만 있는 경우는 Setter가 있어도 안된다 )
&& 메모장 프로젝트 실습보다 추가된 점 :
- 프론트엔드에서 받아오는 정보가 추가되었다. -> dto 객체의 속성값이 증가했다.
- 키 값을 가지고 게시물을 선택 조회 및 수정 / 삭제하는 기능
22. 12. 08 트러블 슈팅
1. 게시물 선택 조회 기능을 만들때 지식과 경험 부족으로 인한 컨트롤러, 서비스 구현이 막힘
시도 1) List<Post> 타입으로 반환하는 @GetMapping findById 메서드 작성 : postRepository에서 타입의 충돌이 발생 -> +Optional<Post>을 쓰라고 함??
2) JPA repository 클래스를 읽다가.. findById()(처음 시도한 조회메서드)가 없는 것을 발견?
(나뭇잎달려있는건 어디서 오는걸까) -> getById(Long id)로 바꾸자 반환해야 하는 타입이 Post 엔티티로 바뀜 ->
관련 컨트롤러 및 서비스에 반영
+ 테스트 : url에 /api/posts/1 입력 -> HTTP 500 에러
3) Crud Repository에 findById() 메서드를 찾았으나, Optional<T> 타입이다 ~ 쓸 줄 모르는 타입.
** 선택 조회 메서드 구현 해결 + Optional<Post>에 대한 공부를 더 해야한다.
2. 비밀번호 확인 기능 구현 : 고민과 구글링을 통해 비밀번호만 인스턴스로 갖고 있는 비밀번호 확인용 Dto를 만들어 Dto로 들어온 비밀번호와 레포지토리의 id값으로 조회한 이미 저장된 게시물의 비밀번호를 비교하는 메서드를 서비스에 구현
다음 이슈는 이 거를 어떻게 호출할 지 -> 비교 메서드를 boolean으로 두고 서비스의 업데이트에서 true....
-> 한참 고민하다가 비밀번호용 Dto가 필요없다는 것을 깨닫고(어차피 Dto vs 레포지토리이므로) RequestDto로 변경 후 재시도 : 해결, 삭제 기능도 동일하게 해결할 수 있을 것으로 기대
2. 코딩 테스트 입문
프로그래머스 영어가 싫어요
3. 스프링 숙련 강의
이제 시작
'내일배움캠프 4기 스프링 > 내배캠 TIL📘' 카테고리의 다른 글
12. 12 스프링 숙련 강의/ 코딩 테스트 입문/ JPA 기초 (0) | 2022.12.12 |
---|---|
12. 09 스프링 숙련 강의/ 스프링 공부/ DB 특강/ 코딩 테스트 입문 (0) | 2022.12.11 |
12. 07 스프링 입문 강의 및 메모장 프로젝트 구현/ 코딩 테스트 입문 (0) | 2022.12.07 |
12. 06 스프링 입문 강의/ 코딩 테스트 입문 (0) | 2022.12.06 |
12. 05 스프링 입문 강의 (0) | 2022.12.05 |