웹개발생존기/JAVA_개발공부

JAVA생초보 필기 - 복잡한 get (feat. controller 경로 오류 주의)

개발하는 나비 2022. 10. 27. 20:41

get 보이는 것 두가지

시판 글씨 - 모델

차 사진 - 모델

기아 - 모델 위에 제조사에서 가져온 것

즉, 제조사/모델만 사용해서 보여지고 있는 것이기 때문에

 

모델 기준으로 데이터를 가지고오게 되면

모델은 제조사를 알고 있으니까 정보를 당연히 join해서 가져오겠죠?

아래꺼는 필요없으니 굳이 join할 필요가 없죠.

 

즉, 모델과 제조사가 필요한데 = 모델을 가져오는 것

 

이 형식과

 



// 가장바깥에 있는 모델이다라는 이름 = response

item이면 무조건 빌더를 써야할까?

프라이스는 결국 response에서도 빌더만들고,  받아 쓸려고 한거니까

priceItem은 @Getter @Setter 사용함

 

min max의 반복이라서, 모델에서 rangeItem을 아예 만들어서

쓸 때마다 가져다 쓸 수 있도록 하였음. (그래서 빌더패턴을 쓰지 않고 setter사용으로 함.)



1차적으로 막아야하는 것은, 중복데이터를 가지고 오지 않도록 하는 거예요.

그래서 유일한 한줄을 가져올 수 있는 기준점을 잡고, 그 기준이 ‘모델’이에요

 

 

ex: 5번 모델에 해당되는 트림들을 가져와주세요

트림 - 등급 - 모델 - 모델에서 id로 거슬러 올라가고있음

 

구글검색어를 통해

가져오는 법 구글링해보기

 

minPrice와 maxPrice가 구해지려면 정렬한다음 맨 처음과 맨 마지막을가져오도록 하면 되겠죠

 

정렬도 영어로 해야함

금액이 작은게 앞으로 오길 바라죠. 그러면 오름차순일까요 내림차순일까요?

오름차순입니다.



구글링 2

 

 

중복된 데이터를 set에서 합쳐지고

다시 List로 보내면 중복된게 사라짐

 

구글링 3




숫자, 리스트, 숫자  등으로 나눠서 한 이유는

같은 데이터를 쓰는데 형식을 다르게 해서 프론트에서 재가공해서 써야하는 곳이 있어요.

 

가장 크리티컬한 것은

내가 금액을 줬는데, (스트링으로 만들어서 줬다)

2,474~3,809 만원 이라고 했는데

원 단위로 보여지길 바란다고 하면

프론트는 아무일도 안하지만, 백이 소스코드를 고쳐야해요.

백이 소스코드를 고친다는건 서버가 한번 껐다 켜졌다라는 의미예요.

재시작을 해야한다는 의미입니다.

그래서 중요한 데이터들은 숫자로 주는게 맞을까요 아니면 재가공을해서주는게 맞을까요?

 

숫자로 해야. 미래를 대비할 수 있겠죠

 

사이트의 디자인 개편을 하는데 백이 개입되지 않도록, 프론트가 할 일과 백이 할 일 나눠서 해야함.




—------------------------------------------------------------------------------------------------------

컨트롤러 오류 주의

경로를 조심해야한다.

 

[get]  /detail/{carModelId} <- Long

[get] /detail/{carGradeId} <-Long

이름이 달라서 돌아가긴 하는데

 

만약 /detail/5라고 하면 

둘중 어느 것을 찾아가야하는지 모른다.

 

둘다. Long이기 때문에 숫자를 넣게 되면서 문제가 생긴다.

 

그래서 경로 이름을 지을땐 보통

 

/detail/car-model-id/{carModelId}

/detail/car-grade-id/{carGradeId}