- SW , HW , NW
- 모놀리틱(Monolithic) vs 마이크로서비스(Microservies)
------------------------ -----------------------------------
일체형 조립형
- System 가상화
- System 가상화 : Hyper-V , VM SW(Virtualbox, VM Workstation, ,,) ,
- Process 가상화 : ~~~> Docker -> Kubernetes
- Network --> : Underlay [ pNIC , pSwitch , pRouter ] , Overlay [ vNic , vSwitch, vRouter ]
- Service 가상화
- 모놀리스(Monoliths)
- 분산된 모놀리스(Distributed Monoliths)
- 모듈형 모놀리스(Modular Monoliths)
- 모듈(Module) : 서로 관련성이 높은 Class 들의 집합 --> Java 의 Package
- 모듈화(Modularization) : SW 시스템을 분해해서 하위 시스템과 컴포넌트 그룹을 묶는 액션
- 연계, 결합, 융합
- 컨텍스트 매핑(Context Mapping) : 의존성(Dependency) 주입(Injection) , AoP , JDBC, MVC , Web MVC
단일형 Spring IoC Container --> Spring/Spring Boot
- 컨테이너(Container) 에서 인지 <- 하위 시스템과 컴포넌트 연결 설정 정보
- ~~~.XML( Schema ) 구성
- @Annotation 설정
= Spring Framework
- Java 기반 Application을 구축하는 표준 Web Framework ( 의존성(Dependency) 주입(Injection) )
= Spring Boot
- Spring Framework 재구성 ( Spring Framework - Enterprise 제거 )
- REST 지향 Microservice Framework 제공
#. REST 방식으로 전환
- REST : Representational State Transfer
- URI + GET/POST/PUT/DELETE 동작 + 경량화된 Data(JSON)
- @RequestMapping
- @RestController
- 스프링프레임워크 4.x 버전 이상부터 사용가능한 어노테이션
- @Controller에 @ResponseBody가 결합된 어노테이션
- 컨트롤러 클래스에 @RestController를 붙이면,
- 컨트롤러 클래스 하위 메서드에
@ResponseBody 어노테이션을 붙이지 않아도
문자열과 JSON 등을 전송 가능
REST API란?
- REST 특징을 지키면서 API를 제공하는 것을 의미
REST 구성
- 자원(Resource) : http://velog/users라는 형태의 URI
- 행위(Method) : GET/POST/DELETE/PUT과 같은 메소드
- 표현(Message) : JSON, XML 등의 형태를 이용해 표현
<예시>
HTTP POST, http://velog/users/
{
"users": { "name": "sol" }
}
- restful API를 보낼때 URI / HTTP Method / payload를 이용
URI(명사)
해당 사이트의 특정 리소스 위치를 나타내는 "유일한" 주소
- http://www.naver.com/news => news라는 특정한 리소스의 위치를 나타내는 유일한 주소
HTTP Method( get, post, put, delete, patch )(동사)
- HTTP request가 의도하는 action을 정의한 것
- Payload
- HTTP request에서 server로 보내는 데이터
- (body에 담아보내는 데이터)
- API Gateway를 이용하면 통합적으로 엔드포인트와 REST API를 관리
- 마이크로서비스(Microservies) Architecture --> MSA
모듈(Module) --> 서비스(Service)
Data 지향적 Architecture --> Service 지향적 Architecture
= Spring Cloud == > [ Spring Boot ] + [ Docker ]
------------------------------------------------------------------------------------------------------
Web Service 구조 이해 + [ Front : HTML/CSS/JS ] + [ BackEnd : Servlet/JSP/JDBC/SQL ] + [ DB ] + [ Service/Network ]
[ 참조 URL ]