참고 링크 : 백엔드와 협업하기
참고 링크 : API 문서 톺아보기
swagger ui 예시
https://swagger.io/docs/
아래 값들을 모두 포함하는 Store 엔티티, 테이블을 생성하였다.
주소에는 도로명 주소와 상세 주소를 포함하도록 @Embedded , @Embeddable 어노테이션을 활용하여 구현하였다!
여기서 주의할 점은, 아래와 같이 Address 클래스에 Getter를 꼭 생성
해주어야 한다!!
import javax.persistence.Embeddable;
@Embeddable
public class Address {
private String address1;
private String addressDetail;
public Address(){
}
//Getter를 생성해주어야 한다!
public String getAddress1() {
return address1;
}
public String getAddressDetail() {
return addressDetail;
}
}
수 많은 착오 끝에.,, 드디어 Address에 상세 주소까지 저장이 됐다 ㅠㅠㅠㅠ Address 부분은 계속 NULL이 떠서 방법을 찾아 다녔는데, 이것만 거의 한시간 걸렸따..
https://galid1.tistory.com/732 여길 참고했다!
나와는 다른 문제긴 했지만, Address 클래스에서 Getter 를 생성하니 해결됐다!!! 그리고 SQL에서 변수명은 인텔리제이에서 작성한 변수대로 작성해야한다! 대소문자 구별 해서!! 휴,, 오늘은 이거 하나 해결했지만 뿌듯하다!
table을 삭제하고 다시 데이터를 POST 하였다. 올바르게 작동한다.
위 링크를 참고하여 코드를 확인하자!
참고 링크 : 일대다 관계
https://jdm.kr/blog/141
https://stir.tistory.com/158
https://mjmjmj98.tistory.com/m/152
ProductEntity 테이블에 StoreEntity의 id가 생기는 부분까지 구현하였다.
하지만 지금 관계형데이터베이스에 관한 개념이 부족해 헤매고 있어 구현이 어렵다 ㅠㅠ
이제 이 다음에는 StoreEntity의 id를 각각 해당해야하는데, 구현이 어렵다..
사실 저기 테이블에 보이는 store_entity_product_entity 테이블도 왜 생기는지 모르겠따 ㅠ
Git PR #4 store table 설계 참고
위 링크에 구현해놓았다.
기본 api를 구현하였다. ProductEntity 에서의 기능과 크게 다르지 않아 금방 구현하였다.
api/products?store=1
로 조회시 1번 상점에 있는 모든 상품 리스트 응답
구현하지 못했다 ㅠㅠ.
springfox-swagger
,springdoc-openapi-ui
중 하나를 선택해서 swagger 문서를 생성해보세요.
이 심화미션도 구현하지 못했다. swagger에 대한 이해가 더 필요할 것 같다.
이번 회차를 통해 swagger를 알아보았고, 백엔드 협업 방식에 대해 알아보았다. 하지만 이 부분은 아직 내가 부족해 이해하는데 어려움이 있어 참고 링크만 기재해두고 나중에 다시 확인해보아야 할 것 같다.
미션을 통해, @Embedded , @Embeddable 그리고 Join Table(@OneToMany,@ManyToOne) 과 같은 개념을 알게 되었다.
@Embedded 어노테이션은 구현하였는데, 이 과정에서 시간이 오래 소요되었다. Getter를 생성해주어야 하는지도 몰랐고, POSTMAN에서 @Embedded 된 도로명 주소와 상세주소를 어떻게 JSON 형식으로 주어야하는지 몰라 상당히 헤맸다 ㅎㅎ,,
사진에 보다 싶이 처음에는 address1 과 addressDetail 에 값이 들어가지 않아 진짜 엄청 바꿔가며 이것저것 다 넣어보았다. Getter를 생성하고 대소문자 구별하여 POST 하니 성공적으로 데이터가 들어갔다!
그리고 다음으로는 JoinTable에 관한 구현이였는데, 아 이 부분이 너무 어려웠다.
데이터베이스에 대한 학습을 이번 스터디를 통해 처음한거라, 개념 자체도 생소해 사실 구현을 제대로 하지 못했다.. 개인적으로 이번 미션에서 단순 StoreEntity 저번 미션과 다를 바가 없어 @OneToMany와 같은 어노테이션을 사용해 1:N 관계를 구현하고 싶었는데 구현하지 못했다 ㅠㅠ
다음 학기에 데이터베이스설계 과목을 듣긴 하지만, 이렇게 소프트로 갈 줄 알았다면 미리 들어놓을걸 하는 아쉬움이 ㅠㅠ 스터디가 끝이 났지만 계속해서 부족한 부분을 공부해 프로젝트를 보완할 예정이다!
위에 적어놓았다 싶이 데이터베이스 관한 개념이 부족해 심화 미션 중 1:N(일대다) 관계를 구현하지 못해 아쉬웠다.
Swagger 에 대한 내용은 어려워 이번에 넘어간다 치더라도, 그 부분까지는 구현하고 싶었는데 아쉽다 ㅠ
데이터베이스 관계를 좀 더 공부하고 구현해보아야겠다!