분류 전체보기

· MSA
Twelve-Factors 란? Heroku 클라우드 플랫폼 창시자들이 정립한 애플리케이션 개발 원칙 중 유익한 것을 모아서 정리한 것 탄력적(elastic)이고 이식성 있는(portability) 배포를 위한 Best Practices 핵심 사상 선언적(목표명시) 형식으로 설정을 자동화해서 프로젝트에 새로 참여하는 동료가 적응하는 데 필요한 시간과 비용을 최소화한다. 운영체제에 구애받지 않는 투명한 계약을 통해 다양한 실행 환경에서 작동할 수 있도록 이식성을 극대화 한다. 현대적인 클라우드 플랫폼 기반 개발을 통해 서버와 시스템 관리에 대해 부담을 줄인다. 개발과 운영의 간극을 최소화해서 지속적 배포(continuous deployment)를 가능하게 하고 애자일성을 최대화 한다. 도구, 아키텍처, 개..
· MSA
Cloud Native란? 클라우드 네이티브는 클라우드의 규모와 크기 조정 및 성능에 최적화되어 있는 애플리케이션을 개발하기 위한 접근 방식과 기술 애플리케이션을 신속하게 구축하고 업데이트하면서 품질을 개선하고 위험을 낮추는 접근 방식 핵심은 애플리케이션을 어떻게 만들고 배포하는지에 있으며 기업 내 데이터센터와 달리 애플리케이션을 퍼블릭 클라우드에 배포하는 것 Cloud Native 애플리케이션 구축 일반적으로 데브옵스(DevOps) 에자일 방법론 마이크로서비스 아키텍처(Microservice Architecture) 클라우드 플렛폼 쿠버네티스(Kubernetes) 도커(Docker) 와 같은 컨테이너 그리고 지속적 제공(Continuous Delivery)을 포함 참고 사이트 Cloud Native C..
· MSA
MSA란? Microservice Architecture의 약자로 "하나의 큰 어플리케이션을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하게 만든 아키텍쳐"라고 할 수 있다. 서비스간 느슨한 결합(Loose Coupling)과 높은 응집성(High Cohesion)을 지향 애플리케이션 기능을 분해하고 분리해서 완전히 상호 독립적이여야 한다. MSA를 왜 사용하는가? 기존에 많은 애플리케이션들은 Monolithic Architecture로 구현되어 있는데, 프로젝트 규모가 커지고 복잡도가 늘어날 수록 관리와 서비스 파악이 어렵고 단일 코드로 구축하기 때문에 배포도 모든 팀이 같이 해야한다. 이러한 단점을 개선하기 위해 Microservice Architecture를 사용한다. Microserv..
· ETC
SSO(Single Sign-On)란? 한 번의(Single) 로그인 인증(Sign-On)으로 여러 개의 서비스를 추가적인 인증 없이 사용할 수 있는 기술 인증은 하나의 인증서버에서 수행하고, 그 인증 서버가 서비스를 각각 담당하는 서버에 인증 정보를 알려주는 방식 주로 다양한 서비스를 유사한 도메인 혹은 동일한 탑 레벨 도메인(TLD:Top Level Domain)을 서비스하는 엔터프라이즈 서비스 제공자들이 사용자에게 간편한 로그인을 제공하기 위해 사용한다. SSO를 구현하기 위한 기술 요소는? 인증 서버를 구축하고, 이를 다양한 서비스들과 어떻게 인증 관련으로 연계할지 설계해야 한다. 인증을 성공적으로 마쳤다는 "증거"를 다른 서비스들이 어떻게 믿게 만들 것 인지에 대한 기술적 고민도 필요하다. SS..
· ETC
OAuth2란? 다양한 플랫폼 환경에서 인증 및 권한 부여를 위한 표준 프로토콜 OAuth 방식이 등장하기 전에는 다른 서비스의 리소스를 가져오기 위해서는 다른 사이트의 ID와 PW를 직접 입력받아 저장하여 필요할 때마다 불러와서 사용했다. 하지만 ID와 PW를 공개하는것과 보안등의 문제가 생기므로 이를 해결하기 위해 탄생한 표준 프로토콜이다. ex) 구글로 로그인, 페이스북으로 로그인, 카카오로 로그인 OAuth2 용어 인가 승인 유형(Authorization Grant Types) 인가 코드 승인(Authorization Code) 리스소 접근을 위한 사용자 명과 비밀번호, 권한 서버에 요청해서 받은 권한 코드를 함께 활용하여 리소스에 대한 엑세스 토큰을 받는 방식입니다. 클라이언트가 파리미터러 클라..
· Spring
개발 환경 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.3) jvm.convert(3.3.2) spring-restdocs-asciidoctor spring-restdocs-mockmvc Config 1. Dependency 추가 및 설정 의존성 주입해줄 라이브러리와 플러그인을 추가하고 문서를 생성할 폴더 구조를 설정 plugins { ... // asciidoc파일을 변환해주고, Build폴더에 복사해주는 플러그인 id "org.asciidoctor.jvm.convert" version "3.3.2" ... } ... // ============== BEGIN Spring REST Docs ============== ext { snippetsDir = file..
· Spring
Spring REST Docs란? 테스트 코드를 기반으로 자동으로 API문서를 자동으로 작성해주는 프레임워크 반드시 Test가 통과되어야 문서가 자동으로 작성되기 때문에 API Spec이 변경되거나 추가/삭제 되는 부분에 대해 항상 테스트 코드를 수정하여야 하며, API 문서가 최신화 될 수 있도록 해준다. 기본적으로 asciidoc을 사용하여 문서를 작성한다. Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test. docs.spring.io Spring REST Docs Architecture Test C..
· Spring
개발 스펙 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.3) Spring Security(boot-starer) JWT(0.9.1) Config 1. Dependency 추가 Spring Security와 JWT의 Dependency 추가 dependencies { ... // Spring Security implementation "org.springframework.boot:spring-boot-starter-security" // Spring Security Test testImplementation 'org.springframework.security:spring-security-test' // JWT implementation 'io.jsonwebtok..
· ETC
JWT(Json Web Token)란? Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문이다. 클라이언트에서 JWT를 포함해 요청을 보내면 서버는 허가된 JWT인지를 검사한다. 또한 로그아웃을 할 경우 로컬 스토리지에 저장된 JWT 데이터를 제거한다. 실제 서비스의 경우에는 로그아웃 시, 사용했던 토큰을..
· Spring
Spring Security란? Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 인증(Authorizatoin)과 인가(Authentication) Spring ..
beekei
'분류 전체보기' 카테고리의 글 목록 (34 Page)