슬슬의 공부 11

SSO 인증/인가 프로토콜 - SAML OAuth OIDC

개요오픈소스 솔루션의 인증을 통합하는 인증 서버를 커스텀 개발 하면서 SSO , Saml , OAuth2 , OpenID Connect (OIDC) 에 대해 정리하게 됐습니다. SSO (Single Sign On) 은 단어 그대로 1회 사용자 인증으로 다수의 어플리케이션 및 웹사이트에 대한 사용자 로그인을 허용하는 인증 솔루션입니다. SSO는 한 번 자격 증명이 검증된 사용자에게는 반복되는 로그인 없이 모든 암호 보호 리소스에 액세스하도록 하여 보안과 사용자 경험을 모두 충족할 수 있습니다. 이같은 편의성은 IDP(IDentity Provider)라 불리는 신원확인 서비스가 제공합니다. IDP는 SAML(Security Assertion Markup Language), OAuth 2.0, OIDC(Ope..

슬슬의 공부 2023.11.12

[Java] Checked Exception vs Unchecked Exception

Java 에는 세 종류의 예외가 존재하며, 각 예외는 아래와 같다. Checked Exception (체크 예외) Error Runtime Exception 혹은 Unchecked Exception (언체크 예외 , 런타임 예외) 쉽게 예외를 구분하는 예로, Error 와 Unchecked Exception 을 제외한 모든 예외는 Checked Exception 이다. Checked Exception (체크 예외) vs Unchecked Exception(언체크 예외) 의 차이점은 항상 throws 에 던지는 예외를 선언해야하는가 이다. Checked Exception (체크 예외) Checked Exception 는 Exception 을 잡아서 처리할 수 없을 때, 예외를 밖으로 던지는 throws 예..

슬슬의 공부 2023.03.09

[Java] Error vs Exception

목차 예외 클래스 관계도 Error (에러) 에러는 자바 프로그램 밖에서 발생한 예외를 의미합니다. 가장 흔한 예가 서버의 디스크가 고장났다든지, 메인보드 고장으로 인해 자바프로그램이 제대로 동작하지 못하는 경우가 여기에 속한다고 볼수 있습니다. Exception 클래스는 에러가 아닙니다. 자바 프로그램에 오류가 발생했을 때, 오류의 이름이 Error 로 끝나면 에러이고, Exception 으로 끝나면 예외입니다. 이는 자바를 제공하는 오라클에서 분류한 것입니다. 참고 : [Oracle] 예외의 종류와 관련 내용 Error (에러) vs Exception (예외) Error 와 Exception 의 가장 큰 차이는 프로그램 안에서 발생했는지, 밖에서 발생했는지 여부입니다. 자세히 말하면 Error 는 프..

슬슬의 공부 2023.03.09

자료구조

목차 1. 자료 구조 1) 자료 구조 란? 자료 구조란 프로그램에서 쉽게 사용될 수 있도록 구성된 데이터 간의 논리적인 관계이다. 자료구조는 컴퓨터상에 자료를 저장하기 위해서 만들어진 논리적인 틀이다. 자료를 효율적으로 사용할 수 있도록 컴퓨터에 저장하는 방법이다. 프로그램에서 처리되는 데이터는 구조를 어떻게 구성하느냐에 따라 성능에 많은 영향을 미치게된다. 데이터를 처리하는 입장에서 데이터 사이에 존재하는 관계이다. 효과적으로 설계된 자료 구조는 실행 시간 혹은 기억 장치 용량과 같은 자원을 최소한으로 사용하면서 연산을 수행하도록 해준다. 신중히 선택한 자료구조는 보다 효율적인 프로그래밍을 할 수 있게 한다. 데이터의 추가, 삭제, 검색을 효율적으로 할 수 있는 적절한 데이터 구조를 사용하는게 중요하다..

슬슬의 공부 2023.01.24

[프로그래머스] 올바른 괄호

제목 난이도 완료한 사람 정답률 올바른 괄호스택/큐 Lv. 2 24,023명 75% 문제 설명 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항 문자열 s의 길이 : 100,000 이하의 자연수 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 입출력 예 s answer "()()" true ..

슬슬의 공부 2023.01.24

[프로그래머스] 카펫

카펫 완전탐색 Lv. 2 30,752명 68% 문제 설명 Leo 는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄을 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo 는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo 가 본 카펫에서 갈색 격자의 수 brown , 노란색 격자의 수 yellow 가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한 사항 갈색 격자의 수 brown 은 8 이상 5,000 이하인 자연수 이다. 노란색 격자의 수 yellow 는 1이상 2,000,000 이하인 자연수 이다..

슬슬의 공부 2023.01.24

[프로그래머스] 분수의 덧셈

제목 난이도 완료한 사람 정답률 분수의 덧셈코딩테스트 입문 Lv. 0 7,928명 56% 문제 설명 첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 제한사항 0

슬슬의 공부 2023.01.24

[MSA] EDA (Event Driven Architecture)

목차 1. MSA (MicroService Architecture) MSA (MicroService Architecture) 는 소프트웨어 개발 기법의 하나이다. MSA 는 하나의 큰 어플리케이션(Monolithic Application) 을 여러개의 작은 어플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처이다. 자체 프로세스에서 실행이 되고 느슨한 결합 (loosely coupled) 구조로 만들어진다. 서비스별로 각기 다른 언어 사용 가능 / DB 사용 가능(각 서비스는 api로 추상화) 2. EDA (Event Driven Architecture) Event Driven Architecture 는 분산 시스템에서 비동기 통신 방식으로 이벤트를 발행/구독하는 아키텍처 이다. 분산된 시스템간..

슬슬의 공부 2023.01.17

[React] React JS/Next.js 템플릿 디자인 적용

목차 실행환경 - Window10 - WSL (linux 명령어) 1. Create React App # REACT APP CREATE # npx create-react-app npx create-react-app msa-shop # Next.js APP CREATE # npx create-next-app npx create-next-app msa-shop 신규 프로젝트를 생성한다. 여기서는 "msa-shop" 프로젝트명을 사용함 next.js 템플릿을 다운받을 예정이므로 , npx create-next-app 으로 Next js 프로젝트를 생성했음 2. 무료 템플릿 사이트 무료 템플릿 사이트 : https://www.wrappixel.com/templates/adminpro-react-admin-lit..

슬슬의 공부 2023.01.17

Blocking / Non-blocking / Sync / Async

아래는 동기(Synchronous)와 비동기(Asynchronous), 그리고 블럭(Blocking)과 넌블럭(Non-blocking) 에 대해 설명하는 그림이다. Blocking이 곧 Synchronous 와 같고 Non-blocking 이 곧 Asynchronous 와 같은 개념으로 잘못 이해할 수 있다. 동기 (Synchronous) 와 비동기 (Asynchronous) 비동기 (Asynchronous) 는 함께 시간을 맞추지 않는 것이다. 동기 (Synchronous) A 와 B 가 시작시간 또는 종료시간이 일치하면 동기 A 가 끝나는 시간과 B 가 시작하는 시간이 같으면 동기 호출된 함수의 수행 결과 및 종료를 호출한 함수가(호출된 함수뿐 아니라 호출한 함수도 함께) 신경 쓰면 동기 (Synch..

슬슬의 공부 2023.01.16