20210906_TIL

hellooz·2021년 9월 5일
0

TIL

목록 보기
4/8

일반적인 웹 어플리케이션 계층 구조

  • 컨트롤러 : 웹 mvc의 컨트롤러 역할
  • 서비스 : 핵심 비지니스 로직 구현
  • 리포지토리 : 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리
  • 도메인 : 비지니스 도메인 객체. 예) 회원,주문,쿠폰 등등 주로 데이터베이스에 저장하고 관리됨.
  • 리포지토리는 정말 딱 데이터를 가져오고, 빼오고 하는 개발스러운 작업을 처리하고, 서비스는 비지니스단 로직을 처리. (회원가입, 조회 등등)

Java 문법

  • Optional
    1. java8 문법
    2. null을 처리하는 방법
    3. Wrapper 클래스로 null이 올 수 있는 값을 감쌈
    4. 예전 같으면 if null이면 ~ 이런식으로 코딩한 것을 Optional로 처리하면 한번 감싸서 반환해주기떄문에 ifPresent 등 유용한 메서드를 사용 가능.
  • OrElse / OrElseGet
    • 값을 빼올 때 get으로 꺼낼 수도 있지만, orElseGet으로 많이 사용
    • orElse 메서드는 해당 값이 null이거나 null이 아니어도 실행됨
      • orElse의 파라미터는 값이 넘어감. 즉, 메서드를 넘겨주면 그 메서드는 실행되어 반환값만 들어가기 때문에 null이거나 null이 아니어도 모두 넘겨주는 메서드가 실행되는 것으로 보여지는 것.
    • orElseGet 메서드는 해당 값이 null일 때만 실행됨
      • orElseGet은 Supplier가 넘어가기때문에 null일 때만 파라미터로 넘겨진 메서드가 실행되는 것.

테스트

  • 순서에 의존적으로 설계하면 안된다.

    • AfterEach 메서드를 만들어서 테스트 실행되고 끝날때마다 저장소(리포지토리)나 공용데이터를 지우도록 한다.
  • 미리 검증틀을 만들어놓고, 개발하는 것을 테스트주도개발 즉 TDD라고 한다. (TDD도 한번 찾아보기)

단축키

  • 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 접근 기술)

0개의 댓글