일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- crud2
- nodeJS
- 호이스팅
- TypeError: this.boardRepository.createBoard is not a function
- javascript
- 장고초기세팅
- Jest
- 프로미스
- 자바스크립트
- docker
- CORS
- django westagram
- wecode
- on_delete
- westagram
- 실행 컨텍스트
- 노드
- 트랜잭션
- Django
- 스코프
- JWT
- status code
- async/await
- manytomanyfield
- rebase
- OSI7계층
- node
- bcrypt
- typescript
- pm2
- Today
- Total
될때까지
((TURTLE HOME)) 위코드 1차 프로젝트 회고록 본문
프론트 깃허브 : 김수정, 이강철, 손민지
백엔드 깃허브 : 성바울, 전은형
💗 Django로 프로젝트 하면서 느낀 점
- 올해 초 타학원에서 Flask를 써서 프로젝트를 진행했던 경험이 있다. 그때는 강사님이 프론트를, 수강생들이 백엔드를 맡아서 진행했다. Flask는 최소한의 기능만 내장되어있어서 설치하는 작업이 많았는데 Django는 이미 많은 기능들이 내포되어있어서 그대로 사용만 하면 되는 점이 달랐다. Django는 참 편리하다 느꼈다.
💗 혼자할 때와 팀으로 진행할 때 다른 점
- 혼자 포스트맨이나 httpie로 테스트할 때는 예상했던 응답이 잘 왔다. 하지만 프론트와 협업시에는 서로 작성했던 키값이 달라서 시간을 좀 잡아먹었다. 키값뿐만 아니라 원하는 데이터를 어떻게 주고, 어디까지 맞춰야하나 충분한 상의를 했어야했는데 그런 작업이 없었다. 2차 프로젝트때는 꼭 기능구현 전 키값과 같은 정보들은 맞추고 시작해야겠다.
💗 기억하고 싶은 코드
- 가장 어려웠던 코드는 DB에서 가져온 데이터들을 어떻게 정렬할까였다. 람다함수도 쓰고, sort함수도 쓰고 거의 7시간을 투자해서 기능 하나를 작성했는데 다음날 멘토님으로부터 파이썬으로 정렬하지말고 정렬된 데이터를 가져오는 방법으로 바꾸라하셨다. 그래서 그 코드가 싹 사라져버렸다.. 하지만 order_by의 강력함을 깨닫게 되었고 DB에서 정렬된 데이터나 필요한 데이터만 가져오는 것이 좋다는 걸 깨달았다.
- 분기처리를 if문 나열해서 처리했는데 딕셔너리 컴프리헨션을 사용하면 싹-- 깔끔하게 정리가 된다. 이 역시 이해하는 데 하루가 걸렸는데 덕분에 리스트컴프리헨션/딕셔너리컴프리헨션 개념은 정복완료!
💗 아쉬웠던 점
- 데이터 모델링 : 기능 구현에 들어가기 전 해당 모델링에 대한 충분한 이해를 했어야 했는데 그러지않고 멘토님 리뷰받은 모델링을 그냥 바로 프로젝트에 적용했던 점이 후회된다. 그러다 보니 기능 구현시에도 외래키로 무엇을 가져와야하고, 어느 테이블에서 어떤 컬럼을 가져오면 내가 원하는 데이터를 가져올 수 있는지에 대한 개념이 없었다.
- ‘처음이니까’ : 프로젝트 초기에 프론트와 어떤 주제에 대해 어디까지 이야기를 나눠야하는지 잘 몰랐다. 그래서 타팀에 비해 주고받을 데이터의 구조, 키값 등이 통일되지 않은 채 작업을 시작했다. 해당 기능의 API가 먼저 만들어져서 프론트에서 내 키값에 맞추는 수정작업이 들어갔는데 여러곳에서 해당 변수명을 수정하는 걸 보고 너무 놀랐다… api명세서는 선택이 아닌 필수!! 그래도 프론트가 수정하는 작업을 직접 옆에서 지켜봤기에 깨달음을 얻었다고 생각한다.
- ‘도와주고싶어..’ : 도와주고싶은데 도와줄 수 없어서 힘들었다. 포스트맨으로는 잘 되던 기능이 프론트와 통신할 때만 왜 에러를 발생하는지… http 요청과 응답에 대한 공부가 부족했다. 통신에 대해 내가 조금 더 많이 알았더라면 어느 부분을 어떻게 수정하라고 말할 수 있었을텐데.. 전체적으로 부족함이 많은 상태에서 프로젝트를 진행해서 심적으로 많이 힘들었다.
- API : 처음에는 메인카테고리 정보를 프론트에 줄 필요가 없다고 생각했다. 검색 기능도 프론트에서 구현할 수 있다 그래서 그렇게 하기로 했다. 이제 생각해보니 메인카테고리 정보와 검색기능은 백엔드에서 구현해서 프론트로 보내줘야 맞는 것 같다. 필요한 데이터만 보내주는 게 백엔드의 미션인데 프론트에서 구현하도록 한 점이 아쉽다.
- 추가기능 : 타팀들은 필수기능 구현 후 추가기능 구현에 열정을 쏟았다. 하지만 우리팀은 이제까지 진행한 작업에 대해 공부를 원했다. 그래서 필수기능 구현 후 내가 사용했던 개념들에 대한 공부를 하며 시간을 보냈는데 차라리 추가기능을 구현해보고 멘토님께 리뷰를 받을껄 이라는 아쉬움이 든다.
💗 잘한 점
- ‘다같이’ : 프로젝트 기간동안 백엔드 팀원 바울님을 졸졸졸 쫓아다녔는데 이제 보니 잘했다는 생각이 든다. 서로 다른 기능을 맡아 개발했기에 서로의 코드에 대해 이해가 없었다. 그래서 기능 구현 완료 후 서로의 코드를 리뷰하는 시간을 가졌는데, 몰랐던 개념들을 같이 알아가며 유익한 시간을 가졌다.
- together : 프론트의 코드는 하나도 모른다. 하지만 통신과정에서 오류가 생겼을 때 '알아서 해결해오세요'라는 마인드가 아닌, 왜 안될까 어디가 잘못됐을까 찾아보려고 옆에서 계속 지켜봤다. 프론트에서 사용하고 있는 키값이 내가 보낸 키값과 일치하나? url주소가 내가 생성한 주소와 동일한가? 그래서 키값 통일의 중요성을 알아차릴 수 있었다. 집갈때도 같이가고, 밥도 같이 먹다보니까 자동으로 초반에 부족했던 클론 사이트에 대한 대화를 많이 나눴다. 그렇게 필수기능까지 소통에는 큰 문제없이 완료했다.
- 기록 : 포스팅을 게을리하지 않았다. 모르는 개념이 나오면 꼭 노트에 적어두고 당일에 공부를 못했다면 기능구현 완료 후 공부를 했다. 이제와서 생각해보니 2주간 고민한 흔적을 어떻게 한번에 다 정리하나..싶다. 기록의 중요성을 다시한번 깨달았다.
💗 앞으로
- 데이터 모델링 : 절대적인 시간투자는 데이터 모델링에! 잘만든 ERD가 프로젝트에 정말 중요하다는 걸 깨달았다. 충분한 이해과 고민을 하고 확장성을 고려하여 2차 프로젝트는 데이터모델링 작업에 많은 힘을 쏟겠다.
- 협업 : API명세서는 선택이 아닌 필수! 프론트와 진행할 사이트에 대한 많은 대화를 나누겠다. 키값, 주소, 주고받을 데이터의 양과 구조 등 맞출 수 있는 모든 걸 최대한으로 맞추고 시작하겠다.
- API : 필요한 데이터만 뽑아서 쏙! 상품 부분을 다시 맡게 된다면 검색기능을 백에서 구현하고 싶다.
- 추가기능 : 필수기능까지 다 완료했다면 추가기능도 꼭 구현해보고 싶다. 개념공부는 프로젝트가 끝나고 나서 해도 안늦다!!
💗 프로젝트를 마치고 느낀 점
- 개발자의 역량 중 협업과 소통이 중용하다 들었는데 나의 성향과 잘 맞는다 느꼈다. 소통과 협업은 노프라블럼✌🏻
- 자기객관화가 잘 된 개발자가 되고싶다 느꼈다. 해당 기능 구현할 수 있어요? 라고 물어봤을 때 네/아니요 로만 대답하고 싶다. 할 수 있는 것과 할수없는 것을 명확히 아는 것도 중요하다. 개발자는 협업. 말을 바꾸면 프로젝트에 차질이 생긴다.
- 무에서 유를 창조하는 건 참 어렵다. 이제까지 했던 위스타그램, 스타벅스와 차원이 다른 모델링에서부터 멘탈이 나갔었지만 하면된다는 마인드셋으로 이겨냈다. 그리고 실제로 하면 된다. 못할것같애가 아니라 앗 이 개념을 모르네 공부해서 적용시키자라는 마음이라면 안될것도 된다. 파이팅!! 모르니까 위코드왔지 다 알면 왜왔겠어라는 마인드셋으로 2차 프로젝트로 파이팅!!
'프로젝트 > wecode1차 : TURTLE-HOME' 카테고리의 다른 글
((TURTLE HOME)) 프로젝트 코드 살펴보기 (1) | 2022.10.03 |
---|---|
((TURTLE HOME)) 프로젝트 배포해보기 (0) | 2022.07.31 |
((TURTLE HOME)) 11일차 : ProductListView filtering refactoring (0) | 2022.07.30 |
((TURTLE HOME)) 10일차 : ProductListView filtering(price) (0) | 2022.07.28 |
((TURTLE HOME)) 9일차 : ProductListView filtering(size) (0) | 2022.07.27 |