본문 바로가기

반응형

좋아하는 것_매직IT

36.Spring, MSA 에서 분산 디버깅을 할 수 있는 기법 및 기술을 알아보자.(feat. 스프링 클라우드 슬루스(Spring Cloud Sleuth)) 블로그목적 스프링관련 MSA에서 분산 디버깅할 수 있는 기법에 대해서 공부 및 정리후 공유한다. ​ 분산 디버깅 마이크로 서비스 아키텍처 복잡한 모놀리식 소프트웨어 시스템을 더 작고 다루기 쉬운 부분으로 분해하는 강력한 설계 패러다임. 즉, 독립적으로 빌드 / 배포할 수 있음. but, 유연한 만큼 복잡함이 단점이라고 말할 수 있음. 마이크로 서비스는 기본적으로 분산되어 있음. 즉, 문제가 발생하면, 모놀리식 처럼 발생한 곳에서 디버깅하려는 것은 끔찍할 수 도...(ㅡ_ㅡ;;;;) 마이크로 서비스 디버깅의 해법 여러 서비스와 물리머신, 다양한 데이터 저장소 사이에서 하나 이상의 트랜잭션을 추적하고 정확한 상황을 종합하려고 노력해야 함. 다시 말해서, 마이크로 서비스 아키텍처에서는 분산 디버깅이 필수임!!.. 더보기
35.Spring, 스프링 시큐리티관련 JWT(JSON Web Token) 에 대해서 간단한 구현을 해볼께요. 블로그목적 스프링시큐리티관련 JWT에 대해서 간단한 구현을 통해 정리및 공유한다. ​ 스프링 시큐리티관련 JWT 실습 지난번 블로깅을 통해서 JWT 를 알아보았는데요. 직접 구현을 해보겠습니다. ​ 아래는 상세 내용입니다. 하나, pom.xml(의존성관리)에 JWT OAuth2 라이브러리를 포함시킨다 둘, 인증서비스가 JWT 토큰을 생성하고 해석하는 방법을 지정해야 함. 인증서비스에서 아래 구성 클래스를 추가함. JWTTokenStoreConfig.java 설명 public JwtAccessTokenConverter jwtAccessTokenConverter() JWT 와 OAuth2 서버 사이의 변환기로 동작함. 함수호출 converter.setSigningKey(serviceConfig.getJwtS.. 더보기
34.Spring, 스프링 시큐리티관련 JWT(JSON Web Token) 에 대해서 알아보자. 블로그목적 스프링시큐리티 관련 JWT(JSON Web Token)에 대해서 공부및 정리후 공유한다. ​ JWT(JSON Web Token) 이란? IETF(Internet Engineering Task Force) 에서 제안한 공개 표준(RFC-7519) RFC-7519 https://tools.ietf.org/html/rfc7519 JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties. The claims in a JWT are encoded as a JSON object that is used as the payload of a JSON Web Signatu.. 더보기
33.Spring, 스프링 시큐리티(OAuth2 인증 사용)에 대한 간단한 구현을 직접 해보자. 블로그목적 스프링시큐리티의 OAuth2 인증을 공부하고 정리 및 간단한 구현을 통해서 공유한다. OAuth2 프로토콜에 대해서 알아보자. 다양한 웹 지원 어플리케이션과 서비스 간에 권한 부여 및 인증정보를 교환하기 위해 사용하는 프로토콜 타사의 어플리케이션에서 구글, 페이스북, 깃허브 등등 서비스의 사용자 정보에 대한 액세스를 제한할 수 있음. ​ OAuth2 인증 관련 용어를 알아보자. 환경 신규 hellothub api 서비스를 타사 어플리케이션에 공개한다고 가정 자원 소유자 hellothub api 를 사용하려는 서드파티 어플리케이션 사용자를 말함. 자원 서버 보안 유지가 반드시 필요한 리소스인 hellothub api 서버를 말함. 클라이언트 api 를 사용하려면 타사 어플리케이션을 말함. 권한 .. 더보기
32.Spring, 스프링 시큐리티(OAuth2 인증[2/2])에 대한 개념에 대해서 간단히 알아보자. 블로그목적 스프링시큐리티 관련 OAuth2에 대해서 공부및 정리후 공유한다. ​ OAuth2 란? 토큰 기반의 보안 인증과 인가 프레임워크 자격 증명을 공유하지 않고 애플리케이션이 사용자를 인증하고 인가할 수 있으며 다양한 매커니즘을 제공하는 유연한 인가 프레임워크 해당 인증 매커니즘을 인증 그랜트(authentication grant) 라고 함. 즉, OAuth2 는 토큰 기반의 보안 프레임워크이기 때문에 사용자는 자원에 접근하려는 어플리케이션을 통해 자제 증명을 제시하고 OAuth2 서버에서 인증함. 만약, 사용자의 자격증명이 유효할 경우, OAuth2 서버는... 사용자 어플리케이션이 이용하는 서비스가 보호자원에 접근하려고 시도할 때마다 제시할 토큰을 제공함. 그리고, OAuth2 를 사용하면, 그.. 더보기
31.Spring, 스프링 시큐리티(기본인증)에 대해서 알아보자. (1/2) 블로그목적 스프링 시큐리티에 대해서 공부및 정리 후 공유한다. ​ 스프링 시큐리티(Spring Security) 란? 스프링 기반의 애플리케이션의 보안(인증과 권한,인가 등)을 담당하는 스프링 하위 프레임워크. 참고페이지 https://spring.io/projects/spring-security 그럼, 스프링 시큐리티에 대해서 알아보기전에 용어 정리를 먼저 해보자. 접근 주체(Principal) 보호된 리소스에 접근하는 대상 인증(Authentication) 보호된 리소스에 접근한 대상에 대해 이 유저가 누구인지, 애플리케이션의 작업을 수행해도 되는 주체인지 확인하는 과정 인가(Authorize) 해당 리소스에 대해 접근 가능한 권한을 가지고 있는지 확인하는 과정 After Authentication,.. 더보기
30.Spring, 서비스의 문서화에 대한 필요성을 알아보고 간단한 샘플프로그램을 만들어 보자. 서비스에 대한 문서화의 필요성? 서비스 공급자는 서비스의 소비자에게 서비스를 제공할 때, 세부 사항을 정의 해주면 좋음. 주요 세부 내용은 아래와 같음. 하나, 서비스를 호출하는 방법 및 서비스 요청을 위한 URI는 무엇인가? 둘, 서비스요청을 위한 형식은 어떻게 되어야 하는가? 셋, 서비스를 요청 했을 때, 어떤 응답 메시지가 발생하는가 ? 기타 등등. 그럼, 서비스에 대한 문서화는 어떻게 하면 좋을까? 가장 인기 있는 옵션은 바로, 스웨거(swagger) 를 사용하는 것. 그럼, 스웨거에 대해서 알아보자. 스웨거(swagger) 란? Simplify API development for users, teams, and enterprises with the Swagger open source and pr.. 더보기
29.Spring, 데이터 유효성체크에 대해서 알아보고 간단한 샘플프로그램을 만들어 보자. 데이터 유효성체크에 대해서 알아보자. 데이터를 실제로 처리하기전에 해당 데이터가 처리할 수 있는 정상적인 데이터인지 대해서 우선 체크하는 것. 그리고 보통 좋은 서비스를 개발하는 개발자는 항상 데이터를 처리하는 서비스 로직을 작성하기전에 처리해야할 데이터의 유효성을 어떻게 체크하고 예외처리 할 것 인지에 대한 고민을 한다. 만약 유효성체크에 대한 고민이 없이 프로그램을 작성하다보면, 비정상적인 데이터를 처리하다가 프로세스가 다운되는 개발자로서 가슴아픈(?) 상황을 맞이하기도 한다. -_-; 그리고 디버거를 통해서 왜 프로세스가 다운되었는지 파악을 해야하고, 파악 되면, 소스코드를 그제서야 보완하게된다. 제가 말씀드리고 싶은 결론은 항상 개발을 할 때, 처리해야할 데이터에 대한 유효성에 대해서 고민하는 습.. 더보기

반응형