AController-AService는 1대1로만 엮고 AContoller-BService로 쓰이지 않도록해야겠음
AService 안에 BService를 넣어 BService의 메소드 재사용하도록해서 AController-AService(에서 BService의 메소드 호출)
Controller와 Service의 역할분리
Controller는 시스템으로 들어오는 요청과 응답을 담당
Service의 역할은 도메인의 데이터를 가공해서 컨트롤러에 전달하는 것
컨트롤러 안에 서비스가 담당해야할 잡다한 로직 들어가지 않도록 서비스에 추출
AService와 BService가 생성자에 서로를 넣으면 순환참조돼서 AService생성->BService생성->AService생성->... 와 같이 되어 프로그램 작동 안함.
Service는 final로 지정. (
포맷 중시
- for, if 다음에 띄어쓰기 꼭 하기
- 빈 줄도 코드.
- 빈 생성자 쓸 때 {} 사이 공백 넣을지 말지도 통일
- 매개변수 양끝의 공백도 trim
Controller 내 Service, Service 내 Repository를 final 설정해야하는 이유:
https://yaboong.github.io/spring/2019/08/29/why-field-injection-is-bad/