(노드 숙련편 개인 과제중)
과제의 app.js 파일에서 전체 코드를 어떤 순서로 배치해야 하는지 기존의 강의 코드들을 연구해보았다. 특히 미들웨어들(application 레벨, router레벨, 그냥 함수로서의 로그인 인증 미들웨어)의 배치 순서를 고민했는데 나름 깔끔하게 결론이 난 것 같아 만족스럽다. 1번 모듈 임포트(require)부터 5번 로그인 인증 미들웨어 배치까지 순서가 있는데, 내일 회원가입과 로그인 route만 잘 만들면 큰 줄기는 끝이겠다.
- express.json()과 express.urlencoded()의 공통점과 차이점, 용도를 간단하게 정리해보았다. 기본적으로 둘 다 PUT과 POST 요청시에 body로 전달되는 데이터를 받아 처리하는 데 쓰이는 body-parser이며, 각각 요청 헤더의 Content-Type이 application/json일 때와 application/x-www-form-urlencoded 타입일 때 필요하다. application/json 타입이란 {key: value}의 형태로 body의 페이로드가 전달되는 것을 말하고, application/x-www-form-urlencoded 타입이란 key=value&key=value의 형태로 페이로드가 전달되는 것을 말한다.
- 미들웨어는 위에서부터 순차적으로 실행된다고 배웠다. 그런데
app.use(”/api”, router1)
이라는 코드를 제일 아랫줄에 적어도 더 윗줄의router1.get()
,router1.post()
등이 멀쩡히 실행되는 이유는, 저 전역 미들웨어로 router1이 불렸을 때 router1의 첫 루트들부터 또 아래로 순차적으로 탐색을 해나가는 방식이기 때문이었다. 즉, 순서가 중요한 게 맞는데 router1 루트들은 “/api를 포함하는 경로로 진입했을 때” 자기네끼리만의 순서대로 처음부터 탐색이 이루어지게 되기 때문에 괜찮은 것이다.
오늘은 github 사용법에 대해 최대한 쉽고 친절하게 설명해주는 게릴라 특강을 따라가 들었다. 딴 짓 안하고 열심히 노트 정리하면서 들었는데 진짜 천천히 진도가 나가는 것 같다가도 2시간이 훅 갔다. 그리고 집중했었는지 끝나니까 강의가 없는 날보다 확실히 피로가 더했다. 과제의 완성을 미루고 선택한 시간이었는데 일단 반절은 유익했다고 생각한다. 나머지 반절의 유익은 내가 어떻게 전에 공부했던 git, github 관련 내용과 연결짓고 정리하고 더 연습해보느냐에 달렸겠지.
아아 github 처음 초청 강의 들었을 때 너무나 쏙쏙 이해가 돼서 ‘나 깃 다 알겠어!’ 이러고 좋아하던 잠깐의 시간이여..! 좋았던 시절은 꿈처럼 지나가고 그 뒤로 브랜치 pull과 merge 과정이 이해가 안 돼서 지금까지 애 먹고 있는 차가운 현실에 너를 다시 불러본다… 오 하지만 잡히지 않는 과거여 과거는 뒤로 하고 무지를 타파한 새 미래를 향해 가는 수밖에 없겠구나
밤 늦고 피곤하니 정신줄이 느슨해진 것 같다. 얼른 자야지
Uploaded by N2T