1. Library 와 Framework의 차이점

Library

라이브러리는 함수들의 집합이다. 프로그램을 만들 때 기존에 만들어진 함수들을 다시 재활용함으로 프로그램의 제작 기간과 프로그래머의 노력을 줄일 수 있다. Framework와 비교했을 때 각각의 함수들은 독립적으로 작동하기 때문에 필요한 함수만 호출하여 쓸 수 있다.

Framework

프레임워크 역시 함수들의 집합이지만 단순히 함수들을 모아 놓는 것이 아니라 특정한 프로그램 제작에 필요할 함수들을 모두 포함하고 있으며 프레임워크를 사용한다는 것은 프레임워크가 제시하는 방식으로 개발한다는 뜻을 의미한다. 결론적으로는 해당 틀(Frame)안에서 내 프로그램을 만드는 것이다.

프레임워크의 장점으로는 개발시간을 줄일 수 있고 또한 오류로부터 자유로울 수 있다.

 

2. 스프링 프레임워크 이해하기

웹 애플리케이션 개발을 위해 다양한 프레임워크가 존재하는데 이중에서 가장 많이 사용되고 있는 프레임워크중 하나는 스프링 MVC 프레임워크이다. 스프링 프레임 워크는 일반적인 사용자를 위한 웹 애플리케이션부터 기업 환경의 애플리케이션까지 다양한 범위에서 사용되는 프레임워크이다.

M(Model)V(View)C(Controller) 패턴

Model: 애플리케이션의 정보, 즉 데이터를 의미한다.

View: 사용자 인터페이스, 즉 사용자가 보고 사용하는 화면등을 의미

Controller: Model과 View의 중계 역활을 한다. 사용자의 요청을 파악하고 그에 맞는 결과를 사용자에게 돌려준다.

 

일반적으로 사용하는 스프링 MVC 구조

View: 사용자가 보는 화면 또는 결과를 의미한다.

Controller: 사용자가 웹브라우저를 통해서 어떠한 요청을 하면 그 요청을 처리할 컨트롤러를 호출하게 된다. 컨트롤러는 사용자의 요청을 처리하기 위한 비즈니스 로직을 호출하고 그 결과값을 사용자에게 전달해 주는 역할을 한다.

Service: 사용자의 요청을 처리하기 위한 비즈니스 로직이 수행된다. 일반적으로 서비스영역은 서비스 인터페이스와 인터페이스의 구현체로 나뉜다.

DAO: Data Access Object의 약자로 데이터베이스에 접속해서 비즈니스 로직 실행에 필요한 Query를 호출한다.

DB: DataBase

 

SpringBoot 시작하기 中 출판사: 인사이트

 

3.  REST API란?

Rest란 Representational State Transfer의 약자로 잘 표현된 HTTP URI로 리소스를 정의하고 HTTP 메서드로 리소스에 대한 행위를 정의한다. 리소스는 JSON, XML과 같은 여러 가지 언어로 표현될 수 있다.

 

REST API의 URI를 설계할 때 지켜야하는 일반적인 규칙

1. URI는 명사를 사용한다.

2. 슬래시(/)로 계층관계를 나타낸다.

3. URI의 마지막에는 슬래시를 사용하지 않는다.

4. URI는 소문자로만 작성가능하다.

5. 가독성을 높이기 위해 하이픈(-)은 사용할 수 있지만 밑줄(_)은 사용하지 않는다.

HTTP Method

HTTP Method Meaning Role
POST Create 리소스를 생성한다.
GET Read 해당 URI 리소스를 조회한다.
PUT Update 해당 URI의 리소스를 수정한다.
Delete Delete 해당 URI의 리소스를 삭제한다.

 

이번주에 다룬 Annotation

@Component

@Controller,@Service,@Repository는  @Component를 위의 3가지로 구체화 한 것이다.

@AutoWired

org.springframework.beans.factory.annotation.Autowired

Type에 따라 알아서 Bean을 주입한다.

필드, 생성자, 입력 파라미터가 여러 개인 메서드에 적용가능 

@Entity

실제 DB의 테이블과 매칭될 클래스임을 명시한다.

즉, 테이블과 링크될 클래스임을 나타냅니다.

@Id

해당 테이블의 PK 필드를 나타낸다.

@GeneratedValue

PK의 생성 규칙을 나타낸다.

@GenerateValue(strategy=GenerationType.AUTO);

@RestController

@Controller +@ResponseBody

@Controller와 @ResponseBody의 차이점

@Controller

API view 동시에 사용하는 경우에 사용

대신 API 서비스로 사용하는 경우는 @ResponseBody 사용하여 객체를 반환한다.

view(화면) return 주목적 

@RestController

view 필요없는 API 지원하는 서비스에서 사용 (Spring 4.0.1부터 제공)

@RequestMapping 메서드가 기본적으로 @ResponseBody 의미를 가정한다.

 data(json, xml 등) return이 주목적

 

 

**Annotation 부분 출처

https://gmlwjd9405.github.io/2018/12/02/spring-annotation-types.html

 

[Spring] Spring Annotation의 종류와 그 역할 - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

 

'SpringBoot' 카테고리의 다른 글

Spring으로 만드는 간단한 게시판(1)  (0) 2019.07.22
Get & Post  (0) 2019.07.08
해시(Hash) 와 암호화(Encryption)  (0) 2019.07.08
쿠키(Cookie)와 세션(Session)  (0) 2019.07.08
Docker  (0) 2019.06.27

+ Recent posts