팀 프로젝트

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 6. 게시글 CRUD, 댓글 CRUD API 구현

아이를 맡기고 맡는다는 핵심 로직의 구현이 어느 정도 완료되어 서브 커뮤니티을 구현하기 시작했다. 게시글과 각 게시글에 달리는 댓글을 관리하는 CRUD 를 구현하였다. 문서 필드는 위와같이 구성하였다. comment_count 를 따로 속성으로 빼둔 이유는, 전체 글 리스트를 조회할 때 댓글 개수는 필요하지만, 댓글 데이터 자체는 필요하지 않기 때문에 댓글 갯수를 별도 필드에 저장하도록 하였다. 그런데 지금 생각해보니 댓글 개수 정보는 하위 컬렉션에 저장해두고 매번 API 호출 시 댓글 컬릭션의 문서 갯수를 세서 반환하므로 굳이 DB 필드로 존재할 필요는 없었을 것 같다. 삭제를 고려해야겠다. 댓글은 위와 같이 구성하였다. 내용과 댓글 작성 시간, 작성자 정보만 저장하였다. 기능 구현 자체는 게시판 만들..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 5. 장고(Django) 배포 & Github Action 이용한 CI/CD 구축

일단 무작정 배포하기 처음 프로젝트를 시작할 때는 프론트에서 API를 사용하기 위해 백엔드 레포지토리에서 코드를 받아 직접 로컬에서 서버를 실행시킨 뒤, localhost:8000 으로 요청을 보내는 방식을 사용해야했다. 하지만, 아무리 readme에 서버 구동 방법을 자세히 적어두어도 파이썬 설치, 가상환경 설정과 같은 개발환경 세팅을 장고를 학습해보지 않은 프론트가 따라하기에는 어려움이 있을 수 밖에 없었다. 프론트 멤버가 개발을 하기도 전에 백엔드 개발환경 세팅으로 고생하는 것을 보고 이건 아니다 싶어서 일단 빨리 서버에 배포부터 하자고 생각했다. 서버는 어떤 서버를 사용할 지 생각을 해봤는데, pythonanywhere 같은 호스팅 사이트를 사용하는 것도 괜찮은 듯 보였으나, 이번 기회에 직접 장..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 4. 채팅 구현 방식 결정 & API 작성

로그인 API 구현 이후로는 채팅 API를 구현하게 되었다. 우선 실시간 채팅 API를 구현하기 위해 Firestore 에서 제공하는 document 변경 감지 기능을 사용하는 것을 고민해보았다. https://firebase.google.com/docs/firestore/query-data/listen?hl=ko Cloud Firestore로 실시간 업데이트 가져오기 | Firebase 의견 보내기 Cloud Firestore로 실시간 업데이트 가져오기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. onSnapshot() 메서드로 문서를 리슨할 수 있습니다. 사용 firebase.google.com 채팅방에 해당하는 문서를 만들고, 그 문서 안에서 채팅 내역 데이터가 바..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 3. 로그인 API 구현

핵심 기능인 아이 돌보기 / 돌봄 맡기기 데이터의 CRUD API 를 구현하였으니, 다음으로는 로그인을 구현하기로 했다. 로그인을 빠르게 구현한 이유는 각 유저마다 '아이 돌보기' 데이터를 하나만 생성할 수 있도록 세운 정책에 의해 '돌보기' 데이터의 생성 API 는 현재 로그인된 유저의 정보를 가져오도록 코드를 작성하여 로그인이 필요했기 때문이다. 구현을 시작하기 전에는 전에 플러터로 개발한 앱에서 Firebase로 로그인을 해봤으니 금방 구현할 수 있겠다고 생각했었으나, 막상 해보니 내가 03 있었던 점이 있었음을 깨달아서 난관에 부딪혔다. 클라이언트 Firebase vs 서버 Firebase 내가 착각하고 있었던 점은 플러터 + Firebase 로그인을 할 때는 플러터 앱(클라이언트) 에서 Fire..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 2. 맡기 CRUD API 구현 & 배포

API 명세 논의 24년 1월 8일, 사당 스타벅스에 모여 회의를 진행했다. 내가 작성한 명세서를 토대로 더 추가해야할 API 가 있는지, API 에서는 어떤 형식의 데이터를 주고 받아야 하는지를 논의하였다. 논의 결과 아래와 같은 형태로 데이터를 주고 받게 되었다. { "start_time": 1100, "date": "20240115", "child_age": 2013, "rating": 4.2, "address": "서울시 마포구 와우산로 70 홍익대학교 T동 702", "end_time": 2000, "email": "test2@example.com", "status": "waiting", "gender": "f", "id": "test2@example.com" } 이걸 논의하면서 프로젝트 기획의..

팀 프로젝트/[2024] GDSC 프로젝트 트랙

[GDSC 프로젝트 트랙] 1. 팀 빌딩 & 아이디어 수집 & 화면 설계

