SpringBoot_웹 MVC, DB 접근 기술 1

5w31892p·2023년 1월 12일
0

Spring

목록 보기
25/30

직접 코드를 적으며 하는 방법이 가장 빠르게 배울 수 있다.

:: Spring initalizr로 생성하게 된다면 압축파일 풀고, 열기로 build.gradle 클릭 후 열기
:: SNAPSHOT or M1 등은 정식버전이 아니므로, 아무것도 적혀 있지 않은 것 중 가장 최신 버전으로 선택

:: 현업에서는 System.out.println이 아닌 log로 찍어야 한다.
:: 대표적으로 logbackslf4j를 많이 사용
:: test는 Junit

:: 터미널 or GitBash 로 build 하는 방법

맥, 윈도우 모두 동일

./gradlew build # 이게 안될 때에는 ./gradlew clean build
cd build
ls
cd libs
ls
java -jar ~~~SNAPSHOT.jar # 서버 배포시 해당 파일만 복사해서 배포하면 끝 

ls -alth # 모든 파일 & 폴더 역순으로 출력

:: 정적 컨텐츠

  • static 폴더 안에
  • 파일 있는 그대로 내려준다.

:: MVC

  • model, view, controller
  • 렌더링된 HTML을 클라이언트에 반환한다.
  • viewResolver이 동작한다.
  • 페이지 소스보기를 누르게 되면 html 소스 그대로 보인다.
<p th:text="'hello ' + ${name}">hello! empty</p>

<!--
hello empty는 서버없이 html 만들어서 화면 잘 찍히는지 볼 때 사용하는 용도
실제 서버가 돌게 되면 th:text="'hello ' + ${name}" 으로 변경되서 화면에 노출된다.
-->

::API

  • @ResponseBody 사용
    • HTTP의 BODY 부분에 return한 내용을 직접 넣어주겠다는 의미이다.
  • 객체를 JSON형식으로 반환한다.
  • HttpMessageConverter 동작한다.
  • 문자를 return하면 StringHttpMessageConverter이 문자 그대로를 넘겨준다.
  • 객체를 return하면 MappingJacson2HttpMessageConverter이 JSON 형식으로 바꿔 반환한다.

:: 예제 - 백엔드 개발

  • 비즈니스 요구사항 정리
    • 데이터는 어떤 것이 필요하고, 어떤 기능들이 필요한지
  • 일반적인 웹 애플리케이션 계층구조
    • 컨트롤러 : 웹 MVC의 컨트롤러 역할
    • 서비스 : 핵심 비즈니스 로직 구현
    • 리포지토리 : DB 접근, 도메인 객체를 DB에 저장하고 관리
    • 도메인 : 비즈니스 도메인 객체 (회원, 주문 등)

실습 코드 GitHub

인프런 김영한님 강의 정리

0개의 댓글