본문 바로가기

전체 글72

OAUTH 2.0 이란? OAuth 2.0(Open Authorization 2.0)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토콜에서는 Third-Party 프로그램에게 리소스 소유자를 대신하여 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공합니다. ​ 구글, 페이스북, 카카오, 네이버 등에서 제공하는 간편 로그인 기능도 OAuth2 프로토콜 기반의 사용자 인증 기능을 제공하고 있습니다. OAuth 2.0 주요 용어 Authentication 인증, 접근 자격이 있는지 검증하는 단계를 말합니다. Authorization 인가, 자원에 접근할 권한을 부여하는 것입니다. 인가가 완료되면 리소스 접근 권한이 담긴 Access Token이 클라이언트에게 부여됩니다. Access Token 리소스 서버에.. 2022. 10. 22.
JAVA8 STREAM(1) 자바 8 에서 추가한 Stream은 람다를 활용할 수 있는 기술입니다. 자바 8 이전에는 배열 또는 컬렉션을 다루는 방법은 for, foreach를 사용했습니다. 로직이 복잡해질수록 코드의 양이 많아져 여러 로직이 섞이게 되고, 메서드를 나눌경우 루프를 여러번 도는 현상도 발생합니다. stream은 데이터의 흐름입니다. 배열 또는 컬렉션 인스턴스에 함수를 조합해서 원하는 결과를 필터링하고 가공된 결과를얻을 수 있습니다. 또한 람다를 활용해서 코드의 양을 줄이고 간결하게 표현할 수 있습니다. 배열과 컬렉션을 함수형으로 처리할 수 있습니다. Stream은 생성하기 (인스턴스 생성) 가공하기 (필터링, 맵핑) 결과 로 나눌 수 있습니다. 보통 배열과 컬렉션을 이용해서 Stream을 생성하지만 다양한 방법으로 .. 2022. 10. 15.
Javascript에서 호출스택(callstack)과 태스크 큐의 관계는 무엇인가요? 면접관 : Javascript에서 호출스택(callstack)과 태스크 큐의 관계는 무엇인가요? 면접자 : 호출 스택(콜 스택)은 코드를 실행하면서 수행할 코드를 쌓고 메모리 힙에서 필요한 것들을 찾아 수행하는 공간입니다. 참고로 메모리 힙은 변수, 함수 저장 등 작업이 발생하는 공간입니다. 비동기 함수를 실행시키면 호출 함수는 콜 스택에 쌓여 차례로 실행되고 콜백 함수는 특정영역에 쌓이게 되는데 이 영역이 태스크 큐입니다. 태스크 큐는 이런 태스크들이 적재되는 공간입니다. 콜 스택에 있는 작업이 실행되면서 이벤트 루프는 계속 콜 스택이 비어있는지 체크를 합니다. 이벤트 루프가 콜 스택이 비어있다는 걸 확인하게 되면 비로소 태스크 큐에 있던 작업들이 콜 스택으로 옮겨진 후 차례로 실행되게 됩니다. 참조 .. 2022. 10. 8.
JavaScript - 콜스택, 태스크 큐, 이벤트 루프 콜스택과 메모리 힙 자바스크립트는 단일 쓰레드로써 한 번에 한개의 작업을 진행합니다. 메모리 힙(Memory Heap) : 정보를 저장하는 공간 콜스택(Call Stack) : 실행 중인 코드를 추적하는 공간 자바스크립트는 힙, 큐와 함께 구성하는 단일 콜스택을 갖습니다. 메모리 힙은 자바스크립트 엔진이 구동되면서 변수, 함수 저장, 호출 등의 작업이 발생하는 공간입니다. 콜 스택(Call Stack)은 코드를 읽어내려가며 수행 할 작업들을 밑에서 부터 하나씩 쌓고, 메모리 힙(Memory Heap)에서 필요한 것들을 찾아서 작업을 수행하는 공간입니다. 콜 스택은 stack 자료구조를 가지고있으며 LIFO(Last In First Out) 또는 FILO(First In Last Out) 형태입니다. 간단.. 2022. 10. 1.
제네릭(generic) 제네릭이란 무엇일까? 제네릭(Generic)은 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미합니다. 특정(Specific) 타입을 미리 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 하는 일반(Generic) 타입입니다. Generic(제네릭)의 장점 제네릭을 사용하면 잘못된 타입이 들어올 수 있는 것을 컴파일 단계에서 방지할 수 있습니다. 클래스 외부에서 타입을 지정해주기 때문에 따로 타입을 체크하고 변환해줄 필요가 없습니다. 비슷한 기능을 지원하는 경우 코드의 재사용성이 높아집니다. Generic(제네릭) 사용방법 보통은 아래 표의 타입들이 많이 사용됩니다. 타입 설명 Type Element Key Value Number Generic(제네릭)의 사용 1. 클래스.. 2022. 9. 24.
JAVA8 Optional 사용법 java8 버전부터 Optional 클래스가 지원되기 시작했습니다. Optional 내용을 알아볼까요? Java NPE 예방 자바 프로그램을 작성하다보면 null처리를 해야 할 경우가 많습니다. null 값을 제대로 처리하지 않으면 NullPointerException을 자주 만나게 됩니다. 안정적인 실행을 위해 NPE이 발생하지 않도록 중간중간 null 체크를 해줘야 하는데 if문이 반복적으로 들어가기 때문에 코드가 더러워집니다. 아래와 같은 상황에서 NPE가 발생합니다. List strs = null; strs.get(0).toString(); 위 코드를 아래와 같이 수정해야 합니다. List strs = null; strs.get(0).toString(); if(strs!=null) { //다음 로.. 2022. 9. 17.