TIL : 221214

JINSEON YE·2022년 12월 14일

TIL

목록 보기
32/88

Spring

웹을 개발할때는 크게 정적 콘텐츠, MVC와 템플릿 엔진, API 이렇게 3가지 방법이 있다.

정적 컨텐츠

  • 입력한 값이 가만히 보여지기만 하는 페이지

MVC와 템플릿 엔진 방식

  • 예를들어 과거 JSP, PHP(템플릿 엔진)처럼 HTML을 그대로 내려주지 않고, 서버에서 프로그래밍하여 동적으로 내려주는데 모델, 뷰, 컨트롤러로 모듈화하여 처리하는 방식

API 방식

  • 예를들어, Vue js, React, 모바일 등의 클라이언트와 함께 개발해야 할때, 요즘에는 JSON 포맷으로 클라이언트에게 데이터를 전달해주는 방식입니다. 또, 서버끼리 통신할 때도 html이 필요 없으므로 이 방식을 사용합니다.

정리

  • required() defalt = false -> 값을 안 넘겨도 됨.

  • 주소 뒤에 ?name=spring : get방식으로 받아오는 것

  • @ResponseBody : http의 body에 이 데이터를 내가 직접 넣어주겠다.

  • getter/setter ?
    getter/setter 을 두는 것은 Java bean 표준 규약입니다. private 접근지정자가 설정된 멤버변수 name에 접근하기 위해 getter/setter을 사용합니다. 그래서 getter/setter의 접근지정자는 public 으로 설정해야 합니다. 또 위와 같은 방식은 property 접근 방식이라고 합니다.

정적 컨텐츠, mvc템플릿 엔진, api 참고

참고

백엔드 개발 순서
1. 비지니스 요구사항 정리

  1. 회원 도메인과 리포지토리 만들기

  2. 회원 리포지토리 테스트 케이스 작성

  3. 회원 서비스 개발

  4. 회원 서비스 테스트 ( JUnit 사용 )

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

컨트롤러

  • 웹 MVC의 컨트롤러 역할

서비스

  • 핵심 비즈니스 로직 구현

리포지토리

  • 데이터베이스에 접근, 도메인 객체를 DB에 저장하고 관리

도메인

  • 비즈니스 도메인 객체, 예) 회원, 주문, 쿠폰 등등 주로 데이터베이스에 저장하고 관리됨

테스트는 의존관계없이 설계가 되어야 함.

  • @AfterEach

optional

  • 우선 NPE(NullPointerException)를 알아야합니다. 개발할 때 가장 많이 발생하는 예외중 하나인데 이걸 피하려면 null여부를 확인해야하는데, 이걸 쉽게 회피할 수 있는 방법이 Optional 클래스입니다.

Optional 클래스는Integer나 Double클래스처럼 null 일수 있는 T타입의 객체를 포장해주는 래퍼 클래스에요. 그래서 이 인스턴스는 모든 타입의 참조 변수를 저장할 수 있습니다.

참고

참고

인텔리제이 단축키

  • 커맨드+p : 파라미터 정보
  • 커맨트+쉬프트+엔터 : 코드 마무리해줌
  • 커맨드+n : 제너레이트
  • 커맨드+옵션+b : 네비게이트
  • 쉬프트 + f6 : 일괄 리네임 (맥은 fn도 같이 눌러줘야함)
  • 커맨드 + 옵션 + v : extract 에서 introduce variable
  • 커맨드 + p : 파라미터 정보
  • 커맨드 + d : 복사붙여넣기 동시에
profile
백엔드 개발자

0개의 댓글