23년 10월, GDSC Hongik 에서 진행한 프로젝트 트랙에 참가하였다. 2달간의 Django 온라인 학습을 마치고 23년 12월 중순부터 본격적으로 '프로젝트' 활동을 시작하였다. 23년 12월 15일에는 같이 프로젝트를 진행할 팀 빌딩이 진행되었다. 백엔드 2명, 프론트 2명으로 이루어진 팀이었고, 나는 백엔드로 참여하였다. 프로젝트는 구글 솔루션 챌린지와 연계되어 진행하는 방향으로 기획되었다. 구글 솔루션 챌린지는 UN이 정한 인류 발전을 위해 해결해야 하는 17가지 문제를 위한 사회적 서비스를 2달 동안 만드는 챌린지이다. 처음에는 가볍게 학교나 일상 속 불편함을 해결할 수 있는 주제로 기획하면 될 줄 알았는데, 구글 솔루션 챌린지 조건에 맞는 주제로 고민을 하려고 하니 아이디어가 잘 떠오르..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 10. 4, 5차 멘토링 & 의견 구현 & 발표자료와 리드미 만들기

기간 : 10/22 ~ 10/30 마이페이지 디자인을 하면서 ul 태그를 썼는데, 팀원 분이 작업한 ul 태그의 css가 영향을 전역적으로 주고 있어서 문제가 발생했다. 프론트에서 협업할 때는 이런 문제가 있을 수도 있겠구나 하는 걸 새로 알게 됐다. 그리고 멘토링을 받았는데, 구현은 잘 했으니 이제 발표자료를 준비하면 되겠다는 말을 들었다. 그래서 다음 멘토링때 발표자료에 대한 초안을 가지고 멘토링을 하자고 하셨다. 근데 우리는 아직 구현을 해야하는 부분이 남아있어서 그 부분을 최대한 끝내보기로 했다. 찜한 특기를 마이페이지에서 볼 수 있게 연동하는 기능을 추가하려고 한다. 이를 위해 회원가입시 빈 데이터셋의 유저 데이터를 만드는 기능을 추가했다. 그리고 의견에 대한 구현도 의논했다. 파이어베이스 타임..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 9. UX 개선 & 마이페이지 만들기

기간 : 10/17 ~ 10/21 팀원분이 프론트에서 열심히 군지원 기능을 구현하시는동안 나는 마이페이지 구현 작업을 하기로 했다. 그래서 나도 처음으로 리액트 프레임워크를 써보게 됐다ㅋㅋ 보내주신 영상을 보면서 세부적인 구현 사항도 의논..? 하고 멘토링 시간도 의논했다. 해커톤 막바지 달리는 기간이 휴가 기간과 겹쳐있어서 슬펐다ㅠㅠ 나의 지원 정보를 입력하는 부분에 대해 논의했다. 여전히 군지원 부분에서 자격증을 하나 하나 콤보박스에서 고르는 식으로 구현되어있어서 말씀드렸던 부분이다. 내가 생각했던 건 자격증이 아니라 자격증 '종류' 였다. 자격증을 하나 하나 입력하는건 병무청에서도 할 수 있으니까? 또 지원해볼 특기를 선택하는 부분에서 플로우를 수정해서 UX 를 개선하자고 의견을 내주셨다. 마이페이..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 8. 2,3차 멘토링 & UX 개선 논의 & 마이페이지 목업

기간 : 10/13 ~ 10/16 13일에는 멘토링을 받았다. 멘토링을 정리한 내용은 아래와 같다. 심사는 동영상과 ppt를 위주로 이루어진다고 한다. 결과물 퀄리티보다 잘 홍보하는게 중요하다고 느껴졌는데, 개인적으로 홍보하는 걸 잘 못한 것 같아서 아쉽다. 그리고 다른 팀에서도 웹 서비스를 정말 많이 하고 있어서 그런 팀과 차별을 두려면 도커같은 여러 기술적 고민도 필요할 것 같다는 조언도 해주셨다. 그리고 군지원 화면의 클릭 수가 많아서 UX가 별로 좋지 않으니 클릭수를 최대한 줄이는 쪽으로 구현해보라고 조언해주셨다. 10/15 갑자기 코드스페이스가 안된다. 해당 팀 계정에 할당된 돈을 다 썼다고 한다ㄷㄷ 그래서 일단 로컬에 프로젝트를 내려받은 뒤 윈도우에 노드를 설치해서 실행했다. 다행히 8기가 램..

팀 프로젝트/[2022] OSAM 온라인 해커톤

[국방오픈소스아카데미 해커톤] 7. 군지원 기능 만들기 & 로그인 유지하기

기간 : 10/7 ~ 10/12 군지원 기능을 구체적으로 어떻게 구현할 지 고민하기 시작했다. 팀원분이 화면을 기획하기로 하셔서 피그마로 목업을 만드신 후 설명을 보내주셨다. 그리고 내 의견을 보내드렸다. 팀원분도 내 의견에 공감해주셔서 군지원은 간편함을 밀고 가기로 했다. 그리고 로그인을 구현하다가 문제가 생겨서 팀원분께 도움을 요청했었다. 결국 끙끙대다가 해결은 성공했다. (https://chinpa.tistory.com/168) 크롬에서 막아서 생긴 문제였다. 이거 고민하면서 지난 포스팅에 적었던 문제도 나름대로 고민해서 해결했다. 근데 쿠키 설정을 하다보니 중간에 cors 문제가 다시 발생했다. 근데 이렇게 해도 나는 이상하게 안되는 문제가 발생했다. 왜 로컬호스트는 막는 것일까? 암튼 해결함! ..

에버듀
'팀 프로젝트' 카테고리의 글 목록