본문 바로가기
코딩/TIL,WIL

항해99 day30

by 내 멋대로 삶 2021. 11. 30.

- to do list

  • 개인과제 1,2번 완성
  • 3주차 강의 완료

개인과제를 최대한 하기 위해서 알고리즘은 빼고 과제위주로 하기위해 온전히 과제만 집중해서 3개중 2개를 완료했다.

요구조건만 보고 구현을시키려고 하니 내가 이해하지 못하고 넘어갔던 부분들이 힘겹게 느껴진다.

 

오늘 한일
  • 음식점 목록 등록/조회 기능
  • 음식점에서 파는 음식목록등록 ,메뉴판 조회 기능

 

1.return

이 return을 누구에게 왜 전달해야하는지를 이해가 부족했다.

  • 클래스내의 어떠한 메소드가 실행되고 해당 메소드 실행에 따라 나온 값을 호출한 곳에서 돌려받고자 할때
  • 해당 메소드 실행중 특정 조건에 따라 해당 메소드의 진행을 멈추고 빠져나올때

2.@PathVariable Long restaurantId

요구사항중 음식점의 id와 음식id관계를 설정해야 하는데 아직 many to one/one to many의 이해와 @joinclumn에 관해 이해가 부족해 사용을 하지 못했다. 

이것을 사용하는 이유는 어느 한부분이 변경되었을때 한곳에서만 변경해주면 모든곳이 자동으로 바뀌게 연동을 시켜주는 것인다. 이것을 무결성이라고 한다.

하지만 내가 적용한 방법은 변경이 일어나면 하나하나 모두 변경해주어야 하기 떄문에 무결성이 부족하다.

생성자에 음식점id를 넣어 관리했다. 

3.리스트 객체의 사용

리스트 객체를 for 문을 돌려 하나의 새로운 객체에 저장을 하려고 하는 방식이다. 

처음에는 이 리스트객체와 저장하는 새로운객체관에 클래스가 다르기 때문에 변환을 하고 for문을 돌려야하는줄 알았다. 하지만 그렇게 하지않아도 된다. 

for문

리스트에 추가를 원한다면 list.add(객체변수명)을 통해 값을 넣으면 된다.

 

4. @Transactional

저장을 하는 중에 3개의 값중 1개의 값에서 오류가 난다면 그전의 2개는 저장이되고 1개만 오류로 튕겨져 나온다.

하지만, 중복을 허용하지 않는 유효성검사가 있다면 새로운 시도를 할때 앞의 2개는 이미 저장이 되어있기 때문에 중복오류가 발생한다. 이것을 방지하기 위해서는 오류가 난 부분의 전체 정보를 취소 해야하는데 이것을 @Transactional 어노테이션이 도와준다.

 

 

'코딩 > TIL,WIL' 카테고리의 다른 글

항해99 day32  (0) 2021.12.02
항해99 day31  (0) 2021.12.01
항해99 day29/mini-project(배달주문)  (0) 2021.11.29
항해 99 WIL(Weekly I Learned)4주차  (0) 2021.11.28
항해99 day27  (0) 2021.11.27