Wecode - Project 3 (부트캠프)/Project 3 회고

Project 3 - 2차 sprint 중간 회고 [2주 간 공부한 것 링크 첨부]

JBS 12 2023. 10. 18. 20:32

 

아래 포스팅에 첨부된 링크는 
모두 project 3 의 
sprint 1 , 2  수요일 까지 동안
공부하며 업로드 한 것입니다. 

 

 

sprint 2주차 수요일

 

내 메모장 

계속 이렇게 리스트 쫙 적고 

순서 매기며 쳐 내는 중 

 

한거는 또 이렇게 메모 

 

 

 

다 하고 나면, 그 다음에 뭐할지,

그걸 다 하고 나면 또 뭘 할지 

 

이렇게 계속 리스팅 

 

 

회고: 

2차 프로젝트도 내가 완성 못해서 피해줄까봐 욕심 안 내고

3차때도 기능 욕심 내도 되는데, 될까봐 2차로 혼자 하고 

 

 

바로 api 작성보다 

SQL공부부터 했고, 3주 간의 sprint 기간 동안 PM이 일주일 간 공부시간을 줘서 감사했다.

\

그리고 우선 

1차 MVP와 2차 MVP로 나누었는데, 

 

그 중, 2차 MVP를 맡기를 추천했고, 그 덕분에 공부 시간을 벌고 데드라인 압박을 덜 받을 수 있었고

PM이 2차 프로젝트 때 맡았던 주문/결제를 내가 하게 되어, 보다 도움을 나에게 줄 수 있었다. 

\

2차 프로젝트 때, 백엔드 팀원이

SQL을 우선 공부하는 게 좋다고 본인도 그걸 공부 중이라고 해서 

나도 언젠간 해야지 하고 

공부 리스트 중 하나로 넣어뒀는데,

 

3차 프로젝트에서 만난 PM이 본인 학습법을 공유하며,

notion의 학습 자료에 있는 sql 자료를 보며

그대로 터미널에 쳐보면서 학습하고,

foundation  기간에 줬던 과제 1-1,1-2,1-3,1-4와 2-1,2-2까지 하면 

 

그 이후로부턴 공부를 더 이상 안해도 되고, 

일단 모든 걸 다 할 수 있다고 했다.

나는 일단 

CRUD 의 update와 delete를 완성 해야 했고

layered pattern 적용과 sql 을 공부 하고 나서

api 작업에 들어가기로 했다. 그건 빠를 테니까.

흐름만 알고 나면.

 

 

/

실제로,

sql을 공부하니,

 

SQL 복습 - DATA - CRUD 추가/조회/수정/삭제 'Insert/Update/ Delete'

UPDATE 'table name ' SET column=''UPDATE 'table name ' SET column=''멘토님이 보고 감탄하신, 내가 쓴 블로그 참고용 [MySQL] MySQL 명령문 - DDL, DML, DQL, table/post 생성 수정 추가 삭제, Join MySQL 은 SQL 명령문 사용해서

pm-developer-justdoit.tistory.com

 

SQL 복습 - DATA 검색, 조회, 정렬, 필터링, 페이지네이션 ; SELECT, INNER/LEFT JOIN, GROUP BY

