일반적인 웹 어플리케이션 계층 구조
- 컨트롤러 : 웹 mvc의 컨트롤러 역할
- 서비스 : 핵심 비지니스 로직 구현
- 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
- 도메인 : 비지니스 도메인 객체. 예) 회원,주문,쿠폰 등등 주로 데이터베이스에 저장하고 관리됨.
- 리포지토리는 정말 딱 데이터를 가져오고, 빼오고 하는 개발스러운 작업을 처리하고, 서비스는 비지니스단 로직을 처리. (회원가입, 조회 등등)
Java 문법
- Optional
- java8 문법
- null을 처리하는 방법
- Wrapper 클래스로 null이 올 수 있는 값을 감쌈
- 예전 같으면 if null이면 ~ 이런식으로 코딩한 것을 Optional로 처리하면 한번 감싸서 반환해주기떄문에 ifPresent 등 유용한 메서드를 사용 가능.
- OrElse / OrElseGet
- 값을 빼올 때 get으로 꺼낼 수도 있지만, orElseGet으로 많이 사용
- orElse 메서드는 해당 값이 null이거나 null이 아니어도 실행됨
- orElse의 파라미터는 값이 넘어감. 즉, 메서드를 넘겨주면 그 메서드는 실행되어 반환값만 들어가기 때문에 null이거나 null이 아니어도 모두 넘겨주는 메서드가 실행되는 것으로 보여지는 것.
- orElseGet 메서드는 해당 값이 null일 때만 실행됨
- orElseGet은 Supplier가 넘어가기때문에 null일 때만 파라미터로 넘겨진 메서드가 실행되는 것.
테스트
단축키
- ctrl + shift + enter : 엔터
- ctrl + alt + v : 변수 추출
- sout : System.out.println
- soutv : System.out.println 에 value 붙여서 나옴
- shift f6 : rename
- ctrl alt shift t : 리펙토링 전체 항목 조회
- ctrl alt L : 해당 프로젝트의 표준 서식에 맞게 정렬
(출처 : 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술)