TIL 32일차 - node 숙련주차 시험, 팀 과제, 챌린지 과제 결과

박찬웅·2023년 3월 9일
0

항해99

목록 보기
37/105

23년 3월 9일

배운 것

오늘은 숙련 주차에 시험이 있어서, 시험을 보았고, 그리고 나서 팀 과제를 하였다. 그리고 개인과제 LV3 마저 추가적으로 도전하였다.

시도 한 것

숙련 주차의 시험은 상당히 어려웠었다. 총 5문제가 출제 되었는데, 이미 만들어진 전체 코드에서 질문 중 작동 안되는 것들이 있었는데 그것을 고치는 문제였다.
첫번째 문제는 모든 라우터가 연결이 안되어서 routes 폴더의 index.js에 가서 수정하면 간단하였다.

const commentsRouter = require("./comments");
const usersRouter = require("./signup");
const authRouter = require("./login")
const likesRouter = require("./likes")

const router = express.Router();

router.use('/posts', [postsRouter, likesRouter]);
router.use('/comments', [commentsRouter]);
router.use('/signup', [usersRouter]);
router.use('/login', [authRouter]);

다음과 같은 코드를 입력해서 라우터를 만들면 해결되었다.

두 번째 문제는 request 요청이 전혀 안되었다. 이부분도 간단하였다. app.js에서 app.use(express.json()) 추가를 하면 간단한 문제였다.

세 번째 문제는 쿠키를 받지 못하는 오류가 있었다. 근데 역시 이것도 app.js에서 app.use(cookieParser()); 추가를 하면 간단한 문제였다.

이 세문제를 풀고 나머지 두 문제는 끝내 풀지 못하였다. 우선 네 번째 문제는 로그인을 하고 나서 jwt 인증 에러가 나는 것이였다. 이 문제의 해답은 미들웨어와 로그인 api에서 받은 키 이름이 동일해야 했다. 그래서 이거는 나중에 저녁 세션을 통해서 해결하였다.

const token = jwt.sign(
      { userId: user.userId },
      'Secret Key', // 4번 답 일치해야 함
      { expiresIn: '180d' }, // 로그인 성공 후 10초 후에 로그아웃되버려서 시간을 늘리는게 좋음 (10s < 180h로 변경)
    );

미들웨어에 있던 것은 'Secret Key' 였는데 로그인은 다른 이름으로 바뀌어 있어서 똑같이 바꿔주었다. 이거만 하면 일단은 정답인데 한 가지 또 다른 문제는 로그인 후 만료가 10초뒤에 자동 로그아웃되서 그래서 저거를 180d로 바꿔주면 180일동안 로그인이 유지되게 했다. 물론 실제로는 저렇게 너무 오랫동안 하면 안되지만 저렇게 바꿔주면 더 편하게 api 테스트를 할 수 있었다.

마지막 문제는 허를 찌르는 문제였다. 좋아요 기능이 안되는 기능이였는데 이것은 호이스팅으로 코드를 순서를 뒤 바꾸고 함수식으로 표현을 하면 되었다. 이거는 스압이 커서 글로만 설명하였고 이 문제 또한 풀지 못했던 문제였기 때문에 이렇게만 간단히 언급하고 시험을 마무리 하였다.

그리고 나서 팀 과제를 했는데 숙련 주차에서 배웠던 개념들을 정리하였다. 주로 용어들이였다면 Sequelize, migration, model, 관계형 데이터 베이스, RDBMS, NOSQL 등등 이런것들을 정리하는 개념을 가지고 마무리 하였다.

마지막으로 남은 기간동안 챌린지 과제를 하긴 했는데 결론적으로 말하면 우선 구현 자체는 다 끝났다. 하지만 게시글 수정, 삭제 할때 다른 아이디로도 로그인 해도 남의 게시글을 삭제 할 수 있는 치명적인 오류를 발견하였는데 결국 이걸 구현하지 못한 상태로 마무리 되었다. 이 부분은 아쉬웠지만 그래도 MYSQL 설정 하는 것은 해냈기 때문에 이 정도면 나름 최선을 다하지 않았나 생각하면서 이번 한 주를 마무리 하였다.

해결

퀴즈는 5문제에서 3문제를 풀었고, 개인 챌린지 과제였던 LV3 과제는 8~90퍼만 완성하고 미완성작으로 종료하게 되었다. 아래에는 LV3 과제 깃허브 링크이다.
시퀄라이즈를 이용한 게시판 프로젝트

알게 된 점

오늘까지 숙련 주차를 마무리 하게 되었다. 물론 목표치였던 LV2 개인과제는 성공적으로 마무리 하였고, LV3 개인과제까지 도전해봤으나 결국 끝내 완벽하게 구현하지 못한 상태로 끝나서 아쉽게 되었다. 하지만 그래도 sequelize의 개념도 더 정리 할 수 있었고 그래도 어떻게 굴러가는지 조금이라도 이해하면서 마무리 되었기 때문에 후회되지는 않았다. lv3까지 완벽하게 구현한사람은 내가 하고 있는 주특기에서는 반도 안되었기 때문에 대부분은 lv3 도전하다가 미완성 했거나, lv2 겨우 과제 마무리 한사람도 있었기에 포기하지 않고 할 수 있는 데 까지 구현을 했기 때문에 후회되지는 않는다. 그래도 약간 미완성작으로 남은건 아쉬웠다. 오늘 TIL는 뭔가 간단하게 작성하였는데 한주 마무리 하는 과정이라서 그런지 세션 강의나 기존에 만났던 팀원들이랑 간단한 얘기를 나누는데 조금 시간을 써서 그런지 오늘 빡빡한 일정을 해서 짧게 쓴 것 같다.

앞으로 할 일

드디어 숙련주차를 마치고 내일부터는 주특기의 마지막 주인 심화 과정을 배우게 된다. 역시 새로운 개념이 또 나오긴 하지만 이제 마지막 주특기 배우는 과정이기에 새로운 강의도 이해 할 수 있길 바란다.

profile
향해 13기 node.js 백앤드

0개의 댓글