TIL 2021.04.26 [데이터삽입/문제해결]

Kyu·2021년 4월 26일
0

TIL

목록 보기
106/322

점점 api가 전부 완성 되어가고 있다.

오늘은 main, soup, side에 따라서 데이터를 불러오는 api를 만들었다.
이걸 위해서 best 카테고리에서 카테고리 아이디를 사용하는 것처럼 main, soup, side에도 특정 카테고리 아이디를 넣어주고 불러올때 그 아이디를 통해서 데이터를 가져오는 방식으로 하려고 했는데 !
그냥 tag라는 컬럼을 따로 추가해줬다.

그래서

@Query("생략") 
List<Banchan> findBanchansByTag(String tag);

요런식으로 만들어주고 간단히 해결하긴 했는데,
tag가 가만보니 상수여서 이넘으로 해주려다가,,일단은 모든 api 구현이 먼저라고 생각해서 넘어갔다.

예제 데이터 삽입..

오늘은 크게 한게 없지만, 데이터삽입하는데 용을 많이 썼다.
하면서 이렇게 하는게 맞나 싶었는데......

일단 내 Banchan 데이터들은 아래 이미지처럼 @Embedded 로 전부 연결되어있다. 즉 한 테이블에 Banchan에 대한 정보가 모두 담겨있다.

Banchan - BanchanDetail - BanchanDetailData 이런식으로 되어있다. 클래스이름도 이렇게 해놓음 ㅋㅋㅋ

내가 했던 방법

Mock API에 나와있던 JSON 데이터들을 그대로 복사해서 Postman을 이용해서 PUT 하고 싶었다.

대충 POST로 들어온 데이터를 레포에 save()하는 api를 만들어서 하려고했는데, @Embedded 어노테이션이 달린 객체는 어떻게 데이터를 넣어야할지 몰라서 첨엔 걍 필드에 나와있는거만 데이터를 넣었다.

그러니까 위에 있는 이미지를 가지고 예를 들자면
name, age만 데이터를 포스트맨으로 넣고 UserDetail은 어떻게 해야할지 몰라서 일단 내비뒀었다.
그러다 어떻게 넣는 방법이 없을까? 생각하다가,
다시 이미지를 가지고 비유를 하자면
User Entity를 GET 해서 JSON이 어떤 형식으로 나오는지 봤다.

왜냐면, 그 형식을 그대로 따라서 JSON을 작성해서 POST하거나 PUT하면 데이터가 삽입되거나 바뀔것 같았다.

그래서 GET을 해서 봤더니 이런식으로 나왔다.

{
  "name": "큐큐",
  "age": 19,
  "userDetail": {
     "email": "kyukyu@velog.com",
     "github": {
	   ...
	   ...생략
	   ...
      }
  }
}

UserDetailGitgub부분은 내가 지정했던 변수이름으로 나왔다.
그러니까 userDetail이라고 나온건 내가 private UserDetail userDtail; 이라고 했기 때문에 저렇게 나왔었다.

이걸 알고서 GET으로 알아낸 저 데이터 형식대로 데이터를 삽입했더니 한번에 잘 됐다!

그래도...

Mock API에서 접속되는 데이터가 총 24개이고, 각 데이터가 Detail이라는 것을 가지고 있어서 총 48개 링크를 복붙 & 내 api에 맞게 조금 수정 하느라 힘들었다.

이게 맞는걸까?

그래서 이렇게 하는게 맞는지 좀 의구심이 든다..최대한 노가다를 줄여보려 했으나 그래도 꽤 힘든 노가다가 필요했기 때문이다..

profile
TIL 남기는 공간입니다

0개의 댓글