본문 바로가기
javascript+node.js

11/1 , 11/2 노드 입문 수업 2

by 마루청 2023. 11. 2.
728x90

내일배움캠프 오늘 학습 내용

 

  • Node 입문 수업 4,5 : CRUD에 해당하는 post, get, put, delete를 사용하여 장바구니를 만드는 예제를 배워보았다.
  • 과제 : 블로그에 게시글을 작성하고, 댓글을 쓰는 REST API를 제작하여본다.

 

 

API / REST API

 

API : Application Programming Interface 의 약자이다. 프로그래밍을 할 때 사용할 수 있는 인터페이스를 제공해준다. 두 애플리케이션 간 소통하기 위한 약속이기도 하다. API에서 원하는 데이터를 읽어 DB에 저장하고, 그 DB에 있는 데이터를 다시 프론트엔드에 제공하게 된다. 이렇게 요청에 대한 응답을 구성하는 방법에 대한 정보가 들어가있다.

그 중 REST API는  Representational State Transfer API의 줄임말이다. 현재 자수 쓰이는 방식으로 소프트웨어 아키텍쳐의 한 방식이다. 웹서버에서 클라이언트가 서버에 요청을 데이터로 전송할 때 GET, POST와 같은 http method를 정의해 사용한다. 이를 통해 서버와 클라이언트의 역할이 구분되고 일관적인 인터페이스가 분리되어 작동할 수 있다. 또, 서버가 클라이언트 데이터를 저장하지 않고 url을 통해 요청을 받기 때문에 무상태를 유지한다.

  • 구성

자원 : URL - 우리가 관리하는 모든 것

행위 : Method

표현: JSON, XML 등

 

 

 

과제 진행 사항

 

게시글에 해당하는 /post 의 CRUD를 모두 작성하였다. DB는 MongoDB를 사용하였으며 해당 schema는 다음과 같다.

 

또한, 각각의 정보 표시는 다음과 같다.

전체 post 출력 / 새로운 post 생성
상세 post 확인 / post 업데이트

 

post 삭제 / 해당 post가 존재하지 않는 경우 에러 메세지 출력

 

중간에 오류 console log가 너무 길어 어느 곳에서 에러가 나는지 확인하기 어려웠었다. 따라서 전에 배운 try catch 문을 통해 오류 메세지에 해당하는 내용만 출력하여 보려 했었고, 그 결과 mongoDB에서 자동으로 만들어주는 _id는 24bit의 문자열로, 해당 문자열 길이만큼을 주지 않는다면 find함수 등에서 에러를 발생시킨다는 것을 알았다. 그래서 오류 제어를 할 때 parameter로 주어진 값이 string 24bit인지 먼저 확인하는 제어문을 하나 더 추가하여 그 경우를 미리 에러로 send하게 하고 그 뒤에 다시 DB에 접속하여 해당 id값에 해당하는 데이터가 있는지 찾도록 하였다. 그렇게 하니 어떤 문자열이 들어와도 정확한 값이 있을 때만 성공, 그 외에는 실패를 잘 출력하는 것을 확인할 수 있었다.

 

내일은 각 게시글에 해당하는 댓글 생성, 조회, 수정, 삭제를 제작할 예정이다.

728x90

'javascript+node.js' 카테고리의 다른 글

11/6 노드 입문 수업 4  (0) 2023.11.06
11/3 노드 입문 수업 3  (1) 2023.11.03
10/31 node 입문 수업 1  (0) 2023.10.31
10/30 팀 과제 5  (0) 2023.10.30
10/27 팀 과제 4  (0) 2023.10.27

댓글