시작하면서 이전 포스팅에서 말한 OAuth 2.0의 네가지 주체 중 Authorization Server이자 IAM 서버의 구현을 위해 사용한 오픈 소스인 Keycloak에 대해서 소개해보고자 합니다. Keycloak 이란? 조금 더 자세한 Keycloak의 장점은 공식 홈페이지에서도 확인할 수 있습니다. Keycloak은 IAM 서버...
요구사항 인턴십을 시작하면서 가장 먼저 마주한 업무는 인증/권한 서비스의 분리를 하는 작업이였습니다. 기존에 하나의 제품에서 관리되고 있었기 때문에 새로운 제품을 출시할 경우, 중복적인 회원 관리 로직을 구현해야 하고 제품을 이동할 때마다 고객은 새로운 로그인 절차를 거쳐야 하는 불편함을 감수해야 했습니다. 이러한 문제를 해결하기 위해서는 SSO...
11. 3-Way Handshake에 대해 설명해 주세요. 참고 자료 3 Way-Handshake란, TCP에서 클라이언트와 서버의 확실한 연결을 보장하기 위해 거치는 세 단계 과정을 의미합니다. 3단계는 아래와 같이 순서대로 동작해 두 객체간의 연결을 시도합니다. SYN(Client -> Server) : ...
7. TCP와 UDP의 차이에 대해 설명해 주세요. 참고 자료 TCP의 특징은 다음과 같습니다. 연결형 프로토콜입니다. 즉, 신뢰성을 보장하기 위한 방식을 채택해 동작합니다. 이로 인해 3-way handshaking으로 연결을 설정하고 4-way handshaking으로 연결을 종료합니다. ...
1. 쿠키와 세션의 차이에 대해 설명해 주세요. 세션은 서버측에서 클라이언트에 대한 고유 세션 ID를 발급하고 저장하여 관리하는 공간을 의미합니다. 클라이언트가 보낸 요청이 인증된 요청인지 세션 ID를 통해 정보를 조회하고 올바른 정보가 세션에 저장되어 있는 것이 확인되면 요청을 처리해주는 방식을 구현하기 위한 저장 공간입니다. 쿠키는 쿠...
16. Thrashing 이란 무엇인가요? CPU가 프로세스들의 작업을 처리하는 과정에서 페이지 폴트가 자주 발생하는 것을 쓰레싱이라고 합니다. 멀티 프로그래밍 환경에서 다수의 프로그램이 실행될 때, 특정 프로그램에 너무 적은 메모리가 할당되는 경우에 부족한 메모리 만큼 페이지 폴트가 자주 발생하게 됩니다. 이러한 상황을 쓰레싱이라고 할 ...
8. 뮤텍스와 세마포어의 차이점은 무엇인가요? 뮤텍스(Mutex) : 락에 대한 키를 두고 해당 키를 소유한 프로세스만이 공유 메모리에 접근이 가능하도록 구현하는 방식 세마포어(Semaphore) : 공유 메모리 접근 권한에 대한 허용 범위를 지정해 해당 범위 내의 개수만큼 접근하는 프로세스의 수를 제한하도록 구현하는 방식 ...
0. 시작 전에, 운영체제란? 참고 자료 운영체제란 하드웨어와 응용 프로그램 사이에 위치하여 하드웨어를 관리하고 시스템의 동작을 제어하는 시스템 소프트웨어를 말합니다. 사용하는 주 목적은 CPU, 메모리, 디스크 등의 하드웨어를 효율적으로 관리하기 위함입니다. 운영체제란 결국, 컴퓨터의 성능을 높이면서 사용자의 편의를 제공하는 목적으로 사...
8. View가 무엇이고, 언제 사용할 수 있나요? 참고자료 뷰는 하나 이상의 테이블이나 다른 뷰의 데이터를 볼 수 있게 하는 데이터베이스 객체이자 하나 이상의 기본 테이블로부터 유도된, 고유한 이름을 가지는 가상 테이블입니다. 뷰의 사용 목적은 아래와 같습니다. 주로 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 사용됩니...
1. Key (기본키, 후보키, 슈퍼키 등등…) 에 대해 설명해 주세요. 키는 하나의 테이블에서 고유한 값을 가지며 데이터를 구분하기 위해 사용되는 필드를 의미합니다. 키를 통해 DB에 저장된 레코드에 대한 식별하고 관계를 유지할 수 있습니다. 키의 종류는 다음과 같습니다. 기본키 하나...
A new version of content is available.