# Week3 피어 세션
> 참여자 : J003 강동훈, J069 문예은, J186 정수원, J196 조항래
## 활동 목적
- 한 주 되돌아보기
- 배울 만한 점 배우기
## 진행 순서
- 커밋 브리핑
- 시연
- 코드 리뷰
## 커밋 브리핑 / 시연
##### J003 강동훈
- 일단 개발을 너무 못했다...명세서의 단어가 아는게 뭔지 파악하는거부터 시작했기에!
- 커밋 컨벤션 꾸준히 잊지않고 하기
- 웹팩 모듈 번들러? fe를 어떻게 해야할지 들어볼 수 있었다.
- 순서 정렬하는걸 어떻게할지를 고민할 수 있었다. 나만 머리가 안돌아가는 줄 알았는데 아니였다. 다행
- issue 등록 해야하는데 잘 안된다...ㅠㅠ
- http 메서드를 용도에 맞게 잘 사용하고 있을까?에 대한 고민을 해볼 필요가 있다
##### J069 문예은
- 예외 처리 해야할 부분이 너무 많다. 기능 구현이 끝났다고 끝난게 아니고...그 때부터 시작인 것 같다.
- 세세하게 이슈 등록 해놓자....
##### J186 정수원
- 다른 분들 진행 속도보고 놀랐다! 다들 빠르시구나..
- 이번엔 이슈등록을 전혀 못했다, 이슈 태그하는 게 멋진 커밋인데 여유가 없어서 못했다...
- 커밋 메세지를 한글로 쓰기로 했는데 한/영 변환이 귀찮아서 자꾸 영어를 쓰게된다
- 문제는 가독성이 떨어지고 맞는 문법인지 모르겠다는 것... 🙄
- post man 사용법을 제대로 알고 api 호출 테스트를 효율적으로 하자..
- 사실 그거 없이도 테스트를 어찌저찌 해오긴 했다. 로그띄우면 되잖아요 ㅠㅠ
- 시간 없음, 프론트엔드 과제가 할게 많음을 이유로 넘어간 구현 옵션들
##### 196 조항래
- 다른 분들의 커밋을 보고 많이 배웠다. 다음주부터 따라해보기
- 꼼꼼한 commit과 pr을 보니 다른 사람의 작업이라도 쉽게 흐름을 파악할 수 있었다.
- 주말에 api다 완성하기
- 프론트, 백앤드 분리 고민해보기
## 코드 리뷰
##### J003 강동훈
- (정수원)
- card router에서 get('/')을 쓸 일이 없다면 코드 자체를 지워도 괜찮지 않나요?
- 백/프론트 디렉토리를 아예 나누면, 백엔드 /public은 없어도 되겠죠?
- 정확히 설명이 될 진 모르겠지만, DB model을 sql문으로 가져올 때, 프로미스 객체로 받아오셔야 할 것 같아요.
- mysql2는 promise를 .promise()로 지원한다고 해요, 알아보시면 좋을것같아요!
- 세명이 같은 이슈를 동시에 얘기하고 있네요 ㅋㅋ 얘기해볼만한 이슈인것같아요
- 소소한 팁은 `db/DB.md`처럼 sql문을 기록해두시고 싶다면 마크다운 대신 `DB.sql` 확장자로 바꿔보세요, 신텍스 에러도 확인할 수 있고 가독성이 좋답니다.
- (문예은)
- card에서 key라는 것이 card를 구분하는 pk 같은건가요?
- mysql db 커넥션 하실 때mysql.createConnection 보다 mysql.createPool로 하면 request 가 많아질 때 메모리와 속도면에서 더 좋다고 합니다!
- 참고로 커넥션은 연결이 들어올 때마다 연결 객체?를 생성하는 방식이고 커넥션 풀은 미리 커넥션을 만들어놓고 만들어진 풀에서 가져다 쓰는 방법입니다..!
- (조항래)
- 전반적으로 const, var 혼용
- model에서 db.query(query)를 프로미스로 반환하는 것도 있고 안하는 것도 있음 => 이거를 이어받는 controller에서도 async await 패턴을 쓰고 있는데 통일하는 것이 좋을 것 같습니다.
##### J069 문예은
- (강동훈)
- README 저도 열심히 적어야겠어요..잘 안되는군요 ㅠ API 문서 링크는 어떻게 확인하나요?
- API라는건 route/index.js 처럼 HTML 코드를 쏴주는 것도 포함인가요?
- try catch 저도 해야겠어요...
- controller 에서 export를 저렇게 한번에 할 수 있군요...!
- status code를 미리 설정해놓고 쏘는거 짱...
- 오늘의 MVP이시네요
- (정수원)
- 아 예은님 코드 찬찬히 뜯어보고 싶은데 오늘 시간이 촉박해서 아쉽네요 ㅠㅠ
- 와 코드 깔끔하네요, 모듈화 굿이에요..
- 인덱스 라우트에서 리터럴 html을 보내신 이유가 있을까요?
- 프론트에서 처리해보면 어떨까유?
- 아하 프론트 할 때 옮겨주실거군요
- 오와 .. `module/statusCode.js` 감탄하고 갑니다..
- 오와아ㅏ...... `module/util.js` 더 크게 감탄하고 갑니다...
- 예은님 MBTI 여줘보면 실례인가요..?ㅎㅎㅎㅎㅎ 우왕..
- (조항래)
- controller에서 res.status하는 경우랑 next() 하는 경우는 어떤 기준으로 구분하신건가요?
##### J186 정수원
- (강동훈)
- todo.js 에서 sql query에 ? 어떻게 사용되는거에요?
- mvc와 service는 어떻게 분류가 되는건가요? service === controller?
- (문예은)
- (조항래)
- session을 관리하고 있는데 cookie에 또 userid와 username을 설정하시는 이유가 있을까요?
##### J196 조항래
- (강동훈)
- 위에 비슷한 질문을 적었었는데 mvc와 service가 어떻게 분류되는 건가요?
- 라우터가 많아요...! 이걸 다 계획 및 설게하시고 실행하는건가요? ㄷㄷㄷㄷ
- (정수원)
- 라우터를 다양하게 나누셨네요!(board, job, list, log ..)
- 각 라우터가 어떤 역할을 하는지 설명해주세요
- (문예은)
- 변수 활용하실 때 const {email, pw} = req.body; 로 바로 사용하면 더 편하게 쓸 수 있을 것 같아요!
## 회고
- 강동훈
- 역시나 피어세션은 아무것도 모르는 저를 엄청 성장시켜주는거 같아요👍 역시 모를 때는 모르는게 뭔지도 알기 어려운 ㅋㅋㅋ
- 오늘의 MVP 는 예은님...덕분에 믿고 훔쳐볼 브랜치가 하나 더 생겼습니다 ㅎㅎ
- 웨 피어세션에서 진행한게 호눅스님이 많이 말씀하고 있죠? 피어세션 쩔어요...ㅋㅋ
- 그러니까요...!! 피어세션 짱
- controller에서 service로 바로 바꿨어요 ㅎㅎ 좋아요
- 정수원
- 우와 예은님 `module/util.js` 역시 호눅스님께 칭찬받았어요 👍🏻
- ㅋㅋㅋㅋㅋㅋㅋ너무 민망합니다...허허😂
- 마크다운이라 하더라도 커밋을 자주하자.... git reset 하다 참고자료 다 날렸다 ㅠㅠㅠ
- express는 ES6의 `import .. from` 을 위한 `export defualt` 를 지원하지 않는다.
- WAS에 대해 무지해서 아주 잘못 코딩할 뻔 했다.
- POST,GET,PATCH,DELETE등의 요청에 대해 제대로 알아보는 계기가 되었다.
- 백엔드 어렵다
- 어려운데 이정도는 알아야 나중에 '프론트 개발 한다' 할 수 있을 수준인 것 같다.
- form 태그의 method 속성은 get과 post밖에 지원하지 않는다.
- 프론드 쪽에서 (공부하고 구현)할 일이 태산이라 백에서 해야 할 log CRUD를 보류했다.
- 프론트에서 이번에 배울 게 많은 데, 백 하다가 프론트를 어영부영 하고 싶지 않았다.
- 둘 다 완벽하게 수행했다면 좋았겠지만, 제한된 시간에서 합리적으로 진행하자!!
- 그래도 나중에 log CRUD 로직 짜기 편하도록 신경써놓았다
- 문예은
- 피어 세션을 통해 여러 꿀팁들을 알아가게 되어 너무 유익한 시간이었습니다.ㅋㅋㅋㅋㅎㅎ
- 이번주는 피어 세션 시간이 짧아서 코드를 세세하게는 보지 못해서 조금 아쉬움이 남네요.
- 공감합니다 ㅠㅠ 아쉬워요!
- 그래도 코드를 보면서 함께 문제들에 대해 고민해 볼 수 있어서 도움이 많이 되었습니다. (특히 MVC 패턴에 대해 고민이 많았는데 함께 얘기해 볼 수 있어서 좋았습니다~!)
- 조항래
- 많이 배웠습니다. 커밋이나 구조나 파일 관리등 많이 자극 받았습니다.
- 코드리뷰 조금 더 길었으면 좋았을 거 같습니다 ㅠㅠ
- 너무 구조화에 신경 쓰느라 구현이 미흡했습니다.
- 구현하고 리팩토링하는 식으로 짜볼것
- 미들웨어 잘 사용해보기..