[Spring] 1주차 - 기본 개념/스프링 부트 시작하기

smjan27·2021년 10월 3일
0

Spring Boot

목록 보기
5/9
post-thumbnail

학습 교재: 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (지은이 : 이동욱, 출판사 : 프리렉)

REST API

API (Application Programming Interface)

  • 정보들을 주고받는 일종의 형식
  • 소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청, 명령을 받을 수 있는 수단

REST API

REST 형식의 API

  • 요청 주소만으로도 어떤 요청인지 파악 가능
  • URI: 자원을 구조와 함께 나타내는 형태의 구분자
  • CRUD: Create/Read/Update/Delete

서버에 REST API로 요청을 보낼 때는 HTTP 규약에 따라 신호를 전송한다. HTTP로 요청을 보낼 때 사용하는 여러 가지 메소드가 있다.

누구든 각 요청의 의도를 쉽게 파악할 수 있도록 RESTful하게 API를 만들기 위해서는 이들을 목적에 따라 구분해서 사용해야 한다.

  • GET: 정보를 조회할 때(Read)
  • POST: 새로운 정보를 추가할 때(Create)
  • PUT: 정보를 통째로 교체할 때 (Update)
  • PATCH: 정보 중 일부를 특정 방식으로 변경할 때 (Update)
    (POST, PUT, PATCH는 body에 정보를 담아 보낸다.)

REST API = 어떤 URI에 어떤 메소드를 사용할지 개발자들 사이에 널리 지켜지는 약속

웹 서비스의 동작 원리

클라이언트(브라우저) <-> 서버(Spring Boot)

  • localhost: 내 컴퓨터의 주소
  • 8080: 스프링 부트 프로젝트가가 수행되고 있는 포트 번호

MVC 웹 프레임워크

라이브러리: 개별 기능
프레임워크: 라이브러리가 모인 기본적인 틀

  • Model: 데이터
  • View: html, css 등 사용자에게 보이는 화면
  • Controller
    • Model과 View 간의 상호 동작을 제어
    • Model에 명령을 보내 데이터의 상태를 바꾸고, View에 명령을 보내 어떤 화면을 사용자에게 보여줄지 처리

사용 목적

View와 Model 사이에 Controller를 두어 View와 Model의 의존성 제거

요청부터 응답까지의 과정

  1. 브라우저가 페이지를 조회하기 위해 url을 입력하거나 링크를 클릭 (요청을 보냄)
  2. 라우터에서 url을 받아 적절한 Controller로 연결시킴
  3. Controller에서는 응답을 보내기 위한 로직 처리
  • 데이터가 필요하다면 Model에서 데이터를 조회 (쿼리를 통해 DB에서 데이터 조회)
  • 어떤 페이지를 사용자에게 보여줄지 렌더링을 해서 데이터와 함께 HTML 문서를 응답

스프링 부트에서의 MVC 패턴

  • Model: 데이터
  • View: src/main/resources/templates/
  • Controller: src/main/java/기본패키지/controller


1. 브라우저에서 Spring MVC 웹 어플리케이션에 요청을 보냄
2. Controller는 사용자의 요청을 서비스하기 위해 Model을 호출
3. Model은 데이터베이스에서 가져온 데이터를 반환
4. Controller는 Model이 반환한 결과를 View에 반영
5. 사용자는 서버에서 응답한 결과를 볼 수 있음

스프링/스프링 부트란?

https://velog.io/@smjan27/Spring-Boot-1 포스팅 참조

교재 1, 2장 진행 완료!

1장

  • 인텔리제이 설치 및 스프링 부트 프로젝트 생성
  • gradle 연동
    -> Auto Import 기능 선택하는 옵션이 뜨지 않아 Reload 버튼 클릭하였음
  • GitHub에 Commit & Push / gitignore 설정
    -> Push 시 403 에러가 발생하여 remote url을 변경 하고 로그인 방법을 '토큰'으로 변경하여 해결
    • 최근 깃허브의 로그인 정책이 토큰으로 변경되어 이클립스도 그렇도 인텔리제이도 여러 시행착오를 겪고 있는데 참고하시면 좋을 것 같습니다!

2장

  • 단위 테스트: 기능 단위의 테스트 코드 작성
  • 테스트 코드 작성
  • 롬복(lombok): 자바 개발할 때 자주 사용되는 코드(Getter, Setter, 기본 생성자, toString) 등을 어노테이션으로 자동 생성해주는 라이브러리
  • 어노테이션(Annotation)
    • 사전적 의미로는 주석
    • 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터의 정보)라고 볼 수 있다.
profile
No Stress🎈 Be Happy✨

0개의 댓글