일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- 프로젝트
- CS
- 클라우드
- node
- ERD
- express
- 위코드
- AWS
- 보안
- awscloudclubs
- github
- 네트워크
- ACC
- TCP
- IP
- Amazon
- 대용량트래픽
- 정보처리기사
- TCP/IP
- javascript
- mysql
- 스프링부트
- 피드시스템
- 프로토콜
- 환경변수
- 백엔드프로젝트
- 가상스레드
- cloudclubs
- wecode
- Today
- Total
아무튼!
[Wecode] 2차 프로젝트 회고 본문
2023.03.24 - 2023.04.07
"매화를 찾아서"
다급할 때 간편하게 찾아보는 프리미엄 화장실 안내 서비스
FE: JavaScript, React.js, Sass, React Router
BE: JavaScript, Node.js, Express.js, TypeORM, MySQL, RESTfulAPI
1차 프로젝트 이후 일주일 정도의 시간을 공부하면서 지내고, 다시 2주 정도의 시간 동안 프로젝트를 진행하였다.
처음 프로젝트 시작 때에는 에어비앤비를 참고하여 전반적인 구성을 기획하려고 했다.
하지만 우리 팀 만의 차별성이 있는 제품을 만들고 싶었고, 회의를 거듭할수록 많은 부분을 창조하여 진행하는 방향으로 기획이 흘러가게 되었다.
서로 실생활에서의 불편함을 이야기하면서 공감했고, 해당 문제들에 대한 뚜렷한 해결책이 아직 시장에 제시되어있지 않다는 것을 알게 되었다. 그러한 문제들을 우리가 직접 해결해보고 싶었고, 이러한 이유들로 내 주변의 화장실들을 알려주고, 화장실들의 후기를 제공하는 서비스를 만드는 것으로 기획하게 되었다.
이미 유사한 서비스들이 출시되어 있다는 것을 확인했지만, 우리는 후기를 강조한 "프리미엄" 서비스를 만들고 싶었다. 단순히 화장실들의 위치를 알려주는 데에 기능이 마치는 것이 아니라, 화장실의 부가적인 정보를 후기를 통해 알려주면서 휴지의 양이나, 청결도, 인테리어 등을 사용자가 고려하여 찾을 수 있도록 하고 싶었다. 그리고 우리는 그러한 정보들을 장소마다 태그를 부여하여 알려주기로 했다.
이번에는 Jira를 통해 티켓을 관리하였다.
Jira가 현업에서 자주 사용된다고 하여서 기능 활용을 못 하더라도 일단 조금이라도 익숙해지자는 차원에서 선택하였다. 티켓에 중요도를 부여하거나, 인사이트 등과 같은 많은 기능들이 있었는데 유료인 부분들이 많기도 했고, 코드 작성에 급급해져서 기능들을 많이 활용하지는 못했다. 이전에 쓰던 Trello와 거의 비슷한 수준으로만 기능을 활용한 것 같다. 다음에는 좀 더 여유를 가지고 툴을 익혀보아야겠다. 특히 인사이트나 티켓 중요도 부여 부분은 나중에 자신의 수행도를 짐작할 수 있는 중요한 기능인 것 같아서 잘 활용해보고 싶다.
ERD를 처음부터 수정이 발생하지 않도록 짜는 것은 아직 어려운 것 같다. 코드 작성에 돌입하고부터는 다행스럽게도 수정이 없긴 했지만 코드 작성을 시작하려 하던 단계에서 두 번 정도는 수정을 했었다. 하지만 저번 프로젝트 때에 코드 작성 도중에도 여러 번 수정이 있었던 것에 비해서는 확실히 수정할 일이 거의 없었다. 역시 처음이 매우 어렵지 그다음부터는 여유가 좀 생기는 것 같다. 하지만! 자만은 금물! 언제나 긴장하며 설계하자!
메인페이지 디자인은 에어비앤비를 참고했다. 카드 형식과 무한 스크롤을 사용하여 장소들을 쭉 보여준다. 태그에 해당되는 장소들만 출력되도록 하고 싶었는데, 백엔드 쪽 코드가 안정화되지 않기도 했었고 프론트 쪽에서도 변수 명들을 늦게 전달받아서 실제 기능 적용까지 이루어지지는 못했다. 마음이 앞서더라도 기간 안에 할 수 있는지 냉정하게 판단하고 계획을 세워야지 달성도를 높일 수 있다는 것을 다시 한번 깨달았다. 또한 조급한 마음에 안정적이지 못한 코드로 얼렁뚱땅 해버리는 것보다는 하나를 하더라도 확실한 코드를 짜야겠다고 느꼈다.
장소 상세 쪽은 그래도 의도한 바들이 잘 이루어졌다. DB에 넣어놓은 이미들이 잘 불러와졌고 기본 정보나, 추가정보, 후기들이 잘 불러와졌다. 특히 리뷰에 작성된 태그들을 기반으로 장소에 태그를 자동으로 부여하는 로직을 짜는 것이 가장 힘들었는데 잘 적용되어서 너무 뿌듯했다. 리뷰 좋아요 기능이 어렵지 않아서 해당 기능도 추가하고 싶었는데 이것도.. 시간이 없어서 할 수 없었다. 넘치는 아이디어 속에서 하고 싶은 게 너무 많았어서 그런지 아쉬움이 많이 남는다.
이번에 회원관리는 카카오 소셜 로그인을 통해서 진행하였다. 처음에 어떻게 해야 하는 건지 공식 문서를 봐도 봐도 도저히 모르겠어서 힘들었었는데, 이전 기수 분들이 하신 올려두신 자료들이랑 구글링을 통해 겨우 해낼 수 있었다. 도저히 방법을 모르겠어서 시간이 가장 오래 걸렸던 것 같다. 다른 기능부터 할까 싶다가도 아무래도 대부분의 기능이 로그인을 전제로 하고 있어서 무조건 먼저 해결해야 하는 문제였다. 생각보다 시간이 오래 걸린다는 압박에 많이 힘들었지만, 돌이켜 생각해 보면 이후에 만들었던 코드들에 비해서 특히 어려운 코드는 아니었다. ^_^,,,, 생각보다 세상에는 괴랄한 SQL문이 많다.
위시리스트 부분이 가장 구현하기 쉬웠던 것 같다. CRUD의 가장 기본적인 형태만으로 구현이 가능했었다. 라이브러리 아이디나, 유저의 아이디, 장소 아이디를 가지고 생성, 조회, 수정, 삭제를 하면 됐었다. 엔드포인트를 통하여 위시리스트 아이디나 장소 아이디가 유출될 경우를 고려하여 삭제나 수정, 생성을 위해서는 회원의 아이디도 일치해야 작업이 적용되도록 하였다. 위시리스트 쪽은 메인이나 장소 상세 쪽이 무조건 오래 걸릴 것 같아서 최대한 빨리 작업을 마치려 했던 부분이다. 어느 정도 보안을 신경 쓰면서 진행하다 보니 예상보다 조금 더 시간이 걸리긴 했지만 가장 완성도 있는 코드가 나온 페이지였다.
import requests, csv
url = "https://dapi.kakao.com/v2/local/search/keyword.json?"
apikey = {YOUR_API_KEY}
query = '삼성2동화장실'
headers = {'Authorization': 'KakaoAK ' + apikey}
r = requests.get(url, params={'query': query}, headers=headers)
i = 1
f = open('통합 문서1.csv','a', newline='')
wr = csv.writer(f)
for doc in r.json()['documents']:
row = []
for value in doc.values():
row.append(f'{value}')
wr.writerow(row)
f.close()
이번에 장소 데이터를 가져오기 위해 파이썬을 사용했다.
이전에 공부하면서 크롤링 쪽은 항상 파이썬을 사용했었어서 그런지 아무래도 파이썬 관련 자료를 찾아보는 것이 편했다. 그래서 장소 데이터 수집 부분은 파이썬 코드를 이용하여 진행했다. 데이터를 한 두개만 DB에 넣을 때는 sql 문으로도 충분하지만 몇 십 개가 넘어가는 순간부터는 무리가 있다고 판단했다. 해당 코드를 이용해서 장소들의 데이터들을 csv 파일로 간단하게 수집할 수 있었고 sql문을 이용하여 파일 안의 데이터들을 한 번에 DB에 저장할 수 있었다. 대형 사이트에서 정보를 수집할 때에는 어떠한 방법으로 더 효율적으로 데이터를 수집하고 있는지 찾아보아야겠다.
모든 팀원들이 아이디어도 많고, 의욕이 충만해서 수정도 많고 대화도 많았던 프로젝트였다. 짧은 기간에 대부분의 부분들을 창조하며 진행하였는데 서로 활발히 소통하고 자신감 있게 의견 제시를 했기 때문에 이만큼의 결과를 낼 수 있었던 것 같다. 서로의 의견을 잘 들어주고 자신의 의견을 잘 말해주시는 팀원분들께 너무 감사했다. 저번 프로젝트를 진행하면서 잡은 목표 중 하나가 팀원들 간의 활발한 소통이었는데, 이번에 훨씬 더 많은 소통을 한 것 같다. 역시 활발한 대화가 결과물을 더 풍부하고 완성도 있게 하는 것 같다.
항상 의지 만땅으로 작업해 주신 팀원 분들께 너무 감사드린다. 특히 마지막 날에는 모든 팀원분들이 밤을 새우며 작업했는데 정말.. 정말 감동이었다. 다들 이 프로젝트에 진심임을 느낄 수 있었다. 소프트 스킬 적으로도, 하드 스킬 적으로도 정말 뛰어난 팀원 분들이었다. 힘들어 보이면 독려해 주시고 걱정해 주셨는데 정말 감사했다. 힘든 프로젝트 기간 동안 팀원분들 덕에 버틸 수 있었다.
프로젝트를 진행하면서 독학만으로는 깨우칠 수 없는 협업의 장단점을 알 수 있어서 좋았다. 기술 스킬에서도, 소통 능력에서도 저번보다 성장했음을 느낄 수 있었고 앞으로 더 성장할 용기를 얻을 수 있었다. 역시 프로젝트는 즐거워!
Team Repo: https://github.com/wecode-bootcamp-korea/43-2nd-finding-maewha-backend.git
'Re:' 카테고리의 다른 글
[주저리] 한국이 자바 공화국이 된 이유(w/ 닷넷, 노드) (3) | 2024.10.01 |
---|---|
[주저리] IT 개발 취준생으로서 자격증에 대한 생각 (0) | 2024.09.13 |
[ACC] 2주차 회고 (9) | 2024.07.28 |
2023 상반기 활동 결산 - 그럼에도 나아가야지 (2) | 2023.07.06 |
[Wecode] 위클리 프로젝트 회고 (1) | 2023.03.21 |