HMAC HMAC란? 해싱 기법을 적용하여 메시지의 위변조를 방지하는 기법을 HMAC (Hash-based Message Authentication) 이라고 한다. 좀더 상세히 설명하면 Sender와 Recipient는 서로 API를 주고 받아야한다. 그럴때 이메시지가 Sender 가보낸 메시지인지 인증을 해야한다. 뿐만 아니라 이 메시지가 변조가 되었는지 확인을 해야한다. 이러한 문제점을 해결하는것이 HMAC이다. Sender는 메시지를 보내기전에 공유된 Secret키와 메시지를 기반으로 해쉬값을 만든다. 그리고 이해쉬값을 헤더값에 포함하여 전달해준다. 그리고 Recipient는 그 받은 메시지를 기반으로 또 자신이 가지고있는 공유된 Secret를 이용하여 해쉬를 만들어내고 헤더값에 넘어온 키를 대조한..
스프링 기능 추상화 예제 시작하며 이글의 내용은 토비의 스프링책의 내용으로 제가 이해한 스프링 서비스 추상화에 대한 내용을 정리한 글입니다. 물론 책에 더 상세하게 설명이 되어있지만 개인적으로 간단하게 정리하고 싶었습니다. 다른 사람에게 잘 설명을 할 수 있어야 더욱 깊게 이 내용을 이해한 것이라고 생각하기 때문입니다!! 물론 또 저만을 위한 것은 아니고 이 글을 통해 서비스 추상화에 대한 이해를 하시는데 도움이 되시는 분들이 있을 거라고 생각합니다! [참고로 책에서는 mybatis 예제였으나.. 이 글에서 Spring JPA로 구현한 예제입니다.] 추상화란 자바에는 표준 스펙, 사용 제품, 오픈소스를 통틀어서 사용방법과 형식은 다르지만 기능과 목적이 유사한 기술이 존재한다. 환경과 상황에 따라서 기술이..
Spring cache, ehcache 구현 Cache 일반적으로 애플리케이션에서 데이터베이스를 접근하게 되면 많은 시간과 비용을 소비하게 된다. 그래서 반복적으로 일어나면서 많은 양의 데이터를 가지고 와야 하는 작업은 부담이 된다. 그래서 많은 사람들은 이러한 문제를 해결하기 위해서 캐시를 사용한다. 캐시를 사용하면 데이터베이스 접근하는 횟수를 획기적으로 개선할 수 있기 때문이다. Spring Cache 그래서 Spring에서는 이러한 Cache 기능을 지원하기 위해서 Spring caching abstraction을 지원한다. Spring caching abstraction는 다른 캐시 솔루션을 Spring CacheManager를 통해서 쉽게 사용할 수 있도록 해준다. Spring CacheMana..
Spring Security OAuth2구현 OAuth란? OAuth는 Open Authorization, Open Authentication 뜻하는 것으로 자신의 애플리케이션 서버의 데이터로 다른 Third party에게 자원을 공유하거나 대신 유저 인증을 처리해줄 수 있는 오픈 표준 프로토콜이다. OAuth 실 사용 예 간단히 OAuth인증에 대해 실 사용 예를 보자면 웹, 앱들을 사용하면서 네이버 로그인, 카카오 로그인, 페이스북 로그인 등을 한 번쯤은 보았을 것이다. 이것이 바로 OAuth인 증 방식 중 하나이다. 네이버 로그인, 카카오 로그인, 페이스북 로그인 등으로 로그인을 하게 되면 그 애플리케이션들로부터 Access_token이라는 값을 받아 써드파티 애플리케이션에게 준다. Access_t..
OAuth1 란 OAuth는 Open Authorization, Open Authentication 뜻하는 것으로 애플리케이션(페이스북,구글,트위터)(Service Provider)의 유저의 비밀번호를 Third party앱에 제공 없이 인증,인가를 할 수 있는 오픈 스탠다드 프로토콜이다. OAuth 인증을 통해 애플리케이션 API를 유저대신에 접근할 수 있는 권한을 얻을 수 있다. OAuth가 사용되기 전에는 외부 사이트와 인증기반의 데이터를 연동할 때 인증방식의 표준이 없었기 때문에 기존의 기본인증인 아이디와 비밀번호를 사용하였는데, 이는 보안상 취약한 구조였다. 유저의 비밀번호가 노출될 가망성이 크기 때문이다. 그렇기 때문에 이 문제를 보안하기 위해 OAuth의 인증은 API를 제공하는 서버에서 진..
Class Diagram이란? Class Diagram은 UML의 한종류이다. UML은 프로그램 설계를 표현하기 위해 사용하는, 주로 그림으로 된 표기법을 의미한다. 객체지향 언어와 밀접한 관려이 있기에 객체지향 모델링 언어라고도한다. 소프트웨어 시스템, 업무모델링, 시스템의 산출물을 규정하고 문서화하는 언어이고 이 UML종류중 하나가 클래스 다이어그램이다. 클래스 다이어그램은 클래스들간의 관계를 보여주는 구조 다이어그램이다. 특징 클래스 다이어그램은 클래스 내부의 정적인 내용이나 클래스 사이의 관계를 표기하는 다이어그램으로 시스템의 일부 또는 전체의 구조를 나타낼수 있다. 클래스다이어그램은 클래스들의 관계를 쉽게 보고, 의존관계를 쉽게 파악하게 해준다. 클래스간의 관계 아래 그림은 클래스간의 관계를 표..
AspectJ를 사용해서 같은 클래스내에도 새로운 트랜잭션 만들기 스프링에서 트랜잭션을 처리하기 위해서는 일반적인 방법은 Proxy 클래스를 이용해 트랜잭션을 처리하는 것입니다. Spring AOP는 두 가지 Type의 Proxy를 지원하고 있습니다. 그 첫번째는 interface를 이용한 JDK Dynamic Proxy 기능을 이용하는 것이고, 두번째 방법은 CGLIB를 이용해서 서브 클래스를 생성하여 AOP를 구현하는 것입니다. 하지만 두 방법다 내부에서 @Transactional(propagation = Propagation.REQUIRES_NEW) 설정된 메소드를 호출하게 되면 그 전 트랜잭션과 동일한 트랜잭션으로 묶이게 됩니다. 먼저 아래의 소스를 보시겠습니다. @Service public cl..
Spring-AOP, Proxy 란? AOP란 ? AOP는 문제를 해결하기 위한 핵심 관심 사항과 전체에 적용되는 공통 모듈 사항을 기준으로 프로그래밍 함으로써 공통 모듈을 여러 코드에 쉽게 적용할 수 있도록 도와주는 역할을 합니다. AOP를 구현하는 다양한 방법이 존재하지만, 기본적인 개념은 아래 그림과 같이 공통 관심 사항 코드를 비즈니스 로직을 구현한 코드안에 삽입하는 것입니다. 위에 그림에서 공통기능은 직접적으로 호출되지 않습니다. 핵심로직을 구현한 코드를 컴파일하거나, 컴파일된 클래스를 로딩하거나, 또는 로딩한 클래스의 객체를 생성할 때, Proxy객체를 통해 호출할 때 AOP가 적용됩니다. AOP용어 -Joinpoint Advice를 적용 가능한 지점을 의미합니다. 메소드호출, 필드값 변경 등..
- Total
- Today
- Yesterday
- vue
- Infra
- kotlin
- Jenkins
- javascript
- OAuth
- Spring
- HMAC
- Chache
- tobi
- IntelliJ
- https
- Angular
- Github
- Collection
- network
- Quasar
- SSH
- JPA
- aws
- eslint
- Linux
- Gradle
- OS
- jenkins #mac방화벽
- java
- #linux
- batch
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |