본문 바로가기

내일배움캠프 4기 스프링/내배캠 TIL📘

12. 08 스프링 부트를 활용한 블로그 백엔드 서버 만들기/ 코딩 테스트 입문/ 스프링 숙련 강의

728x90

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. 스프링 숙련 강의

이제 시작

728x90