# 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 패턴에 대해 고민이 많았는데 함께 얘기해 볼 수 있어서 좋았습니다~!) - 조항래 - 많이 배웠습니다. 커밋이나 구조나 파일 관리등 많이 자극 받았습니다. - 코드리뷰 조금 더 길었으면 좋았을 거 같습니다 ㅠㅠ - 너무 구조화에 신경 쓰느라 구현이 미흡했습니다. - 구현하고 리팩토링하는 식으로 짜볼것 - 미들웨어 잘 사용해보기..