
처음 이 문장을 읽었을 때 auto_increment 속성이 설정된 관계형 데이터베이스의 기본 키를 쓰면 되지 않을까?하고 생각했다.하지만 분산 환경에서 이 접근법은 데이터베이스 서버 한 대로는 요구를 감당할 수 없을 뿐더러, 여러 데이터베이스 서버를 쓰는 경우에는 지연시간(delay)를 낮추기가 힘들기 때문에 통하지 않는다는 것을 깨달았다. 역시 대규모 시스템 설계시엔 고려해야할 부분이 많은 것 같다. 요구사항이 다음과 같을 때 ID는 유일해야 한다.ID는 숫자로만 구성되어야 한다.ID는 64비트로 표현될 수 있는 값이어야 한다.ID는 발급 날짜에 따라 정렬 가능해야 한다.초당 10,000개의 ID를 만들 수 있어야 한다.분산 시스템에서 유일성이 보장되는 ID를 만드는 방법들에 대해 알아보자. 1. 다..

네트워크 시스템에서는 클라이언트 또는 서비스가 보내는 트래픽의 처리율을 제어하기 위한 처리율 제한 장치(rate limiter)가 필요한데, 처리율 제한 장치와 처리율 제한 알고리즘에 대해 알아보자. 1. 토큰 버킷 알고리즘 (token bucket)지정된 용량을 갖는 컨테이너이 버킷에는 사전 설정된 양의 토큰이 주기적으로 채워짐. 토큰이 꽉 찬 버킷에는 더 이상의 토큰은 추가되지 않는데, 토큰 공급기가 이 버킷에 매초 2개의 토큰을 추가하고, 버킷이 가득 차면 추가로 공급된 토큰은 버려지는 구조각 요청이 처리될 때마다 하나의 토큰을 사용하고 요청이 도착하면 버킷에 충분한 토큰이 있는지 검사하고, 충분한 토큰이 있는 경우 버킷에서 토큰 하나를 꺼낸 후 요청을 시스템에 전달한다. 충분한 토큰이 없는 경우,..

이 포스팅은 이전 포스팅과 이어지므로 이전 포스팅을 먼저 보기를 권장한다.이번 포스팅에서는 현재 프로젝트의 구조와 MSA로 전환하기 위해 어떤 과정이 필요한지 알아보자. ✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버를 구현해보자.4. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 4 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자.5. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 5 멀티 모듈 구조를 MSA 구조로 리팩토링해보자. 5-1. 현재 프로..

이 포스팅은 이전 포스팅과 이어지므로 이전 포스팅을 먼저 보기를 권장한다.이번 포스팅에서는 현재 프로젝트의 구조와 MSA로 전환하기 위해 어떤 과정이 필요한지 알아보자. ✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버를 구현해보자.4. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 4 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자.5. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 5 멀티 모듈 구조를 MSA 구조로 리팩토링해보자. 5-1. 현재 프로..

이 포스팅은 이전 포스팅과 이어지므로 이전 포스팅을 먼저 보기를 권장한다.이번 포스팅에서는 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자. ✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버를 구현해보자.4. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 4 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자.5. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 5 멀티 모듈 구조를 MSA 구조로 리팩토링해보자. 먼저 인증 서버와 비즈니스 서버를 실행시키..

이 포스팅은 이전 포스팅과 이어지므로 이전 포스팅을 먼저 보기를 권장한다.이번 포스팅에서는 비즈니스 서버를 직접 구현해보자. ✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버를 구현해보자.4. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 4 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자.5. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 5 멀티 모듈 구조를 MSA 구조로 리팩토링해보자. 이번 포스팅에서는 JWT로 인증과 권한 부여를 수행하며 애플리케이..

이 포스팅은 이전 포스팅과 이어지므로 이전 포스팅을 먼저 보기를 권장한다.이번 포스팅에서는 인증 서버를 직접 구현해보자.✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버를 구현해보자.4. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 4 인증 서버와 비즈니스 논리 서버가 잘 동작하는지 확인해보자.5. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 5 멀티 모듈 구조를 MSA 구조로 리팩토링해보자. 이 시나리오에서 인증 서버는 사용자 자격 증명과 요청 인증 이벤트 중에 ..

웹 또는 모바일 서비스를 개발하다 보면, "로그인" 기능은 항상 빠지지 않는 필수 요소이다.하지만 단순히 아이디와 비밀번호만 일치하면 로그인 처리하는 방식은 이제는 보안적으로 너무 약하다.그래서 요즘은 2FA(2단계 인증, 2 Factor Authenticaion), 특히 OTP(일회용 비밀번호) 기반 인증 방식이 많이 사용되는데이번 프로젝트에서는 실제 서비스에서 사용되는 OTP 기반 2단계 인증 흐름을 직접 설계하고 구현해보겠다. ✨ 시리즈 구성1. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 1 시스템 아키텍처 및 3단계 인증 흐름 2. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 2 인증 서버를 구현해보자.3. OTP 기반 2단계 인증 시스템 직접 구현해보기 - 3 비즈니스 논리 서버..

OAuth 2와 SSO의 차이에 대해 알아보자.(SSO에 대해 궁금하다면 해당 링크를 참고하자.) 둘 다 인증(Authentication)과 인가(Authorization)를 처리하는 기술이지만,목적과 범위, 사용 방식에서 차이가 있다.항목OAuth2SSO목적리소스 접근 권한 위임(Authorization)한 번의 로그인으로 여러 시스템 접근(Authentication)사용 주체제3자 애플리케이션 (클라이언트)사용자 중심인증 처리 여부직접적인 인증 처리 없음 (OpenID Connect 필요)인증 중심예시Google Drive를 통해 다른 앱에서 내 파일 접근 허용회사 인트라넷 로그인 한 번으로 이메일, 결재시스템 자동 로그인 🔐 OAuth2란?권한 위임(Authorization Delegation) ..
(Single Sign-On)란한 번의 로그인으로 여러 시스템 또는 서비스에 접근할 수 있도록 해주는 인증 방식이다. 사용자가 처음 한 번 로그인하면, 이후 별도의 로그인 없이 연동된 다른 서비스들도 자유롭게 이용할 수 있다.예 : Google 계정에 로그인하면 Gmail, YouTube, Google Drive 등 다양한 Google 서비스에 다시 로그인할 필요 없이 바로 접근 가능 🔁 흐름 및 동작 방식1. 사용자가 애플리케이션(A)에 접근 → 로그인 필요2. 사용자가 SSO 서버(인증 서버)에 리디렉션됨3. 사용자 인증 (아이디/비밀번호 입력)4. SSO 서버가 사용자에게 토큰 또는 세션을 발급5. 사용자 브라우저가 이 토큰으로 A에 접근 허용6. 이후 사용자가 애플리케이션 B에 접근하더라도, 이..
- Total
- Today
- Yesterday
- ORM
- 22 정보처리산업기사
- hackerrank
- Spring Security
- 해커랭크
- 해커랭크 자바
- 그리디
- 나동빈
- JPA
- 정보처리산업기사 공부법
- 자바의 정석
- 챌린지
- Java
- 해커랭크 자바 챌린지
- 강의
- 백준
- MSA
- 소스코드
- 자바
- 22 정보처리 산업기사
- 정보처리산업기사
- 정보처리 산업기사
- 코드
- 이코테
- challenges
- 해커랭크 챌린지
- hackerrank challenges
- queue
- BAEKJOON
- 디버깅
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |