본문 바로가기

전체 글20

OAuth 2.0 이란? OAuth 2.0 (Open Authorization 2.0) 인증을 위한 개방형 표준 프로토콜이다. 이 프로토콜에서는 Third-Party 프로그램에서 리소스 소유자를 대신해 리소스 서버에서 제공하는 자원에 대한 접근 권한을 위임하는 방식을 제공한다. 구글, 네이버, 카카오 등 소셜 로그인 기능이 OAuth 2.0 프로토콜 기반의 사용자 인증 기능을 이용한 방식이다. OAuth 의 탄생 배경 OAuth가 등장하기 전에 A 사이트가 B사이트의 리소스를 가져오기 위해서는 다른 사이트의 ID와 PW 등을 직접 입력받아 저장하여 필요할 때 불러와서 사용해야했다. 이러한 방식으로 리소스를 가져오면 문제가 발생하는데 사용자 : A사이트에 B사이트의 ID와 PW 등의 정보를 주는 것에 대해 신뢰할 수 없다 A사이트.. 2023. 2. 22.
URI URL URN 개발 공부를 하다보면 어쩔 때는 URI를 사용하고 어쩔 때는 URL 라는 용어를 사용한다. 이 차이점이 궁금하여 정리를 하려고 한다. URI (Uniform Resource Identifier) URI는 통합자원식별자로 인터넷에 있는 자원이 어디에 있는지 자원 자체를 식별하는 방법이다. Uniform : 리소스를 식별하는 통일된 방식 Resource : 자원, URI로 식별할 수 있는 모든 것 (웹 브라우저 파일 및 그 외의 리소스 포함) Identifier : 다른 항목과 구분하는데 필요한 정보 URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어다닌다. URI의 하위 개념으로 URL, URN이 있다. URL (Uniform Resource Locator) URL은 파일식별자로.. 2023. 2. 21.
인증 / 인가 웹서비스를 만들기 위해 필수적으로 알아야할 지식이 인증 / 인가 이다. 대부분의 서비스에서는 로그인이 필수적이기 때문이다. 인증 / 인가 란? 인증(Authentication) 이란 웹사이트를 이용하는 사용자의 신원을 확인하는 것이다. 가장 간단한 예로 ID와 PW를 이용하여 로그인을 하는 것을 인증이라 할 수 있다. 인가(Authorization) 란 인증을 완료한 사용자가 어떠한 페이지 (서비스)에 접근할 권한이 있는지 확인하는 것을 인가라고 한다. 간단한 예로 관리자 페이지에는 일반적인 사용자가 접근할 수 없다. 일반적인 사용자에게는 관리자 페이지에 대한 인가가 없기 때문이다. 각각의 프로세스를 살펴보자 인증 로그인 요청 : 사용자(클라이언트)가 아이디와 비밀번호를 입력하고 로그인 요청 사용자 확인.. 2023. 2. 20.
HTTP 상태코드 HTTP 상태 코드를 알맞게 사용하는 것은 아주 중요하다. HTTP 상태 코드를 확인하면 클라이언트가 서버로 보낸 요청에 대한 응답이 성공인지 실패인지를 확인할 수 있으며, 어떤 유형의 성공인지 실패인지를 확인할 수 있다. 그리고 만약 백엔드 개발자가 통신간의 에러가 발생했을 시 상태 코드를 잘못 설정해놓는다면 프론트엔드 개발자 입장에서는 예외 처리를 하는 것이 번거로워 질 것이다. 이 때문에 HTTP 상태 코드를 알맞게 사용하는 것은 중요하다. HTTP 상태코드 HTTP의 상태코드의 종류는 아주 많다. 여기서는 자주 쓰이는 상태 코드만 정리를 해보려고 한다. 모든 종류의 상태코드를 확인하려면 공식문서를 참고하자. 응답은 5개의 그룹으로 나눠진다. 조건부 응답, 성공 응답, 리다이렉트 응답, 클라이언트 .. 2023. 2. 19.
HTTP란? HTTP(HyperText Transfer Protocol) 인터넷에서 데이터를 주고받을 수 있는 프로토콜로 일종의 통신 규약이다. 웹 클라이언트와 서버 간의 통신을 하기 위한 약속이라 할 수 있다. HTTP의 동작 방식 클라이언트가 브라우저를 통해서 원하는 서비스를 url과 같은 방식을 통해 요청(Request)을 서버로 보내면 해당 요청사항에 맞는 결과를 클라이언트에게 응답(Response)하는 형태로 동작한다. HTTP의 특징 HTTP 메시지는 HTTP서버와 클라이언트에 의해 해석된다. TCP/IP를 이용하는 응용 프로토콜이다. HTTP는 연결상태를 유지하지 않는 비연결성 프로토콜이다.(이러한 단점을 해결하기 위해 Cookie와 Session이 등장) HTTP는 비연결성 프로토콜이라 요청 / 응답 .. 2023. 2. 18.
트랜잭션이란? 트랜잭션 정의 트랜잭션은 데이터베이스의 상태를 변환시키기 위해 수행하는 작업의 단위이다. 여기서 작업의 단위는 하나의 명령어를 뜻하지 않는다. 명령어 하나가 될수도 있고 여러가지 명령어들이 모여 하나의 작업 단위가 될수도 있다. 트랜잭션의 특징 원자성(Atomicity) 트랜잭션은 데이터베이스에 전부 반영되던지 전혀 반영되지 않는다 사용자의 작업셋을 완벽하게 처리하거나 처리하지 못하면 원상태로 복구한다 일관성(Consistency) 트랜잭션이 성공적으로 처리되면 데이터베이스는 일관성을 가져야한다 독립성(Isolation) 두 개의 트랜잭션이 동시에 처리될 수 없다 하나가 처리될 동안 다른 하나는 대기 후 처리가 완료되면 진행된다 지속성(Durability) 성공적으로 트랜잭션이 완료되면 시스템이 고장나더.. 2023. 2. 17.