백엔드의 주요 업무는 DB에 있는 정보들을 프론트엔드에서 활용할 수 있도록 요청에 맞게 알맞은 응답을 보내주는 것입니다.

이러한 ‘요청’은 자유롭게 오는 것이 아닌, 일정한 규칙을 통해 전송됩니다. 그리고 요청에 따른 ‘응답’도 정해진 규칙을 지켜 전송해야 합니다.

물론 코드를 작성하는 것도 중요하지만, 이러한 기본적인 개념들을 먼저 알고 있어야지 더욱 효율적으로 개발을 진행할 수 있습니다.

그래서 이번 시간에는 이러한 규칙들에 대해 공부해보려고 합니다.

아래의 모든 자료는 참고 자료일 뿐이고, 자유롭게 검색해서 공부하셔도 됩니다! 😎

이미 알고 있는 내용이라면 복습겸 정리하셔도 되고, 아니면 평소 궁금했던 부분을 찾아 다른 분들에게 소개하는 느낌으로 정리해주셔도 괜찮습니다.

공부할 내용 📚

1. HTTP

HTTP는 텍스트 기반의 통신 규약으로 인터넷에서 정보를 주고받을 수 있는 프로토콜입니다. 이러한 규칙을 통해 우리는 서로 소통하며 정보를 주고 받을 수 있습니다.

  • HTTP 개요: HTTP에 대해서 간단히 정리한 글입니다. 어떤 흐름으로 통신이 오고가는지, 어떠한 메세지를 통해 통신하는지 읽어보시면 좋을 듯합니다.

  • HTTP 헤더: HTTP의 헤더는 요청 및 응답을 보낼 때 부가적인 정보를 담아두는 부분입니다. 헤더를 통해 우리는 어떤 타입의 정보를 보낼 것인지, 어떤 인증을 사용하는지, 어디에서 보내는지 등등의 정보를 알 수 있습니다. 양이 많아서 대충 보면서 이런 부분도 있구나~ 정도로만 읽어주세요!

  • HTTP 요청 메소드: HTTP는 요청 메서드를 정의하여, 주어진 리소스에 수행하길 원하는 행동을 나타냅니다. GET, PUT, POST, DELETE는 많이 들어보셨을 것이지만, 이외에도 HEAD, OPTIONS 등 다양한 메서드가 존재합니다. 이 기회를 통해 각각의 메서드의 개념 및 특징에 대해 다시 살펴보면 어떨까요?

  • HTTP 상태 코드: HTTP 응답 상태 코드는 특정 HTTP 요청이 성공적으로 완료되었는지 알려줍니다. 404, 400 많이 보셨죠? 사실, 상태코드는 이것말고도 다양한 코드들이 존재합니다. 이런 상태코드들을 잘 활용하면 구구절절 에러 내용을 적을 필요없이 코드만으로도 에러 내용을 유추할 수 있도록 할 수 있습니다.

2. DNS, Domain Name, Hosting

우리는 어떻게 https://www.codedang.com 을 주소창에 치자마자 코드당 홈페이지로 들어갈 수 있을까요? 어떻게 웹을 접속할 수 있는지 DNS, Domain Name, Hosting의 개념에 대해 짧게 살펴봅시다.

  • DNS: DNS은 Domain Name System으로, 우리가 읽을 수 있는 도메인 이름을 IP 주소로 변환해줍니다. 어떻게 도메인 이름을 IP 주소로 변경해서 우리가 접속할 수 있게 하는지 라우팅 흐름에 대해서도 살펴봐주세요.

  • Domain Name 등 용어목록: 도메인 이름, 하위 도메인, 네이키드 도메인 등등의 용어를 정리한 페이지가 있길래 넣어보았습니다.

  • Web Hosting: 웹 호스팅은 서버 컴퓨터의 전체 또는 일정 공간을 이용할 수 있도록 임대해 주는 서비스를 뜻합니다. 이 서비스에 관련해서 간단히 알아보고, 만약 우리 codedang이 어떻게 호스팅하는지 궁금하다면 ‘인프라 팀’에게 물어보면 친절히 가르쳐줄 거에용

3. Rest API

백엔드가 하는 업무 중 가장 중요하고, 많이 하는 것은 API를 설계하고 개발하는 일입니다. API가 도대체 뭘까요?

API는 application programming interface로, 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의합니다. 그리고 이러한 API를 조금 더 체계적으로 관리하기 위해서 Representational State Transfer(REST)라는 API 작동 방식에 대해 조건을 다는 software architecture가 등장하였으며 현재까지도 보편적으로 쓰이고 있습니다.

이러한 Rest API의 특징에 대해 살펴봅시다.