들어가며
1주차 미니프로젝트 주간이 끝이 났다. 한 주차가 끝난 김에 조금 놀아볼까 했으나 TIL은 꾸준히 작성하자는 다짐을 다시 상기시키며
오늘의 TIL은 트러블 슈팅을 하고, 1주차 회고를 해보고자한다.
트러블 슈팅
문제
mongoDB에서 데이터를 정렬해서 가져오기위해 mongoDB의 sort()함수를 사용하려고 했는데 다음과 같은 에러를 뱉어냈다.
구글링을 해보고 시도한 코드들에서도 같은 에러가 나와서 정렬 방식 자체를 바꾸기로 했다.
시도한 코드
sorted_cards = db.project.find({}).sort({'like': -1})
에러 코드
TypeError: if no direction is specified, key_or_list must be an instance of list
해결
방법 1. 데이터를 list로 만들어서 정렬
all_cards = list(db.project.find({}, {'_id': False}))
- lamda를 사용한 방식
sorted(all_cards, key=lambda all_card: all_card['like'], reverse=True)
- itemgetter를 사용한 방식
from operator import itemgetter
sorted(all_cards, key=itemgetter('like'))
방법 2. mongoDB의 sort()함수를 사용
위의 방식을 차용해서 프로젝트에 적용한 후에 트러블 슈팅을 위해 구글링을 하다가 시도한 코드로 해결이 된다는 걸 확인했다.
근데 이 방식도 시도 해봤었는데 그때는 안되다가 이번에는 된다... 이게 왜 되지?
db.project.find({}, {'_id': False}).sort('size', -1)
마치며 - 1주차 회고
기획부터 개발, 배포까지 에러와 충돌은 많았지만 첫 팀프로젝트 치고는 완벽했던 1주차 미니프로젝트 기간.
좋은 팀원분들과 소통이 잘 되어서 이론으로만 알고 있었던 git-flow모델을 적용해볼 수 있었던게 이번 주차에서 가장 유의미한 부분이었다. 개인 프로젝트만 해봤기 때문에 깃허브가 얼마나 중요한지 모르고 있었는데 협업을 하는 데에 있어 깃허브의 중요성을 절실하게 깨달았다. 사실 깃허브 충돌만 아니었으면 프로젝트가 훨씬 빨리 끝났을 텐데 나를 포함한 팀원 모두가 깃허브와 깃플로우 모델에 익숙치 않은바람에 프로젝트 기간의 3분의 1은 깃허브 충돌로 보낸거 같다....
충돌날까봐 pull push하기가 두렵고.. 충돌나는게 싫어서 코드 카톡으로 보내서 붙여넣고... 초보 개발자가 한번씩 거쳐가는 단계라고 한다.
두번째로 유의미했던 부분은 주석의 중요성을 알게 된 점이다. 파이썬이 원래 그런건지 아직 미숙해서 그런건지는 모르겠지만 코드에 주석을 달아놓지 않으면 정말 보기도 힘들고 찾기도 힘든 엉망진창의 코드가 되어버렸다. 결국 마지막에 다같이 코드리딩을 하면서 주석 다는 작업을 전부 해놓았고, 그러니까 훨씬 보기 좋은 코드가 되었다.
html의 클래스명이랑 script코드도 정리 / 주석달기를 할 수 있었다면 좋았을 텐데...
이제 내일은 2주차 알고리즘 주간이다. 한번도 공부해보지 않은 영역이라 걱정이 앞서지만 지금까지 해왔던 것처럼 열심히 공부하면 못할 건 없다는 생각을 가지고 내일을 시작하고자 한다.
'Study > TIL' 카테고리의 다른 글
[TIL] 05/14 항해99 6일 차 - 연결리스트, 트러블슈팅, 문제풀이 (0) | 2022.05.15 |
---|---|
[TIL] 05/13 항해99 5일 차 - 빅오(Big-O), 공부법, 문제풀이 (0) | 2022.05.15 |
[TIL] 5/11 항해99 3일 차 - 미니프로젝트 (0) | 2022.05.12 |
[TIL] 05/10 항해99 2일 차 - 미니프로젝트 (0) | 2022.05.10 |
[TIL] 05/09 항해99 1일 차 - 미니프로젝트 (0) | 2022.05.10 |