프로그래머스 풀스택 16
posted on 05 Sep 2024 under category programmers in series programmers
백엔드 기초: Node.js + Express 기본(7)
💫 forEach문
app.get('/youtubers', function (req, res) {
db.forEach(function(youtuber) {
console.log(youtuber)
})
res.json(db.values())
})
💫 Map to JSON에서 JSON.stringify() 메서드 사용
let detail = new Map()
detail.set('Name', 'Lora');
detail.set('Country', 'England');
detail.set('Age', '24');
let jsonObject = {};
detail.forEach((value, key) => {jsonObject[key] = value});
console.log(JSON.stringify(jsonObject))
detail.forEach((value, key) => {jsonObject[key] = value});
console.log(JSON.stringify(jsonObject))
<실습>
프론트엔드에서 키가 1, 2, 3, 4, …순으로 데이터를 받아서 쓸 수 있음!
💫 forEach문
예시 1. <기본 형태>
배열이름.forEach(function(i){
console.log(i);
});
예시 2. <화살표함수>
배열이름.forEach(i => {
console.log(i);
});
예시 3. <forEach문 만드는 법>
배열이름.forEach(요소이름 => {
실행문(요소이름)
});
<실습>
const arr = [1, 2, 3, 4, 5]
arr.forEach(function(a, b, c) {
//매개변수 순서 : 데이터, 인덱스, 객체 전체 출력
console.log(`a : ${a}, b : ${b}, c : ${c}`)
})
💫 Map + forEach문
<실습>
let map = new Map()
map.set(7, "seven")
map.set(9, "nine")
map.set(8, "eight")
map.forEach(function(a, b, c) {
console.log(`a : ${a}, b : ${b}, c : ${c}`)
})
💫 map 함수(메소드)
💫 forEach()
기본 형태
배열이름.forEach(요소이름 => {
실행문(요소이름)
});
💫 map()
기본 형태
배열이름.map(요소이름 => {
실행문(요소이름)
});
💫 유튜버 데모 업그레이드!
✨POST를 활용해서!! 유튜버 추가
✨NEW!! DELETE를 활용해서!! 유튜버 삭제
<API 설계 (URL, method)>
🌟 0. 전체 유튜버 “조회” GET /youtubers/
<실습>
이해하기 쉽게
성능 고려
안정성
=> 클린 코드를 가질 수 있게 됨!
클린 코드(Clean Code)란? : 읽기 쉽고, 이해하기 쉬운 코드 / 리팩토링으로 만들 수 있는 좋은 코드
💫 리팩토링은 언제 하지?
에러(문제점)이 n회 발견됐을 때, 리팩토링을 해야함.
리팩토링을 하면서 에러(문제점)를 발견 가능
기능을 추가하기 전,
ex) API URL “설계” 수정
코드 리뷰할 때
리팩토링을 하면 안되는 시점! : ✨배포, 운영 직전✨ 절대 코드 수정X
아이콘 TIP
직육면체 : 변수, 필드, 프로퍼티(자바스크립트)
정육면체 : 함수, 메소드
💫 <실습>
<고도화하기!>
let youtuber2 = {
channelTitle : "TheWeeknd",
sub : "3560만명",
videoNum: "176개"
}
💫 <실습>
✔ 1XX: Informational(정보 제공)
임시 응답으로 현재 클라이언트의 요청까지는 처리되었으니 계속 진행하라는 의미.
✔ 2XX: Success(성공)
클라이언트의 요청이 서버에서 성공적으로 처리되었다는 의미.
✔ 3XX: Redirection(리다이렉션)
완전한 처리를 위해서 추가 동작이 필요한 경우. 주로 서버의 주소 또는 요청한 URI의 웹 문서가 이동되었으니 그 주소로 다시 시도하라는 의미.
✔ 4XX: Client Error(클라이언트 에러)
없는 페이지를 요청하는 등 클라이언트의 요청 메시지 내용이 잘못된 경우를 의미.
✔ 5XX: Server Error(서버 에러)
서버 사정으로 메시지 처리에 문제가 발생한 경우. 서버의 부하, DB 처리 과정 오류, 서버에서 익셉션이 발생하는 경우를 의미.
Y 일을 통해 명확히 알게 되었거나 이해한 부분(한 일)에 대해 정리 :
forEach문과 Map()차이, 예외처리, 리팩토링, HTTP Code
W 배운 점과 시사점 :
forEach문과 Map()차이 : forEach문은 return 값 X, Map은 return 값 O
HTTP Code를 통해 페이지의 동작을 확인할 수 있게 됨!
T 응용하여 배운 것을 어디에 어떻게 적용할지:
forEach문과 Map()을 적절하게 사용하여 프로그램을 보다 효율적으로 짜고, 예외처리와 리팩토링을 항상 명심해두고 코드를 짤 것이다!