게시판과 게시글의 id 를 아래와 같이 Long으로 선언하였다.
id를 Long으로 선언한 이유는 데이터의 양을 예측하기 어렵기 때문이다.
1. Wrapper class vs Primitive class
1) Wrapper class
기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 한다.
Wraper class 는 값이 null이어도 된다. 하지만 만약 코드에서 null로 인해 오류가 발생했을 때 이를 바로잡는 것이 어렵다.
따라서 null값이 아니기를 보장하고 싶다면, Primitive class를 사용하면 된다.(Primitive class는 null일 수 없다.)
2. Custom exception
사용 이유
1. 오류 추적 찾기 쉽게 하기위해
Custom exception을 사용하면 오류가 어디서 발생하는지를 쉽게 찾을 수 있다.
2. 예외별로 기능
3. 예외별로 지표
위와 같이 협업을 할때 어떤 오류들이 발생했는지를 지표를 만들어 공유할 수 있다.
3. Builder
builder의 문제점: 밖에 있으면 제약사항을 무시해버림
즉, 필수적으로 있어야 할 요소가 없음에도 객체를 만들수 있다.
4.put과 post의 차이
멱등성은 호출 횟수와 상관없이 동일한 응답을 받는 형태
/member 라는 POST API를 이용해서 요청을합니다.
API내용은 body 정보로 보내구요/
그럼 회원이 생성될꺼에요.
문제는 동일한 요청을 여러번 하게 되면 여러번 회원이 생성이 되는 문제가 생길거에요.
요청 할 때매다 등답이 달라지는 문제가 생기는 거죠
이게 멱등성 없는 형태 입니다.
보통은 같은 요청을 했지만 동일한 데이터로 회원이 생성되면 내부에서 아이디가 같다고 중복된 아이디라고 다른 응답을 주는 형태로 구현이 됩니다.
즉 같은 요청 했지만 서버에서 다른 응답을 내려 주는거죠.
PUT /members/1 형태로 1이 id값 형태로 해서 전달을 주게 됩니다.
즉 1번에 해당하는 id 값의 값만 변경되는거다 보니 몇번이고 호출해도 동일하게 변경이 되는거죠
RESTfull 형태로 구현할 때에는 이렇게 규칙 잘 지켜주세요 이런 거라 생각하시면 될것 같아요
https://www.slideshare.net/sbcoba/spring-test-mvc
JPA 공부 해볼수 있는 인강 추천
https://www.youtube.com/playlist?list=PLwouWTPuIjUi9Sih9mEci4Rqhz1VqiQXX
https://www.youtube.com/playlist?list=PLwouWTPuIjUgRvSmAVlZekcyAo4zkf_TK
'2022-Spring-SW-Coaching' 카테고리의 다른 글
Maridb & docker (0) | 2022.07.08 |
---|---|
2022 SKKU SW-coaching 5주차 코드 리뷰 (0) | 2022.07.08 |
git rebase/reflog (0) | 2022.07.08 |
CI/CD Github Actions로 시작해보기 (0) | 2022.07.08 |
CI/CD (0) | 2022.07.08 |