전체 글
-
Spring CloudBackEnd/Spring Cloud 2022. 6. 9. 06:53
Spring Cloud Spring Cloud는 분산 시스템에서 일부 공통 패턴을 빠르게 구축할 수 있도록 개발자를 위한 도구를 제공합니다(e.g. configuration management, service discovery, circuit breakers, intelligent routing, micro-proxy, control bus, one-time tokens, global locks, leadership election, distributed sessions, cluster state). 분산 시스템의 조정은 보일러 플레이트 패턴(Boilerplate code: 최소한의 변경으로 여러곳에서 재사용되며, 반복적으로 비슷한 형태를 띄는 코드)으로 이어지고, Spring Cloud 개발자는 이러한..
-
MSA(Microservice Architecture)BackEnd/Spring Cloud 2022. 6. 8. 20:06
Monolith Architecture All services combined into one build, written in the same language and application framework. 모든 업무 로직이 하나의 애플리케이션 형태로 패키지 되어 서비스되는 아키텍처입니다. 애플리케이션에서 사용하는 데이터가 한 곳에 모여 참조되어 서비스되는 형태로 일부 기능만 수정이 되어도 전체 애플리케이션을 빌드하고 배포해야 합니다. MSA(Microservice Architecture) 정의 MSA는 "함께 작동하는 작은 규모의 서비스들(Small autonomous services that work together.)" 입니다. 마이크로서비스 아키텍처 스타일은 소규모 서비스 모음을 단일 애플리케이션..
-
Cloud Native ApplicationBackEnd/Spring Cloud 2022. 5. 28. 13:22
Overview Cloud Native Application의 특징에 대해 알아보겠습니다. Cloud Native Application은 아래 그림과 같이 Microservices, DevOps, CI/CD 및 Containers 가상화의 특징을 가지고 있습니다. DevOps DevOps란, Development와 Operations의 통합으로 고객의 요구사항을 빠르게 반영하고 만족도 높은 서비스를 제공하는데 목적이 있습니다. 초기 소프트웨어 계획부터 코딩, 구축, 테스트 및 릴리즈 단계와 구축, 운영 및 지속적인 모니터링에 이르는 라이프사이클이 모든 단계에 걸쳐 지속됩니다. CI/CD 지속적인 통합, CI(Continuous Integration): 통합 서버, 소스 관리(SCM), 빌드 도구, 테스트..
-
Cloud Native ArchitectureBackEnd/Spring Cloud 2022. 5. 28. 12:04
확장 가능한 아키텍처 시스템의 수평적 확장에 유연 확장된 서버로 시스템의 부하 분산, 가용성 보장 시스템 또는 서비스 애플리케이션 단위의 패키지(컨테이너 기반 패키지) 모니터링 탄력적 아키텍처 서비스 생성 - 통합 - 배포, 비즈니스 환경 변화에 대응 시간 단축 분활된 서비스 구조 무상태 통신 프로토콜 서비스의 추가와 삭제 자동으로 감지 변경된 서비스 요청에 따라 사용자 요청 처리(동적 처리) 장애 격리(Fault isolation) 특정 서비스에 오류가 발생해도 다른 서비스에 영향 주지 않음 [참고 정보] 인프런 - Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
-
REST APIBackEnd/Spring Boot 2022. 5. 25. 21:30
REST API REST를 기반으로 만들어진 API REST Representational State Transfer의 약자 2000년도 로이 필딩(Roy Fielding)의 박사학위 논문에서 최초로 소개된 개념 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식 웹에 존재하는 모든 자원(이미지, 동영상, 텍스트 등)에 고유한 URI를 부여해 활용하는 개념 REST 구성요소 자원(Resource): HTTP URI 행위(Verb): HTTP Method(GET, POST, PUT, DELETE 등) 표현(Representation): 서버가 응답으로 보내주는 자원의 상태(JSON, XML, TEXT 등) REST 특징 Uniform(유니폼 인터페이스): URI로 지정한 자원에 대한 조작을 통일..
-
HAL BrowserBackEnd/Spring Boot 2022. 5. 25. 19:24
Overview 해당 글에서는 API 응답에 부가적인 정보를 제공할 수 있는 HAL Browser 기능에 대해 알아보겠습니다. HAL Browser는 Hypertext Application Language의 약자로 API 리소스 간 일관되고 쉬운 하이퍼링크 방법을 제공하는 간단한 형식입니다. HAL Model Resources 관련 URI에 대한 링크 내장된 리소스 상태 Links 대상 URI 링크에 대한 관계 또는 참조 감가상각, 콘텐츠 협상 등에 도움이 되는 몇 가지 기타 선택적 속성 Dependency org.springframework.data spring-data-rest-hal-explorer 의존성을 추가하고 서버를 기동한 후 http://localhost:8088/ 접속하면 아래와 같은 ..
-
ActuatorBackEnd/Spring Boot 2022. 5. 20. 12:20
Overview 해당 글에서는 Spring Boot에서 자체적으로 제공해주는 Actuator 기능에 대해 알아보겠습니다. Actuator 기능을 통해 애플리케이션을 모니터링하고 관리할 수 있습니다. Dependency org.springframework.boot spring-boot-starter-actuator Actuator 의존성을 추가하고 서버를 기동한 후 http://localhost:8088/actuator 접속하면 HATEOAS가 적용된 아래와 같은 결과를 확인할 수 있습니다. http://localhost:8088/actuator/health를 통해 health check가 가능합니다. 보다 많은 정보를 확인하기 위해 application.yml 파일을 수정합니다. # port 변경 ser..
-
HATEOASBackEnd/Spring Boot 2022. 5. 20. 09:10
Overview 해당 글에서는 Level 3 REST API 구현을 위한 HATEOAS(Hypermedia As the Engine Of Application State) 기능에 대해 살펴보겠습니다. HATEOAS란 REST API를 사용하는 클라이언트가 서버와 동적인 상호작용이 가능하도록 하는 것을 의미합니다. 즉, 현재 리소스와 연관된 자원 상태 정보를 제공하는 것을 의미합니다. 예를 들어, 계좌 조회 시 아래와 같이 예치금, 출금, 이체 또는 요청 닫기 등의 후속 링크를 포함하여 응답합니다. HTTP/1.1 200 OK { "account": { "account_number": 12345, "balance": { "currency": "usd", "value": 100.00 }, "links": {..