개발자를 희망하는 초보의 자기개발 이야기

비전공자를 위한 이해할 수 있는 IT 지식 4일차 본문

도서/비전공자를 위한 이해할 수 있는 IT 지식

비전공자를 위한 이해할 수 있는 IT 지식 4일차

클라우드아실 2023. 11. 28. 22:04
반응형

TIL (Today I Learned)

2023.11.28

오늘 읽은 범위

4장 API와 JSON

책에서 기억하고 싶은 내용

1. POST는 뭐고, GET은 뭐죠?(feat. 개발자의 암호문)
클라이언트는 서버에게 요청을 보낸다. 서버는 요청이 어떤 내용인지 구분할 수 있는 체계가 필요한데 이를 API라고 한다. API는 서로 다른 프로그램에서 요청과 응답을 주고받을 수 있게 만든 체계이다. 어디로 요청을 보내는지에 따라 어떻게 응답할지 미리 정해놓아야 하는데 예를 들어 클라이언트가 서버주소/A 라는 요청을 보내면 서버에서는 내용을 확인 후 로그인처리하는 식이다. 이런 서버 주소 정의와 경로 등은 백엔드에서 주도한다. 클라이언트는 크게 CRUD(Create, Read, Update, Delete)로 요청하게 된다. 특정한 사이트에 회원 프로필 이미지를 등록하는 상황이라고 생각해 보자. 각 요청은 아래와 같다.

  • Create - 사진 업로드
  • Read - 업로드 된 사진이 화면에 나타나게 읽기
  • Update - 다른 사진으로 변경
  • Delete - 사진 삭제

 이런 CRUD는 각각의 주소를 가지는데 잘못 구성할 경우 중복되거나 관리가 어려워지는 상황이 발생한다. 예를 들어 create라는 주소를 사진 업로드에 배정했지만 create 자체는 어떤 생성을 의미하는지 명확하지 않다. 예시로 든 사진 이외에도 메시지, 이모티콘, 신규 글, 좋아요 같은 추천 등록 등 클라이언트의 요청 중 생성의 카테고리에 들어가는 요청은 상당히 많을 것이다. 따라서 좀 더 체계적으로 API를 관리하자는 운동에 따라 RESTful API가 탄생한다. 

서버에서도 요청에 대해 검증하게 되는데(예를 들어 비밀번호가 틀렸다던지, 이미지를 업로드 요청했으나 확인시 다른 종류의 파일이 요청됐다던지) 각 기능을 담당하는 부서가 여러 개면 검증결과 표현도 다 다를 수 있다. 이를 특정한 세 자리 숫자로 표현하기로 하는데 이를 'http 상태 코드'라고 한다. 일반인들도 없어진 사이트나 세부 주소가 잘못 입력된 사이트로 접속 시 404 상태코드 화면이 나오는 것을 본 적 있을 것이다.

출처 : github

누군가 제작한 API를 이용해 특정한 기능을 구현할 수도 있는데 예를 들어 지도 API를 연동하면 따로 기능을 개발할 필요 없이 정해진 방식의 코드를 입력하면 앱에서 지도 기능이 구현되는 식이다. 이런 도구를 SDK(Software Development Kit)라고 한다. 

2. 요청과 응답을 주고 받을 때의 형식
클라이언트가 요청과 응답을 할 때는 정해진 양식을 사용한다. 현재 가장 유명한 형식은 JSON으로 아래처럼 중괄호 내에 콜론기호를 구분기호로 키와 값으로 구성한다.

{
  "id" : "abc",
  "pw" : "a123"
}

 3. API 문서 살펴보기
기업이나 정부에서 무료로 제공하는 API를 Open API라고 한다. 책의 API 예시는 저작권에 위배될 것 같고 네이버 오픈 API 중네이버 카페 API 명세, 카페 튜토리얼 링크를 걸어둔다. 글쓰기, 삭제 같은 기능별 코드와 변수명, 상황별 페이지 이동, 응답 코드 등 어려운 부분도 많지만 책에서 알게 된 내용도 많이 나온다. 

오늘 읽은 소감은?

RESTful API는 REST 원리를 따르는 API를 시스템을 의미한다. REST API는  체계적일 API 관리를 하자는 운동이다. 예를 들어 블로그 작성 시 신규 글 작성 등록은 CURD 중 Create(생성) 일 것이다. 업로드된 글이 화면에 나타나는 Read, 글을 수정 후 다시 등록 시 Update, 글 삭제 시 Delete가 되는데 이를 각각의 행동(동사)으로 구분하지 말고 blog/create, blog/delete처럼 카테고리(명사)로 분류 시 좀 더 관리가 쉽다. Open API에 대해서 알고는 있었지만 API 명세를 살펴본 건 처음이었는데  얼마 후 미니 프로젝트를 앞두고 있어서 굉장히 큰 도움이 되었다. 추후에도 여러 프로젝트 시 API명세를 작성할 때 예시로 활용하려고 한다.

궁금한 내용이나 잘 이해되지 않는 내용은?

다음 주에 프로젝트를 위한 기능 구현 회의를 할 예정인데 API 수정 하나가 불러오는 나비효과에 대해서 스스로에게 경고와 함께 대략적인 확인 프로세스를 남겨둔다..ㅎㅎ

Q. 협업 중인 프로젝트에서 회원 정보에 생일을 추가하기로 한다면?

A. 회원 가입 API와 회원 정보 조회 및 수정 API에 대한 변경이 필요하고, 회원가입 화면도 수정되어야 한다. 서버 작업은 눈으로 확인할 수 없기 때문에 API 문서를 통해 진행 상황을 예측할 수 있다.

※ 이 글은 비전공자를 위한 이해할 수 있는 IT 지식 - 최원영 저자 를 기본 출처로 개인적인 공부내용을 요약한 것입니다.

반응형