개발-잠-개발-잠만 반복하는 삶… 이번주 살기도 바쁜데 팀원은 언제 구하죠?
몰입캠프 동기들의 관심사, 기술스택을 한 눈에 확인하고 나와 꼭 맞는 팀원을 구해요.
이화여자대학교 조민주 - 백엔드, 서버
성균관대학교 송종찬 - 프론트엔드
- 2번탭, 3번탭 Preview
- 3, 4주차 팀원/ 외부 대회, 프로젝트 참여 팀원 모집 홍보 게시판
- 게시글에 태그를 달 수 있어요
- 마음에 드는 게시판은 스크랩할 수 있어요.
- Gemini가 내 tech stack, MBTI, 자기소개를 기반으로 최적의 팀원 매칭
- Swipe Right!
- 내 정보 보기/수정
- 내가 저장한 팀원
- 같은 팀 되지 않기 목록
- 내가 스크랩한 글 리스트
- Kotlin
- View XML
- django
- Rest Framework
-MySQL
백엔드 가상환경
- Docker
데이터베이스 및 서버 환경
- AWS + tmux
로그인 - 카카오톡
팀 매칭, 프로젝트 주제 선정 - Google Gemini
기술 스택 자동인식 - Github
RecyclerView
로 홍보게시판, 프로필 미리보기 표시
RecyclerView
로 홍보게시판 구현.
CardStackView
로 오른쪽 Swipe 시 백엔드의UserLike
에게로POST
가 트리거 됨
- 내가 like한 사용자, 같은 팀 되지 않기 한 사용자, 스크랩한 글 누르면 해당 내역을 Recyclerview로 조회 가능.
- 카카오톡 API로 유저 ID및 이름을 Token으로부터 받아 회원가입
- 온보딩 (이메일, 분반, 기술스택, 자기소개 입력) 후 로그인 및 서비스 이용 가능
User
와Profile
을 나누어 저장하고, Profile이 user id를 외래키로 참조하도록 하여User
데이터를 최소 크기로 유지Profile
Post
를DATETIME
기준으로 내림차순으로 sort하여 최신 게시물 4개를 리턴- Gemini가 고른 최적의 팀원을 적절도를 기준으로 내림차순 sort하여 팀원 프로필 4개 리턴
Post
를DATETIME
기준으로 내림차순으로 sort하여 최신 게시물 4개를 리턴- 상세 페이지 들어가면
PostView
를 보내 상세 내역을 조회할 수 있도록 구현
- Gemini가 내 tech stack, MBTI, 자기소개를 기반으로 최적의 팀원 프로필을 선정하여
JSON
형식의 리스트로 반환. - Gemini에서 잘못된 형식 리턴 시 5번 더 시도 후 에러 리턴 (Gemini API 한계도달 방지용)
- Gemini에게 보내는 프로필은 UserLike, UserBlock을 필터링한 것.
- Swipe Right 후 사용자로부터
UserLike
row가 리턴되면 데이터베이스에 저장 - 사용자가 ‘같은 팀 하지 않기’ 를 누르면
UserBlock
row가 리턴되며 데이터베이스에 저장
- 내 정보 보기
- 내가 저장한 팀원
- 같은 팀 되지 않기 목록
- 내가 스크랩한 글 리스트
- 현재 Token 관련 sync 문제로 프론트엔드와 백엔드 간의 소통이 원활하지 않음.
- 이 부분을 해결하면 모든 기능을 연결하여 서비스를 완성할 수 있을 것으로 보임.
- 불안정한 크롤링 대신, Github 토큰으로 사용자 Github repository에 접근허가를 받는다.
- Github에서 출력되는 사용자의 언어 사용 내역을
Set
에 저장하여 백엔드에 리턴
- SendBird API를 받아 실시간 채팅을 구현
조민주 (백엔드, 데이터베이스, 서버구축)
- 백엔드와 서버 간의 연결에 대한 이해가 부족했던 것 같아 아쉽다.
- MySQL과 AWS를 평생 저주할 것
- 다양한 API를 사용해볼 수 있었다.
송종찬 (프론트엔드)
- 프로젝트를 구현하기 전에 확실한 설계의 필요성을 느꼈고, 규모를 현실적으로 구상해야함을 깨달았다.
- 백엔드와 통신해야할 것이 무엇인지, 얼마나 많은 것을 주고받아야 하는지 알 수 있었다.
- 토큰, 권한 그게 뭔데