HTTP란?HTTP(HyperText Transfer Protocol)는 인터넷에서 클라이언트와 서버 간에 데이터를 주고 받기 위해 사용하는 프로토콜 입니다.HTTP는 요청-응답 프로토콜이라고도 합니다. 예를 들자면 구글 웹 사이트에 접속하는 경우를 생각해봅시다. 사용자가 웹 브라우저의 주소 표시줄에 'www.google.com'을 입력하면 웹 브라우저(클라이언트)는 구글 서버에 '구글 웹사이트를 사용자에게 보여주기 위한 데이터를 전송해줘' 라는 HTTP 요청을 합니다. 요청을 받은 구글 서버는 웹 사이트를 띄우는데 필요한 데이터, 즉 HTML, CSS, 이미지 파일 등을 HTTP 응답으로 보냅니다. 데이터를 전달받은 웹 브라우저는 각 요소를 적절히 조합해 구글 웹사이트를 사용자의 화면에 출력합니다. H..
API의 개념 API(Application Programming Interface)는 응용 프로그램에서 사용할 수 있도록 운영체제나 프로그래밍 언어가 제공하는 기능을 제어하기 위한 인터페이스입니다. 인터페이스가 무엇인지 알면 API를 쉽게 이해할 수 있습니다. 인터페이스는 'inter(~사이의)'와 'face(면)'가 합쳐진 말로 여러 장치나 프로그램 사이에서 통신이 가능하도록 도와주는 매개체를 가리킵니다. ex) 키보드는 사용자의 컴퓨터가 상호작용할 수 있도록 명령어를 입력하는 사용자 인터페이스. 사용자는 키보드를 통해 손쉽게 명령을 내릴 수 있음 키보드가 사용자와 컴퓨터 사이의 통신을 가능하게 한다면, API는 응용 프로그램과 응용 프로그램 사이의 통신을 가능하게 합니다. 예를 들어 네이버에 접속하는..
이미 배포한 소스 코드에 새로운 API를 추가하거나 기존 API를 수정 했다면 소스 코드를 다시 빌드 및 테스트한 후 재배포해야합니다. 그런데 이는 생각보다 자주 일어나는 일입니다. 따라서 이러한 과정을 자동화 하지 않으면 그때마다 수동으로 서버에 들어가 작업해야하며, 재배포가 잦을수록 실수가 발생할 가능성도 높아집니다. 이에 소스코드를 안정적으로 빌드하고 빌드하고 배포하기 위해 CI/CD라는 자동화 방법론이 탄생했습니다. CI/CD의 개념 CI/CD(continuos Intgration/Continos Delivery 또는 Contiuous Deployment)는 '지속적 통합/지속적 배포' 라는 의미입니다. Continuous Integration (CI) CI는 소스 코드의 변경사항을 자동으로 빌드..
웹 애플리케이션 및 서비스에서 보안은 매우 중요한 요소입니다. 사용자 인증과 권한 부여는 이러한 보안을 구축하는 데 있어서 핵심적인 부분인데요. 그 중에서도 JWT(Jason Web Token)와 OAuth는 널리 사용되는 두 가지 웹 보안 프로토콜입니다. 이번 글에서는 JWT와 OAuth의 개념, 구조 그리고 주요 차이점에 대해 자세히 알아보겠습니다! JWT란? Jason Web Token으로 클라이언트와 서버 간의 인증을 위한 토큰 기반 방식 JWT의 생김새 헤더(Header) : 토큰의 타입과 해싱 알고리즘을 정의 내용(payload) : 클레임(Claim) 정보가 포함. 클레임(Claim) 은 사용자, 권한, 유효기간 등의 정보를 담음(등록된, 공개, 비공개 클레임) 서명(signature) : ..