본문 바로가기
스터디일지/JAVA SPRING

[Java Spring] 1 주차 강의 과제하기

by 똥쟁이핑크 2023. 8. 28.

https://github.com/teresa881016/Post_part1

 

GitHub - teresa881016/Post_part1

Contribute to teresa881016/Post_part1 development by creating an account on GitHub.

github.com

https://www.notion.so/Lv-1-a7c973fe92324baa86eea24959a41d7b?pvs=4

 

 

과제

게시글 작성하는  API 만들기

 

 

API 명세서

API 명세서는 다음과 같다.

Method URL Request Response
POST /api/posts { "title" : "title",
"content" : "content",
"name" : "name",
"password" : "password" }
{"id" : "id",
"title" : "title",
"content" : "content",
"name" : "name",
"password" : "password"
"fromDate :"yyyy-MM-dd 24:00:00",
"toDate" :"yyyy-MM-dd 24:00:00"}
GET /api/posts -  
PUT /api/{id} { "title" : "title2",
"content" : "content2",
"name" : "name2",
"password" : "password2" }
{"id" : "id",
"title" : "title2",
"content" : "content2",
"name" : "name2",
"password" : "password2"
"fromDate :"yyyy-MM-dd 24:00:00",
"toDate" :"yyyy-MM-dd 24:00:00"}
DELETE /api/{id} { "title" : "title",
"content" : "content",
"name" : "name",
"password" : "password" }
 

 

Database 연결하기

CMD를 열고 mysql -u root -p 를 치고 비번을 쳐서 create database post;를 해줬다.

다음 인텔리제이에 들어가서 

 

필요한 정보 입력하고 연결 테스트 까지 성공했다.

시작이 좋은 줄 알았다.

 

이해하고 만들고 이해하고 만드는 시간이 엄청 오래 걸렸다.  

 

에러 및 문제점 발생 

  1. properties에 DB 연동 코드를 넣지 않아서 에러가 발생했다.
  2. GetMapping 에서 url을 /posts가 아닌 그냥 posts로 써서 에러거 발생했다.
  3. post 테이블에서 생성날짜는 넣었지만 id와 수정 날짜의 컬럼이 들어가지 않아 다시 만들었다.
  4. id 값이 null이 들어가서 매니저님께 여쭤보니 PostResponseDto 생성자에 내가 id를 넣지 않았다는걸 알게 됬다.
  5. id 값을 확인하고 password를 쳐서 수정 삭제를 해야 하는데 id는 확인 안하고 password만 확인해서 같은 password면 id 상관없이 모조리 삭제 됬다.
  6. GET 방식으로 불러올때 name에 contents값이 들어갔다. 아니면 contents값에 password가 출력되서 나왔다. 이 부분은 Controller에서 순서도 바꿔 줬지만 그럼에도 해결이 안나서 더 자세히 보니 PostResponseDto 생성자에서도 순서가 바뀌어서 그랬다. 순서를 맞춰주니 잘 들어갔다.

오늘까지 한 과제 결과는 API동작은 잘 됬고 비밀번호 맞게 들어가서 수정과 삭제 까지 다 되었다.

postman으로 확인해보니 잘 돌아갔다.

다만, 세부적인 사항은 조금 더 수정을 해야한다.

내일은 조금 더 강의를 듣고 수정을 하려한다.