백엔드

패스트캠퍼스 챌린지 4일차 - API 서버 만들기

꾸준이 2021. 9. 9. 23:40

0. 공부기록 인증샷

오늘은 회사 미팅이 늦게 끝나서 공부 시작이 좀 늦었다...

ch05의 경우에도 마찬가지로 이미 한번이상 봤기 때문에

그냥 눈으로 보면서, 그리고 이미 알고 있는 내용은 기록하지 않을 예정이다!
혹은 알고 있지만 그래도 기록이 필요하다 생각하면 정리할 것이다😀

 

공부 시간 : 2200 ~ 23:40

1. API 세팅과 테스트 - 프로젝트 목표는 블로그 만들기

HTTPie 로 테스트를 진행할 수 있음.

근데 그냥 POST man 사용하는게 편할듯.

 

또한 Express 과 같은 라이브러리를 사용하는 것이 아니라서,
url -> req.url (url 값 읽기) 분기처리시에 스위치를 사용하거나 해야함.

 

분기처리시 URL에 따라서 분기처리를 할 수도 있음.
자바스크립트에서는 정규식을 사용하는 것이 하나의 방법임.

 

정규식 사용법

-> // 안에 입력 

-> ^ : 시작하는 부분,  $ : 끝나는 부분

 

정규식 예시 post/:postid

req.url && /^\posts\/[a-zA-Z0-9-_]+$/.test(req.url)

 

 

 

2. 정규식을 이용해서 URL path 가져오기

정규식 캡처그룹 활용 ()

exec를 통해서 정규식의 자세한 결과 가져오기

// 아래는 그냥 정규식을 활용하는 것.
const POSTS_ID_REGEX = /^\posts\/[a-zA-Z0-9-_]+$/

// 아래는 정규식의 캡쳐그룹:괄호 까지 활용하는 것
const POSTS_ID_REGEX = /^\posts\/([a-zA-Z0-9-_]+)$/

~~~

POSTS_ID_REGEX.test(req.url)	// 불리언 값을 리턴함
POSTS_ID_REGEX.exec(req.url)	// 어떤식으로 맞았는지도 자세하게 알려줌

// 캡쳐그룹을 활용하면 그 부분의 데이터만 가져올 수 있음.

 

 

3. JSDoc 를 활용해서 타입 세이프티 활용하기

주석을 활용한 타입 검사

@ts-check 를 활용해서 JSDoc 를 자동으로 불러와서 사용가능

// @ts-check

/**
* @typedef Post
* @property {string} id
* @property {string} title
* @property {string} content
*/

/** @type {Post} */
const examplePost = {
	id : 'abc',
	title : 'abc',
	content : 'abc',
}

--->>>> 이런식으로 데이터 타입을 확인할 수 있음.

 

4. API완성하기

find 메소드 활용하여 원하는 값 찾기

const post = _posts.find(_post => _post.id === postId)

 

 서버 -> 클라이언트 : 

header를 통해서  데이터에 대한 정보를 포함해서 보낼 수 있음 (컨텐츠 타입이나, 인코딩 정보 등)

 

5. 함수의 @ts-check 참고

 

오늘 들었던 수업의 경우에는 이미 알고 있거나 아직은 필요없다고 생각하는 내용들은 제외 했다.

그래서 좀 널널하다.

여튼 Node의 기본 기능을 활용해서 포스트를 작성하고 조회하는 것을 배울 수 있는 과정이었다.

 

환급 챌린지 (4/30)

 

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.

https://bit.ly/37BpXiC

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기 #한번에끝내는Node.js웹프로그래밍초격차패키지