*select: 데이터 조회 (전체 목록 페이지 : [전체 데이터 조회] select * from posts [특정 열 조회] select title, content, post_id from posts where post_id= 1 [검색] select title, name, content from posts where content like 'who%' [필

pm-developer-justdoit.tistory.com

2차 프로젝트에서는 생각지도 못한,

페이지 구성을 위해   필요한 코드들이 머릿속으로 그려졌다.

 

전체 목록 페이지에서 쓰이는

겁을 냈던

페이지 네이션과 카테고리 대분류 소분류 , 정렬 , 필터링, 검색도

다 sql의 select 문으로 가능했었다.

 

CRUD, 목록 페이지(pagination, category) - 모두 SQL문 활용이였구나

겨우겨우 하나씩 아무것도 모르고 하다가, sql을 다들 왜 복습해야 한다는지 쭉 처음 기초부터 심화까지 일주일 동안 훑으니까 알겠다. 그리고, 직접 terminal에 작성하며 해보니, 몰랐단 것들도 알

pm-developer-justdoit.tistory.com

 

select 문을 공부하면서,

아예 저 해당 부분까지

chat gpt로 찾아가며 공부했다.

 

 

sql Join만 따로

아래 내용 과제 [SQL복습 ] 과제 foundation 때 대충 했던 [MySQL로 Database 만들기] 1. DDL, DML 사용 (ERD 연결) 이후 프로젝크 3차 하면서 sql 공부하면서 채우게 된 [SQL복습 ] 과제 https://pm-developer-justdoit.tisto

pm-developer-justdoit.tistory.com

 

PM에게 "mysql" vscode 확장자도 배워서 적용하고 

 

vscode - mysql 확장자 사용하기

어느 파일이나 가서, 테이블 명 누르면 들어가진다. database 이름 해당되는 거 클릭하고 눌러서 수정하면, mysql에서 show databases, select * from 하면 수정된 내용이 보인다.

pm-developer-justdoit.tistory.com

다른 백엔드 팀원 *데이터분석 경력 분에게 db beaver도 배우고

 

그래서 어떻게 보면,

project 3 기간에 혼자서 foundatino 때 했던 과정을 공부하며

 

[SQL복습 ] 과제

foundation 때 대충 했던 [MySQL로 Database 만들기] 1. DDL, DML 사용 (ERD 연결) 이후 프로젝크 3차 하면서 sql 공부하면서 채우게 된 [SQL복습 ] 과제 https://pm-developer-justdoit.tistory.com/70 Foundation 2 과제 - sns posti

pm-developer-justdoit.tistory.com

자존감도 많이 떨어지고 의기소침했는데,

오히려 깊게 한번에 많은 걸  공부하고

 

나열했던 to do list들이

한번에 뭉땡이로 쳐 내는 것과 자신감이 붙는 걸 체감했다.

 

\

그 자신감으로 1차 프로젝트 때 만들었던 C, R 에서 

U.D 를 마무리 하고

layered pattern을 CRUD 로 완성하고 나서는

 

routes vs. router

Routes는 클라이언트의 요청 URL 경로와 해당 경로에 대한 처리 로직을 매핑하는데 사용됩니다. 예를 들어, Express.js에서 라우팅은 특정 URL에 대한 핸들러 함수를 연결하고, 해당 URL로 들어오는 요

pm-developer-justdoit.tistory.com

 

layered pattern ; import require

1) 위에 import에서 회색 글씨인 이유는, 아래에서 선언이 안 돼서 그런 거 뿐. 2) module.exports를 { }에 담아서 객체로 보내줬으면, require할 때도 {} 에 담아서 해야 함 \ postRouter.js 에서 { } 에 담아서 pos

pm-developer-justdoit.tistory.com

 

서버 작동을 시켜 보고

오류 를  수정하고,

 

오류 잡는 법

대부분 오류 1. sql문의 백팁 or 쉼표 없거나, 변수명 카멜 케이스 안하거나, 변수 순서 2. 아래 사진과 같이, 위에서 괄호가 하나 더 있거나, 괄호를 안 닫아서인데, 괜히 아래에 괄호/trycatch 필요하

pm-developer-justdoit.tistory.com

 

postman을 돌려보기 위해,

postman에 대한 공부를 하고, chatgpt로

 

[Restful API] - postman으로 통신, 백엔드 코드 확인하는 법

1. postman 데스크탑용 앱 2. api에 따라서 GET/POST/DELETE/PATCH 등 3. http://localhost:${portNumber}/api router 4. BODY - RAW- JSON 설정 5. post, update 등일 경우 body에 보낼 값을 작성 6. 서버 키고, response 를 postman Body의 P

pm-developer-justdoit.tistory.com

 

[Restful API] - postman 에 토큰 header에 담기

[통신할 떄 내기 실제 사용한 방법] CRUD with token ; postman 통신 [postman] Api 주소 createPost, createpost 상관없는지 -> url은 소문자가 법칙 [postman header에 token 담기] Auth에 안 해도 되고 bearer 안해도 되고 Tes

pm-developer-justdoit.tistory.com

