오늘 수업 내용 📚
- API 실습 - DELETE와 PUT
- forEach와 Map
- 예외처리
- 리팩토링
- http status code
오늘 수업을 통해서 깨달을 바가 있다 하면 바로 예외 처리였습니다. 혼자 작업하던 코드들을 살펴보면 전부 예외처리가 거의 없었기 때문입니다. 그래서 기존에 작성한 코드들을 전부 예외처리를 추가해 보았습니다.
특히 개별조회, 삭제, 수정일 때 발생하는 에러가 줄어든 걸 확인을 했습니다. 이를 통해서 기존에 작업한 코드들 도 마찬가지로 차근차근 바꿔보려 합니다. 또한 앞으로 작업할 코드들도 최대한 예외적으로 발생할 일을 생각하여 예외처리를 해보도록 하려고 합니다.
그리고 예외처리를 하면서 어디까지 코드를 줄여야 하는 것일까 생각을 해보았습니다.
app.put("/youtubers/:id", (req, res) => {
let id = req.params.id;
id = parseInt(id);
const newTitle = req.body.chennelTitle;
if (!db.has(id)) {
msg = "존재하지 않는 유저입니다.";
} else {
const youtuber = db.get(id);
const oldTitle = youtuber.chennelTitle;
youtuber.chennelTitle = newTitle;
db.set(id, youtuber);
msg = `${oldTitle}님, ${newTitle}로 변경이 완료되었습니다.`;
}
res.json({
massage: msg
});
});
app.put("/youtubers/:id", (req, res) => {
let id = req.params.id;
id = parseInt(id);
const newTitle = req.body.chennelTitle;
if (!db.has(id)) {
msg = "존재하지 않는 유저입니다.";
res.json({
massage : msg
})
return
}
const youtuber = db.get(id);
const oldTitle = youtuber.chennelTitle;
youtuber.chennelTitle = newTitle;
db.set(id, youtuber);
msg = `${oldTitle}님, ${newTitle}로 변경이 완료되었습니다.`;
res.json({
massage: msg
});
});
수업 코드의 일부를 가져와 보았습니다.
위아래 동일한 코드를 뜻하는데요, A코드와 B코드 나름 예외 처리를 진행한 코드들입니다. 이때 A코드와 B코드를 보면서 어느 게 정답이라 할 수는 없겠지만 A코드는 최대한의 중복을 없앤 느낌이라면, B코드는 중복은 존재하지만 조금 더 간결하다는 느낌을 받았습니다. if.. else 가 하나면 다행이지만 여러 개인 경우에는 가독성이 떨어지기 때문입니다. 이때 중복을 없애는 방향으로 가는 게 좋은지 그래도 early return을 통해서 코드의 가독성을 높이는 방향으로 정해야 할지 고민이 생겼습니다.
'프로그래머스 데브코스 > TIL' 카테고리의 다른 글
[Day 23] 웹 풀사이클 데브코스 TIL (0) | 2023.12.15 |
---|---|
[Day 22] 웹 풀사이클 데브코스 TIL (0) | 2023.12.13 |
[Day 20] 웹 풀사이클 데브코스 TIL (0) | 2023.12.11 |
[Day 19] 웹 풀사이클 데브코스 TIL (0) | 2023.12.08 |
[Day 18] 웹 풀사이클 데브코스 TIL (0) | 2023.12.08 |