프로그래머스 풀스택 15
posted on 04 Sep 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(6)
💫 HTTP(규약) Method(목적)
POST: 데이터 생성(등록)
ex) 회원가입 = 나 좀 등록해줘 = id, password, name, email, contact
GET: 데이터 조회
ex) URL로 데이터 보냈는데?
PUT: 데이터 수정(덮어쓰기)
ex) 회원정보 전체 수정(PUT를 통해 해당 리소스를 수정)
PATCH: 데이터 수정(일부 수정)
ex) 회원정보 일부 수정(Update에 가장 가깝게 쓰임)
DELETE: 데이터 삭제
HEAD: 서버 리소스의 헤더(메타 데이터의 취득)
OPTIONS: 리소스가 지원하고 있는 메소드의 취득
CONNECT: 프록시 동작의 터널 접속을 변경
TRACE: 웹 서버로 가는 네트워크 경로를 체크
💫 오류가 나는 이유!
API 입장에서는 POST로 개인정보를 주소값으로 받으면 큰일남..ㅎ
URL로 id, password, name, email, contact 등을 보내지않고 숨겨서 보낼 것임 -> HTTP 바디 부분에 숨김
웹 브라우저에는 바디에 데이터를 숨길 수 없으니까 URL로 받을 수 있는 GET만 사용
POST = 데이터가 바디에 같이 숨겨져와야만 POST 인줄 앎.
그래서 POSTMAN 프로그램을 통해 구현가능!
💫 POSTMAN이 나온 이유
POST의 경우 html 클라이언트에서 form, 버튼, 이벤트, 이벤트 등록, 등등등… 백엔드를 구현하기 전 미리 만들어놓아야 하는 것들이 있음. 그럼 백엔드가 프론트엔드가 구현되기를 기다려야하는 상황이 발생. => 이러한 단점들을 개선하기 위해 POSTMAN 등장!
💫 <GET 실습>
💫 <GET 실습>
💫 <POST 실습>
Request, Response 영역이 구별되어있음!
💫 <app.js 파일 부분>
app.use(express.json())
app.post('/test', (req, res) => {
//body에 숨겨져서 들어온 데이터를 화면에 나타내줄 수 있음!
console.log(req.body)
res.send('')
})
💫 <실습>
app.post('/test', (req, res) => {
console.log(req.body) //이 부분을 message만 받아주기 위해
res.send('')
})
app.post('/test', (req, res) => {
console.log(req.body.message) //.message를 추가하여 내용만 추출한다.
res.send('')
})
app.post('/test', (req, res) => {
console.log(req.body.message) //.message를 추가하여 내용만 추출한다.
res.send(req.body.message) //여기도 req.body.message추가하면 POSTMAN에서 볼 수 있음!
})
app.post('/test', (req, res) => {
//body에 숨겨져서 들어온 데이터를 화면에 나타내줄 수 있음!
console.log(req.body.message)
res.json(req.body) //json으로 바꾸면 body를 받은 걸 돌려주면 됨!
})
✨POST를 활용해서!! 유튜버 추가하기
<API 설계 (URL, method)>
🌟 0. 전체 유튜버 “조회” GET /youtubers/
💫 <실습>
res.json({
message : db.get(4).channelTitle + "님, 유튜브 채널 생성을 축하합니다!"
})
💫 <고도화하기>
res.json({
message : `${db.get(4).channelTitle}님, 유튜브 채널 생성을 축하합니다!`
})
let db = new Map()
let id = 1
db.set(id++, youtuber1)
db.set(id++, youtuber2)
db.set(id++, youtuber3)
//...(생략)
db.set(id++, req.body)
db.set(id++, req.body)
res.json({
message : `${db.get(id-1).channelTitle}님, 유튜브 채널 생성을 축하합니다!`
})
💫 <실습>
app.get(/youtubers, function (req, res) {
//req:X
res.json({
message : "test"
})
})
💫 <실습>
💫 stackoverflow
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
post는 웹브라우저로 테스트X / postman get, post 실습
W 배운 점과 시사점 :
GET, POST 주고받는 연습을 POSTMAN을 통해 더 연습하기!
T 응용하여 배운 것을 어디에 어떻게 적용할지:
POSTMAN을 사용해 다른 사람들과 협업하기 쉬워질 것이고, REST API를 표현하기 매우 간단할 것임!