본문 바로가기
  • RATEL.SHO
[Spring]

스프링 Restful API 서비스 구축 [KITRI 교육 Day1]

by ratelsho 2023. 6. 12.

* 교  육  명 : 스프링 Restful API 서비스 구축 

교육 일시 2023 6월 12일(월) ~ 14일(수) 9:30 ~ 17:20

교육 내용

시간


일자
1교시 2교시 3교시 중식 4교시 5교시 6교시 7교시 1
시간
누적
시간
09:30

10:20
10:30

11:20
11:30

12:20
12:20

13:20
13:30

14:20
14:30

15:20
15:30

16:20
16:30

17:20
1일차 <<내외부 연계모듈 구현하기>>
- Java SDK설치 Spring Framework
  개발환경 구축 및 조건 설정 등
- Sectful Web Service 소개
- REST 서비스의 이해
- 스프링 프레임웍과 REST
- - Apache Maven으로 Restful Web
Service 세팅
- Hello Endpoint
- Spring MVC 로 첫번째 Endpoint 작성
- REST  MVC 패턴
- 서비스 수행
7 7
2일차 - Data-Transfer-Object 패턴
- JSON 포맷 다루기
- HTTP 메소드와 CRUD 매핑
- Restful API 테스팅
- - API 응답 포맷
- CRUD 작업과 HTTP 메소드
- CRUD 오퍼레이션 실습
7 14
3일차 - 퍼포먼스 : HTTP 컴프레션과 캐싱
- Security 다루기
- 인증과 권한
- OAuth 인증
- - 예외처리
- Spring HATEOAS
- Rest Client
7 21

Day 1

레지스토리에 등록하고 찾는, 요청할 때의 프록시, 직렬화 <-> 역직렬화를 잘 알아야 분산환경에서 소프트웨어를 잘 만들 수 있다.

 

EJB는 사용하기 어렵기 때문에 외면받음  == IT에서 사용하는데 어렵다면 기술이 외면받음

EJB(특정 기술을 상속받아야 쓸 수 있음) 기술 ->스프링 프레임워크로 대체

// EJB가 무겁기 때문에 가볍게 쓸 수 있는 SPRING FRAMEWORK로 대체

// 자바가 발전한 이유는 JSR 표준이 나오면 빠르게 받아들임 

 

구조적 -> 정보공학 -> 객체지향 -> CBD(기능 중심) -> SoA(서비스 중심) -> MSA 

// SoA -> MSA로 가려면 Antifragile이 필요하다.

 

XML 기반 -> REST 형태로 변화

//HTTP 스펙을 봤더니 GET, POST, DELETE, PUT 다양한 메소드가 있어서 해당되는 XML기반의 표준들이 

REST기반으로 바뀌기 시작함, 이런 메소드의 특징과 URL을 붙여서 해당되는 데이터를 구분하고 KEY, VALUE로

표현하는 JSON 형태가 쓰기 용이함. 그리고 대부분의 언어는 키값 벨류값의 데이터 형태를 지원하기 때문에

연계에도 큰 장점

 


JSP는 HTML태그에 JSTL등 여러가지를 사용해서 서버사이드 렌더링 -> 텍스트 형태로 전달해서 사용

// JSP는 없어졌다고 보면 됌

 

지금은 프론트단에서 클라이언트에게 응답해 클라이언트 사이드에서 HTML, JSM CSS 등을 렌더링

프론트는 주로 VUE, REACT

 

node.js가 나오면서 V8엔진이 제공되고 서버를 간단하게 구성, nmp 여러개의 라이브러리들을 크로스 브라우징이 가능하게하고 더 객체지향적으로 변화

 

 

- 레이어 패턴에 장점은 바로 하부단에만 영향을 미치고 다른 단에는 영향을 미치지 않음

- 인터페이스 표준을 만드는 것이 중요, 표준이 없다면 Presentation Layer <-> Service Layer에 서로 영향을 주지 않게 

  (객체지향의 ReUse 의존도를 낮추고 자기 역활만 잘할 수 있도록 응집도를 높게 )

- 레이어 패턴에선는 각 레이어에서 구현이 바뀌더라도 사용법은 바뀌지 않는 것이 가장 중요 -> 인터페이스 표준이 중요

 

- JPA를 사용하면 자동으로 쿼리를 만들어줌 

- Controller는 PoJo클래스

- LAYER 패턴과 MVC Pattern은 개발에 있어 공통적이기 때문에 알아둬야한다.

IoC  - DL 

        - DI : 생성자, set Property, method       생성자를 선호함 

AOP - 메인으로 해야하는 비즈니스를 가지고 있는 서비스라고 했을 때 서비스별로 공통으로 들어가는 concern이 있을 수            있는데 같이 들어가야하는 공통적인 보안이나 logging이나 트랜잭션이나 Cross Concern을 따로 만들어놓고 포인트            컷으로 정규표현식으로 작성하면 해당 시점(조인포인트)에 적용가능

        - 메소드에만 5가지로 AOP를 적용가능

 

code -> Spring Container

config  - 선언식 - XML, YAML(YML), PROPERTIES

            - ANNOTATION 

code <- Spring Container

API 활용

 

 

 

자원 - URI

행위 - METHOD ( GET/POST/PUT/DELETE...)

표현 - DATA // XML, CSU, JSON...  

 

- REST Service는 요청된 데이터만 클라이언트 사이드에서 렌더링되어 보여준다

 

 

 

-서비스별로 분리를 시킴

SpringFramework와 Spring Boot 차이

싱크 언싱크, REST가 기본인가?, 

- 초보자가 만들더라도 쉽게 만들 수 있도록 하기 위해서 -> Spring Boot


실습

    

1. 시스템 변수에 JAVA_HOME 추가

2. 환경변수 -> path -> 디렉토리 설정

 

==  CMD 창에서 

 


- 요즘은 인증과 관련된 부분은 url을 오스(auth)로 많이 사용함 

 

'[Spring]' 카테고리의 다른 글

스프링 Restful API 서비스 구축 (총 정리)  (0) 2023.06.14
스프링 Restful API 서비스 구축 [KITRI 교육 Day2]  (0) 2023.06.13
Spring [day 2]  (1) 2023.05.28
Spring [day 1]  (0) 2023.05.27
Secure Coding [0]  (0) 2023.05.09