본문 바로가기

분류 전체보기

(177)
RESTful Web Service 성숙도 모델 3가지 Level 0 단계 - url만 맵핑한 단계 Level 1 단계 - 적절한 패턴이 있는 단계 Level 2 단계 - Level 1 + HTTP Methods Level 3 단계 - Level 2 + HATEOAS - 상태 정보를 같이 넘겨주는 단계 고려해야 할 사항 - 개발자가 아닌 소비자 먼저 - Request methods 연동 - Response Status 상태 코드 - No secure info in URI - 동사가 아닌 명사형으로 적는 것이 좋다. - 복수형을 쓰고 다음 경로에 정수나 항목 이름 등을 적어주자.
SOA(Service-Oriented-Architecture)와 MSA(Micro Service Architecture) 서비스의 공유 지향점 - SOA: 재사용을 통한 비용절감 - MSA: 서비스 간의 결합도를 낮추어 변화에 능동적으로 대응 기술 방식 -SOA: 공통의 서비스를 ESB에 모아 사업 측면에서 공통 서비스 형식으로 서비스 제공 *ESB: Enterprise Service Bus로 SOA 환경에서 서비스 간 통신을 위한 중개 역할을 수행하는 소프트웨어 컴포넌트.서비스 요청 및 응답의 라우팅, 변환, 보안, 인증, 메시지 큐잉 등의 기능을 제 -MSA: 각 독립된 서비스가 노출된 REST API 활용
Microservice 개요 예시로 아마존닷컴과 넷플리스가 있음. 위의 그림은 마이크로서비스의 호출 작용 그림이다. Microservice의 특징 1) Challenges -> 기존 방식에서 많은 변화가 필요하다. 2) Small Well Chosen Deployable Units -> 독립적으로 배포 가능한 소규모 서비스들로 구성되어야 한다. 3) Bounded Context -> 서비스들의 경계가 구분되어야 한다. 4) RESTful -> 서로 REST api 로 통신하는 것을 권장한다. 5) Configuration Management -> 환경 설정을 외부에 있는 시스템으로 관리하겠다. 6) Cloud Enabled -> Cloud Native 기술을 최대한 활용할 것임. 클라우드 상태에서 운영할 것임. 7) Dynam..
Monolithic vs MSA 1. Monolithic Architecture - 하나의 커다란 건축물과 같다. - 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스 - 애플리케이션에서 사용하는 데이터가 한곳에 모여 참조되어 서비스되는 형태 2. MSA - 각각의 컨테이너를 쌓은 것과 같은 느낌이다. - 마이크로 서비스는 다양한 서비스의 경계를 분리해서 REST API 등으로 서로의 데이터를 제공하게 됨. 3. Front & Back - 대표적으로 모바일 앱에서 많이 볼 수 있는 구조 - 프론트와 백을 분리해서 개발하는 방법으로 Monolith와 MSA의 중간 구조
Cloud Native Architecture 확장 가능한 아키텍처 - 시스템의 수평적 확장에 유연 - 확장된 서버로 시스템의 부하 분산과 가용성을 보장한다. - 시스템 또는, 서비스 애플리케이션 단위의 패키지 (컨테이너 기반 패키지) - 모니터링 탄력적 아키텍처 - 서비스 생성 -> 통합 -> 배포, 비즈니스 환경 변화에 대응 시간 단축 - 분할된 서비스 구조 - 무상태 통신 프로토콜 - 서비스의 추가와 삭제 자동으로 감지 - 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리) 장애 격리 - 특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음 Cloud Native Application CI/CD - 지속적인 통합, CI(Continuous Integration) - 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트 도구 - ex..
섹션 4. Spring Boot API 사용 보호되어 있는 글입니다.
섹션 3. RESTful Service 기능 확장 * 인프런의 Spring Boot를 이용한 RESTful Web Services 개발 강의를 듣고 정리한 내용입니다. 섹션 3에서 다루는 것 Validation Internationalization XML format으로 반환하기 Filtering Version 관리 유효성 체크를 위한 Validation API 사용 사용자 입력값의 유효성을 체크하려면 어떤 코드를 추가해야 하는지 배울 수 있다. User.java 파일 변경 내용 package com.example.demo.user; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor public class User { p..
섹션 2. User Service API 구현 * 인프런의 Spring Boot를 이용한 RESTful Web Services 개발 강의를 듣고 정리한 내용입니다. User 도메인 클래스 생성 User.java 파일 package com.example.demo.user; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor public class User { private Integer id; private String name; private Date joinDate; } 이 파일은 엔티티 느낌이다. UserDaoService.java package com.example.demo.user; import java.util..