주소 적는 법, method 보내고, body json형식으로 적고 보내는 법을 하고 나서,

 

token 있이 보내는 법

token 없이 보내는 법

 

코드를 분리 하고, postman도 각각 시도 했다.

 

그리고 Layered가 안 된 token 있는 코드를 postman으로 보내는 것과

 

CRUD with token ; postman 통신

[postman] Api 주소 createPost, createpost 상관없는지 -> url은 소문자가 법칙 [postman header에 token 담기] Auth에 안 해도 되고 bearer 안해도 되고 Tests 안 해도 되고 environment - global 전역변수 안 해도 되고 Headers

pm-developer-justdoit.tistory.com

 Layered가 된 token 있는 코드를 postman으로 보내는 것을 

postman으로 또 통신했다. 

 

CRUD with token -> layered -> postman 통신 3) **

project 3 시작하기 전 주말부터 한 것 1. CRUD 코드 생성 (app.js 단일) --> 작성 2. CRUD layered pattern 적용 3. CRUD 코드 생성 (app.js 단일) _ (header에서 verify token 코드 주석처리) --> postman 통신 시도 --> 성공 4.

pm-developer-justdoit.tistory.com

 

중간에 middleware layered 도 해보고, 

https://pm-developer-justdoit.tistory.com/263

팀이 초기세팅 만든 것의 layered 버전도 보면서, 내가 직접 개인 저장소에 해보기도 했다.

 

Project 3: 심화된 초기세팅

