이번주에는 미니프로젝트를 완성했다.
C(Create)생성
R(Read)읽기
U(Update)갱신
D(Delete)삭제
의 단계를 다시한번 복습하고, 구글링으로 프로젝트에 필요한 세세한 실용적인 코드들을 알아보는 시간이었다.
첫 날에 POST를 이용한 등록기능을 완성했다.
첫 날은 어려운게 없었지만 API명세를 제대로 쓰지 못한건이 부족했던것 같다.
메소드에 동사가 이미 표현되어있기에 route이름은 동사가 들어가지 않게 유저소개 창에서도 introduce가 아닌 introduction으로 사용했어야 했다. 추후 바꾸긴 했지만 처음부터 제대로 정하고 작업했다면 헷갈릴 일이 없었을 것,
그리고 GET ,POST, PUT등 메소드마다 route이름을 다르게 했었는데, route이름도 메소드가 다 다르다면 같은 이름으로 맞춰주는게 더 헷갈리지 않을 듯 하다.
두번째날에는 상세페이지의 html뼈대를 잡고, 댓글기능을 완성했다(삭제빼고)
두번째날에는 슬슬 기능이 틀이 잡히기 시작했던것 같다. 원래 댓글 출력과 수정기능은 GET과 UPDATE의 영역이었지만, 숟가락을 좀 얹었다. 해당 날에는 백엔드보다 프론트가 나에겐 더 어렵게 느껴진다고 생각했으며 난 정말 디자인에 재능이 없다고 생각했다.
해당날에 mongoDB에서 제공해주는 ObjectID값을 사용하는 방법을 배웠다. _id값을 가지고와서 수정과 삭제를할 때 해당 데이터를 특정할 수 있었다.
세번째날에는 페이지이동시 데이터를 가지고 이동하는 법과 페이지 GET요청 로딩부분을 팀원을 도와 해결했다.
페이지를 이동할 때 유저의 _id값을 가지고이동해서 누구의 댓글을 보여줘야하는지 어떤 유저의 데이터를 화면에 뿌려줘야하는지를 판단하도록 만들어주었다.
localStorage를 이용했는데, local장소에 데이터를 저장해주는 함수이다. 키값과 데이터를 전달해주면 다른 페이지에서 꺼내 쓸 수 있다.
원래는 스트링쿼리(String Query)를 사용하는게 맞았지만, 다 만들고 발표 직전이 되어서 그 존재를 알았기 때문에 수정하지 못 했다...
다음번에 프로젝트를 하게되었을 때는 꼭 스트링 쿼리를 써볼 생각이다.
넷째날에는 팀원을 등록하는 html페이지를 재활용해 수정페이지로도 쓸 수 있게 만들어주고, 댓글을 유저별로 나누고, 팀원들 코드를 합쳤다.
등록 페이지를 수정페이지로 공유할 때는 정보가 페이지를 넘어 올때 유저가 수정을 위해 넘어온건지, 등록을 위해 넘어온건지 판단할 수 있는 변수를 localStorage로 같이 넘겨주어 if문으로 실행될 구문을 나눠주었다(등록, 수정)
그리고 댓글을 유저별로 나눈 방법은 댓글을 DB에 저장할 시, 해당 페이지의 유저의 _id값도 str형으로 같이 저장해준다.
이렇게 해주면 어떤 유저의 댓글인지 알 수 있다.
여기에서 조금 실수가 있었는데, server에서 python을 이용해서 id를 비교해서 DB에서 가져올 방법이 없었을까 싶다.
js를 이용해서 반복문을 돌면서 비교를해서 좋은코드는 아니었던것 같다.
그리고 팀원 코드를 합칠 때의 일인데, 이게 개발하고있는 버전이 다르다는게 무슨 뜻인지 딱 알 수 있었다.
수정하고 확인해야할 부분이 다른 팀원들한테 코드를 받을 때마다 있어서 모든 코드를 합치는 사람이 통채로 이해하고있어야만 제대로 할 수 있는 작업이었는데.. 진짜 git이 필수라고 느낀 순간이었다. 다음엔 꼭 git 사용법을 알아서 git을 이용해서 프로젝트를 진행하고 싶다.
프로젝트 마지막날에는 발표자로 뽑혀서 발표준비를하고, 팀원들과 KPT도 하고, 튜터님에게 발표하고 피드백도 얻어볼 수 있는 값진 시간이었다.
발표준비는 ppt를 준비하거나 노션정리를 빡세게 한다거나 한건 없었고, 정리하면서 프로젝트에 쓰던 노션을 이용해 설명하고 코드를 보며 발표를 진행했다. 튜터님이 발표가 길다는 얘기를 해주셨고(다음엔 좀 짧게..) 그리고 대체 이미지에대한 피드백을 해주셨는데, 대체이미지를 나는 js코드에서 백그라운드 이미지를 바꿔줄 때 없으면 쉼표뒤에 이미지를 출력하도록 만들었는데, 대체 이미지같은건 서버쪽에서 관리해주는게 더 좋다고 한다...(감사합니다 꼭 다음엔 서버로...)
그리고 KPT라는걸 팀원들과 진행했는데 KPT는 (KeepProblemTry)의 약어로 이대로 둬서 좋은것(잘한것) 문제였던것(고쳐야할 것) 시도해볼것 으로 3가지이다.
아무래도 가장 큰문제는 역시 협업경험이 부족하고, html과 css의 경험부족이지 않을까 싶다. 시도해볼것은 앞서 설명한 잘못한 부분들을 다음 프로젝트에선 새로운 방법으로 시도해볼 계획이고 git도 사용해볼 예정이다.
이상 내일배움캠프 첫주 미니프로젝트 WIL을 마치겠다.
개발일지
1일차 : https://codeplace.tistory.com/33
2일차 : https://codeplace.tistory.com/35
3일차 : https://codeplace.tistory.com/36
4일차 : https://codeplace.tistory.com/37
5일차 : https://codeplace.tistory.com/38