그라운드 룰
1. 의사소통
- 의사소통은 가능하면 마이크키고 말하기
- 질문없을 때는 마이크 끄기
- 자리를 비울 때는 이유, 시간 불문 슬랙에 메세지 남기기 (식사, 낮잠, 커피, 산책, 편의점 등등)
- 아무튼 잠수타면 우주 끝까지 쫒아감❤️
- 퇴근 전에 무조건 PR (PR 안하면 퇴근 못합니다 / 작업 중인 부분은 주석처리 하고 PR)
- 출근하면 무조건 Sync Fork 해주세용 🧡
2. 작업
작업
- 작업할 때(특히 14~17시 집중코딩 시간) 에는 화면공유(VSCode만) 켜고 작업하기 (서로 뭐 하는지 알게)
- 모르는 거는 구글링 > 튜터님
- 코드 에러 / 작동 에러 등은 우선 팀원에게 공유
- PR 후에 팀장에게 알리기 👉 pr 보내주신 팀원과 함께 병합 브랜치에서 작동 확인 👉 문제 없다고 판단되면 main 에 merge 후에 슬랙에 공지할 예정
- 다른 사람 코드에 대한 질문은 언제든지 물어보세요
- 다른 사람 코드 손 댈 때는 꼭 이야기하기 (최대한 슬랙 말고 채팅 말고 캠키고 마이크 키고)
버전관리
- Python 3.10.6
휴식시간
- 점심 겸 휴식시간 12:00 ~ 14:00
- 저녁 겸 휴식시간 18:00 ~ 20:00
코드컨벤션
- 백엔드
- 클래스명 : 파스칼 표기법
- 함수명 : 스네이크 표기법
- 변수명 : 스네이크 표기법
- 상수 : 대문자
- 라이브러리 구분
- 주석
- ‘#’ 사용
- 함수, 클래스별로 함수에 대한 설명 (기능)
- 변수가 최초 선언된 위치 (하나의 변수가 여러 파일에서 사용되는 경우, 프론트 - 백 연결 등등)
- 불필요한 주석은 달지 않기
- 데이터 흐름 따라가기
- 최대한 한줄코드는 지양하기 ( 길면 잘라주세용 )
- pip install black
- 들여쓰기 4칸으로 통일
- 개발과정에서 최대한 자세히 주석달기
- 프론트엔드 (JavaScript)
- 함수명 : 카멜
- 변수 : 스네이크
커밋컨벤션
- 제목 - [타입] : 제목
- 제목은 50자 이내로
- 변경사항을 명확하면서 간결하게 작성
- 제목 아랫줄에 공백 / 그 아래에 내용 작성
- 타입
- Feat - 새로운 기능 추가
- Fix - 버그 수정
- Docs - 문서 수정 (README 등)
- Test - 테스트 코드 추가
- Refact - 코드 리팩토링 (코드 구조를 깔끔하게 고침 / 코드 분리, 병합 등 기능이 바뀌지는 않지만 구조가 바뀌는 경우)
- !HOTFIX - 급한 오류 수정
- Style - 코드 포맷 변경(코드 컨벤션) 등 기능적 의미에 영향을 주지 않는 변경사항
- Rename - 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우
- Remove - 파일을 삭제하는 작업만 수행한 경우
- Design - CSS등 사용자 UI 디자인 변경
- Comment - 필요한 주석 추가 및 변경
- Update - 기존 기능을 삭제하고 새로운 기능으로 대체하는 경우
- Delete - 기존에 있던 기능을 삭제
- 내용 : 본문 / 구체적인 변경사항
- 수정사항이 여러개일 경우 여러줄로 작성
- 줄은 - 로 구분한다.
[modify] : 로그인함수 수정
- 유저모델에 어떤 필드 추가
- 시리얼라이저에 어떤 거를 넣었다
- view.py 에 어떤 함수에 뭐를 수정
컨디션 관리
- 작업시간에 집중하기
- 주말에는 하루 이상 꼭 쉬어주기
- (웬만하면) 칼퇴하기
3. 회의
⭐ 회의할 때는 캠 켜기 못 씻었어도 켜기! 못생겼어도 켜기! ⭐
일일회의
- 아침 회의
- 9:30 ~
- 오늘 할 일 (역할분담), 건의사항, 현황 공유 + merge 후 Sync Fork 하는 시간!
- 중간 점검
- 14:00 ~
- 오늘 할 일이 어떻게 진행되고 있는지
- 역할분담 정리하기 + 재분담 가능!
- 막히는 부분 공유
- 저녁 회의
- 20:00 ~
- 현황 공유, 내일 할 일, ⭐오늘 이슈 공유(중요⭐)⭐
- 막혔던 부분에 대한 해결 여부 / 해결 방법 공유
주간회의
- 시간 : 목요일 저녁회의 때
- 내용
- 이번주 진행상황 (목표치 달성 여부)
- 다음주 목표 (계획)
- 멘토링 노트 작성
- 금요일 저녁에 한번 정리
프로젝트
기획 의도 (컨셉)
- 은둔형 외톨이 탈출을 도와주는 커뮤니티 (이름 : 힉힉호무리 // 행복한 아싸라이프 // 집 밖으로 한걸음 // 인싸들아 아싸인척 하지 마라)
- 고민 상담 - 인간관계가 너무 어려워요!
- 오프라인 만남 모집 - 친구를 만들고 싶어요!
- 일단 집 밖으로 나가고는 싶은데 어디로 가야할지 모르겠다면?
기능
- DB - MySQL / PostgreSQL 중 택1 → 튜터님께 여쭤보고 결정 / 아마 배포할 때 AWS RDS 사용하지 않을까 싶음
- 회원기능
- 회원가입
- 로그인
- 소셜로그인 (API)
- 계정정보 (= 비공개 프로필)
- 비밀번호 변경 가능
- 프로필 (공개프로필)
- mbti : Choice
- 지역 : Choice , Default=’전국’
- GeoLocation api 사용
- https://www.ncloud.com/product/applicationService/geoLocation
- 나이
- 소개
- 친구맺기
- 아이디 찾기 : SMS 인증 (API)
- 비밀번호 재설성 : 이메일 인증
- 신고 기능
- 신고 누적 시 임시 차단
- django-apscheduler 사용
- https://pypi.org/project/django-apscheduler/
- SNS 기능 - 채팅 (API)
- django channels 사용 (웹소켓)
- https://channels.readthedocs.io/en/stable/
- 결제해서 포인트 충전
- 친구추천 리스트 상단 노출 (유료확성기)
- 토스 api 사용
- https://docs.tosspayments.com/guides/index
- 나랑 같은 MBTI를 가진 유저목록 보여주기(추천), 궁합이 잘 맞는 MBTI 유저목록 보여주기(추천)
- 친구찾기 (오프라인 만남 모집) - 글작성 , 실명
- 지역따라 친구찾기 → 나랑 같은 지역 유저 리스트 : 골라서 채팅보내기
- 취미따라 친구찾기 → 이러이러한 취미생활 같이 할 사람 모집합니다~ ex) 오늘 어느지역 어디 클라이밍 하러 같이 가실 분~ / 오늘 어디서 테니스 치실 분~ 1. 집은 노출 절대 시키면 안됨 2. 사람 검색 데이터가 있을까? 사기라도? 3. 장소가 사람 많은 곳
4. 시간 설정하고 완료 본인 집이 아니면 신고하는 시스템5. 나이제한 20~40세 미만?6. 지역별 범죄자 리스트 보여주기?7. 성인 인증 (커뮤니티 의도가 인간관계 개선이므로 이부분이 들어가는 것이 맞을지? 범죄 위험이 있으니 빼버리는게 나을지)
- 고민상담 탭 (익명)
- 글작성
- 댓글 , 대댓글
- 좋아요
- 댓글, 좋아요 알림
- 맛집 장소 추천 탭(기능, 사용자의 위치에 따라서) → 위치 API 지도 API 크롤링
- 모임의 목적에 따른 추천 : 밥집 / 술집 / 카페 - 크롤링
- 혼밥하기 좋은 식당 추천 - 네이버지도에서 혼밥 태그 가진 식당 크롤링
- 유저들의 맛집 리뷰
- 글작성
- 댓글 , 대댓글
- 북마크
- 댓글 알림
- GeoLocation api 사용
- https://www.ncloud.com/product/applicationService/geoLocation
- NAVER 지도 API v3 사용
- https://navermaps.github.io/maps.js.ncp/
- 크롤링 - bs4 / selenium 사용