project 2에, 프론트 2년차이셨던 분이 백엔드 팀에 함께해서 배우게 된 부분 적용 나머지는 모두 아래 링크와 똑같은데, Project 1 - 1일 차: "초기환경" 세팅 [체크리스트] [[ 프로젝트 초기 세팅 체크

pm-developer-justdoit.tistory.com

중간중간 이렇게 블로그로 기록도 남기고, 

github 저장소 관리도 했다. 

 

그러면서 github에 대한 지식까지 가져갔다. !

 

 

github remote repository 저장소이름 변경으로 인한 오류

2시간 이내에 4번이나 난 오류 깃허브 저장소 이름 바꾸고 정리하다보니, repository 주소가 바뀌어 생긴 오류 인 거 같다 그래서, git remote remove 로 원격저장소 연결 끊고 다시 새 주소로 연결 git remo

pm-developer-justdoit.tistory.com

 

github push 오류 해결

보통 clone 할 때에는 git init을 하지 않고, 복사해서 새로운 저장소에만 연결할 경우에는, 아래 두줄만 한다. git remote add origin https://github.com/DeveloperPMYJ/initialSetting_layered.git git push -u origin main 그런

pm-developer-justdoit.tistory.com

 

깃허브; remote에 업로드한 commit 내역, commit 내용 수정

실험해봤는데, 정말 그랬다 로컬에서 commit 후 새로고침 해도 remote에는 commit 숫자가 안 올라간다 깃허브는commit이 많다는게 고수 느낌이 나서 열심히 commit push 해야겠다 i 누르면 insert 나옴 i 한번

pm-developer-justdoit.tistory.com

 

참 부지런한 나 자신! (시간을 보다 많이 투자했다.

점심 저녁 시간 아끼고! 이번엔 처음으로 새벽 4시까지 하고, 시간을 많이 들였다. 

잠 자는 시간도 들이고 체력안배) 

이번에 여러 버전으로 만들면서 연습해본 폴더들
사진의 7개 모두 이번 프로젝트에 추가된 것들 - 개인 저장소에 추가된 여러 파일들

 

이 모든 것들이 다 

sprint 1주차의 목, 금, 일, 월 , 화 일 간 벌어진 일이다.

 

 

PM 도 정말 빠르다고 했다. 


그리고, 

수요일인 오늘은 30분도 채 안 돼 주문 api를 작성했다. 

 

 

그러는 와중에 또 postman 활용에 대해 쓰는, (팀원들이 프론트에 보내는 api 데이터 양식을 잘 몰라서, 수요가 있겠다 싶어서) 

 

Postman 모음집 (프론트에 보내는 mock data, api 참고)

key 에 해당되는 것은 카멜로 할지 스네이크로 할지 정하면 됨 . value 값은 id에 해당될 때는 " " 없이 숫자만. 문자열일 땐, " " 으로 string으로. Project 3 - 프론트에 보내줄 api 기능 문서 1. order 테이블

pm-developer-justdoit.tistory.com

 

 

- Api 작성 팁

함수명 스펠링 /카멜케이스 틀려서 통신 안 되는 경우 있으니, 복사 붙여넣기 하거나 자동 으로 나오는 거 클릭하기 --> 함수명 뿐만 아니라, res,req값도 보기 좋게 다시 보여주면 여러 함수를 쓸

pm-developer-justdoit.tistory.com

 

주문 flow를 첫주차에만 3번 pm과 이야기를 하며 이해했고, 

2주차에도 주문 api를 짜기 직전 

sql의 left join을 복습하면서 저절로 주문 api 에 해당되는 sql도 짜게 되어서

 

Project 3: [주문 api] 코드 작성

이어지는 글 Project 3- 주문 api. ->작성 후 수정 팁: 작성 시 이렇게 순서대로 틀어놓고 하니 편했음. CRUD 에서 getPosts createPosts updatePosts deletePosts 하는 거처럼 이렇게 나누어서 했는데, controller에서

pm-developer-justdoit.tistory.com

(위는 오늘 쓴 포스팅이 아니지만, 추가 보완을 오늘 한) 

 

 

Project 3 - 프론트에 보내줄 api 기능 문서

1. order 테이블에 '주문 정보' 저장 [post] INSERT INTO orders (total price, shipping_method, payment_id) VALUES ('2000원, "택배배송", 5 ) shipping_method: 택배배송 / 방문수령 2. > order detail 테이블에 'product id / quantity' 저

pm-developer-justdoit.tistory.com

pm에게 주문 api에 해당되는 sql 만 짜봐서 피드백 받고, 

 

그러다가 내친 김에

controller, service 파일까지 쓰게 되고

결국 router, controller, service, dao까지 

 

주문 api를 완성하고

 

 

PM 에게 피드백을 받아서

 

Project 3- 주문 api. ->작성 후 수정

팁: 작성 시 이렇게 순서대로 틀어놓고 하니 편했음. CRUD 에서 getPosts createPosts updatePosts deletePosts 하는 거처럼 이렇게 나누어서 했는데, controller에서는 하나의 함수 service에서는 하나의 함수 dao에

pm-developer-justdoit.tistory.com

목요일 오전에 완료하고 

unit test 과 남은 sql 공부를 남기고, 

 

남은 안 해본 기능 '전체목록 페이지', '상세페이지' 공부를 

다음주에 Pm 과 하기로 했다. 

 

욕심을 부리고 조급하고

늘 "빨리"를 앞에 붙이는데

 

내가 해야 할 리스트들을 Pm에게 모두 공유하고, 우선순위를 함께 짜고 

이미 공부해본 pm으로부터 공유하며 (pm도 전공자에게 옆에서 배워서 나에게 내리가르침하는 중) 공부를 올바른 방식으로 하며, 

기본을 다지고 

비교를 하지 않고, 급하지 않으니 빨리 하지 않아도 된다는 성격 개조를 하게 되고 

조급함을 내려놓고 욕심을 내려놓고, 결국에 결론적으로는 빠르게 쳐내는 걸 하게 되었다.

(못 해본 거 다 하는) 

 

리더쉽이 익숙하던 내가, 팔로워십도 기른 2주였다.

 

 

그리고 나도 나 자신을 믿긴 했다. 

 

지금은 기본을 하고 있지만

결론적으론 더 빠르단걸. 

* 비교를 안 하기로 했지만, 실제로, 

다른 백엔드 팀원들은 처음부터 api를 짰지만, 결국 중도에 sql을 다시 복습 공부했다. 

 

(늘 '"빨리, 따라잡았다" 이런 말들을 달고 살았는데, 결국 나를 괴롭게 했다. 

일희일비 하지 말 것

늘 업앤다운이 있을 수 밖에 없는 개발 공

부이니,

상심이 너무 크니)