본문 바로가기
반응형

IT공부15

OAuth2 와 OIDC OAuth2란?OAuth2는 리소스 소유자가 제3자 애플리케이션에게 자신을 대신하여 리소스에 접근할 수 있는 권한을 부여하는 프로토콜. 이는 주로 권한 부여에 중점을 두고 있으며, 인증(Authentication)보다는 권한 부여(Authorization)에 더 관련이 깊다.주요 구성 요소:리소스 소유자(Resource Owner): 리소스에 접근할 수 있는 사용자.클라이언트(Client): 리소스 소유자를 대신하여 리소스에 접근하려는 애플리케이션.권한 부여 서버(Authorization Server): 권한 부여 요청을 처리하고, 액세스 토큰을 발급하는 서버.리소스 서버(Resource Server): 보호된 리소스를 호스팅하는 서버.OIDC란?OIDC(OpenID Connect)는 OAuth2를 기반.. 2024. 8. 6.
Singletone pattern Singleton pattern 이란 Singleton pattern(싱글턴 패턴)이란 애플리케이션에서 인스턴스를 하나만 만들어 사용하기 위한 패턴이다. 커넥션 풀, 스레드 풀 등의 경우, 인스턴스를 여러 개 만들게 되면 자원을 낭비하게 되거나 버그를 발생시킬 수 있으므로 오직 하나만 생성하고 그 인스턴스를 사용하도록 하는 것이 이 패턴의 목적이다. public class Singleton { public static final Singleton INSTANCE = new Singleton(); private Singleton() { } ... } // 혹은 ... public class Singleton { private static final Singleton INSTANCE = new Singlet.. 2022. 6. 26.
DAO vs. Repository 영속성(Persistence) 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터의 특성을 말한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 때문에 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구하게 저장하여 영속성 부여한다. Persistence Layer 프로그램의 아키텍처에서, 데이터에 영속성을 부여해주는 계층을 말한다. JDBC를 이용하여 직접 구현할 수 있지만 Persistence framework를 이용한 개발이 많이 이루어진다. 계층 프레젠테이션 계층 (Presentation layer) - UI 계층 (UI layer) 이라고도 한다. 애플리케이션 계층 (Application la.. 2022. 5. 29.
Optimistic Locking vs. Pessimistic Locking Lock 데이터베이스에 접근해서 데이터를 수정할 때 동시에 수정이 일어나 충돌이 일어날 수 있습니다. 이러한 상황을 제어하기 위해서 트랜잭션의 격리 수준과 비즈니스 로직에 맞추어 Lock(잠금)이 필요합니다. Optimistic Lock 특징 낙관적인 : 기본적으로 데이터 갱신시 충돌이 발생하지 않을 것이라고 낙관적으로 보는 락 비선점적인: 데이터 갱신시 충돌이 발생하지 않을 것이라고 예상하기 때문에, 우선적으로 락을 걸지 않는다. 설명 DB가 제공하는 락 기능을 사용하지 않고, Application Level(JPA 등)에서 잡아주는 락입니다. version 등의 컬럼을 추가하여 여러 트랜잭션 내 하나의 데이터에 중복 업데이트를 확인합니다. DB 트랜잭션을 걸지 않기 때문에, 여러 트랜잭션이 동일 데이.. 2022. 3. 30.
Git Rebase 이해하기 포크한 저장소를 최신 원본과 동기화시키기 위해 rebase 명령어를 사용합니다. REBASE 과정 및 원리 보다 쉬운 이해를 위해 상황 순서에 맞게 번호를 붙였습니다. 1. 원본 저장소 fork 우리가 원본 저장소의 코드를 내 원격 저장소로 fork하게 되면 아래와 같은 상황입니다. 2. 내 원격 저장소 clone 그리고 이렇게 fork 한 내 원격 저장소를 로컬로 clone 하여 가지고 오면 아래와 같은 상황이 됩니다. 이와 같은 상황에서 원본 저장소에서부터 가져온 커밋들을 base라고 부릅니다. 원본 저장소와 포크를 받아온 나의 원격저장소, 그리고 클론을 받은 로컬에는 모두 같은 해시값의 커밋들로 이루어집니다. git은 base가 교체되지 않는 한, base가 같은 저장소에만 push를 할 수 있습니.. 2022. 3. 26.
JWT 인증과 세션인증 인증 you are who you say you are 사용자 인증이란 서버로부터 더 많은 정보에 접근하고자 할 때, 사용자가 본인을 인증하는 과정을 얘기합니다. 보통은 현재 자원에 접근하고자 하는 클라이언트(=사용자)가 '누구'인지 '증명'하는 과정으로 진행됩니다. Someting you know : 가장 많이 사용하는 인증 방식입니다. ID와 비밀번호 혹은 PIN 을 입력하는 방식입니다. 비밀번호는 다른 사람은 모르고 사용자만 알고 있는 정보입니다. Something you have : 토큰이나 ID 카드같은 사용자가 지니고 있는 정보로 인증하는 방식입니다. 토큰을 발급은 크게 두 가지 기준으로 분리됩니다. HOTP(HMAC-based One-Time Password) 토.. 2021. 9. 12.
반응형