Skip to content

1주차 회의록

Myeonghoe Song edited this page Oct 29, 2021 · 15 revisions

회의록

2021-10-25

  • 참여자
    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우
  • 시간
    • 오전 10:00 ~ 오전 12:00 / 오후 02:30 ~ 오후 07:00
  • 그라운드 룰 / 팀 목표 정하기
    • 각자 프로젝트를 임하는 목표를 정했습니다.🙆‍♂️
    • git, pr, issue convention을 정했습니다.
    • git 전략을 정하는데 애를 먹었습니다... merge방식, main/dev/feat브랜치를 효율적으로 사용하는 법을 찾고 있습니다.
  • 아이디어 브레인 스토밍 진행
    • 각자 아이디어를 생각하고 그에 대한 의견을 나누었습니다.
  • 기본 개발 규칙 정하기
    • 파일/변수 이름 짓는 방식, 코드 작성 규칙(eslint, prettier)를 정했습니다.(수정 가능!)
  • API 명세서 만들기
    • Swagger 서비스를 이용해서 만들기로 정했습니다.

2021-10-26

  • 참여자

    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우
    • 성지현 멘토님
  • 시간

    • 오전 10:00 ~ 오후 12:00 / 오후 01:30 ~ 오후 07:00
  • 안건

  • 주제 정하기

    • 아이디어 피칭 이후 부스트캠프 교육 내용을 얼마나 반영하는지, 프론트엔드와 백엔드를 모두 적정한 수준으로 포함하는지, 어느정도부터(e.g. 맨바닥에서부터) 시작해야 하는지 등을 고려하여 구루미 클론 VS 내 지역 후기로 의견을 좁혔습니다.
    • 이후에 리뷰어님과의 이야기를 통해서 내 지역 후기를 선택하였고, 위치 정보를 효과적으로 처리하기 위한 기술을 찾아보기로 했습니다.
  • 멘토님 미팅 회의록

    • 동네 거주 후기 -> 위, 경도 최적화 db가 있으니 찾아보자, 지도 api, 위치 기반 데이터 헨들링(퍼포먼스), 위치를 어떻게 가져올것이냐, 데이터가 많이 쌓여있을 때 성능을 향상시킬 수 있는 단계적인 방법
    • 지라 VS 깃허브 -> 깃허브를 주로 쓰는게 좋은것같다. 지라는 wiki를 많이 사용한다.
    • 리뷰 -> 피처가 완성되면 한번씩 진행하는게 좋을것 같다.
    • 경쟁력 -> 기본은 코딩테스트(많이 갈림), 면바면(cs우선? / 프로젝트(경험)우선? /)하지만, 제일 중요한건 깊은 기술적 고민 -> 기술적 고민이 제일 중요하다!
  • git branch 전략

    • 1,2,3 전략 중 첫번째 전략으로 현업에서 멘토님꼐서 하고 계심

  • 주제 관련 주요 기능

    • 지역에 대한 전반적인 평점을 매겨보자
    • 지도 축척 변경에 따라 시 - 군 - 구 레벨로 지도에서 색상 기반 구분 및 마커 표시(평점, 워드 클라우드 내용)
    • 지도 위의 마커를 클릭하면 해당 후기들과 그 지역에 대한 사용자들의 반응 통계(텍스트, 평점 등)가 나옴
  • 넣고싶은 기능 브레인스토밍

    • 후기의 카테고리를 나누자
      • 맛집, 여행, 카페, 공원 등
    • 동네 랭킹
      • 포함 관계를 생각하여 평점을 합산 -> 평점을 매기는 방식은? 가중치는?
      • 랭킹 기준은 텍스트+평점
      • 랭킹 카테고리가 있어서 맛집, 여행, 카페, 공원 등 적용
    • 몇 명, 연령대 인구 공공 API
      • 지역의 정보 표시
    • 평점을 매기는 방식
      • 시, 구, 동 단위로 세 번 매기는 것?
      • 평점을 합산하는 방식?
      • 치안점수, 교통점수, 문화점수, 공원점수, 교육점수 등으로 세분화해서 점수 매기는 방식이 재미있을 것 같다
    • 소모임 채팅
      • 동네는 내 위치 인증(중고나라처럼)
    • 관심 리스트
      • 장소 선정
      • 후기를 내 관심 리스트 CRUD
    • 번개 이벤트
      • 내 근처 사람들에게 푸시알림 보내기
    • 사용자 랭킹제
      • 후기 많이 올리면 일반자 -> 백작 -> 공작 -> 왕 -> 태양신
    • DM
      • 중고거래처럼 개인 채팅 방을 개설할 수 있도록 만들기
    • 영어버전 만들기
      • 외국인을 위한 언어 변경
      • 후기 적으면 바로 번역도 가능
    • light, dark 버전 만들기
      • 색상 변경하기

2021-10-27

  • 참여자

    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우
  • 시간

    • 오전 10:00 ~ 오전 11:00 / 오후 02:30 ~ 오후 07:00
  • 요약

    • git 전략을 최종적으로 결정
      • upstream을 제거하고 origin만 존재하는 형태로 다시 git 명령어 정리
    • 기술 스택 정하기
      • 간단히 정할 수 있는 기술 스택을 생각해서 나누기
      • Backend / Frontend / Infra / CI/CD 등으로 나누어서 생각하기
    • 기능 구체화
      • 기술 스택을 세부적으로 진행하려고 해 보니, 기능을 좀 더 구체화하지 않으면 어려울 것 같으므로, 기능을 우선 구체화하자.
      • 메인 기능 작성(사용자 거주지 작성 vs 사용자 위치 인증)
        • 거주지 작성으로 하자. 임의로 위치에 따라 거주지 후기를 작성하는 것을 좀 더 번잡하게 적용
    • 후기는 어떤식으로 작성할까?
      • 잡플래닛에 나오는 것처럼 분야별로 평점을 매기고, 태그를 보여주는 형식이 좋을 것 같다.
      • 이외 맛집, 여행 좋은 곳, 공공 시설 등에 대한 자연어 후기를 게시글 부분으로 빼자
    • 기본 기능에 대한 의견
      • Word cloud는 데이터가 많아야 하기 때문에 카테고리를 보여주는 것이 더 나을 것 같다.
      • 유저 접속 시, 거주지는 무조건 입력하도록 하는 것이 편리할 것으로 보임
    • 백로그 작성
      • 핵심 기능(로그인, 맵, 동네 후기, 동네 게시글)에 대한 백로그 작성
      • 추가적인 기능은 내일 더 작성하도록 하자
  • 기술 스택

    • frontend

      - TypeScript
      - React
      - Recoil vs Redux
        - Recoil 1표 
        - App 상태 봐서 1표
      - styled component vs module CSS -> Styled Component
      - CRA vs webpack -> CRA
      - 사용자 위치 정보 받아오기
          HTML5 Geolocation API
          http://dev.youngkyu.kr/31
          https://lcw126.tistory.com/191
      - 지도 API 카카오 VS 네이버
      
    • backend

      -  nginx
      - https
      - TypeScript
      - Node.js, Express
      - jwt
      - 위도, 경도 MySQL 저장 데이터 타입
          https://blog.hajs.me/82
      
    • Infra

      - nCloud
      - Frontend Server : nginx
      - Backend Server : express
      - docker
      
    • CI/CD

      - jest
      - github action
      
  • 핵심 기능 구체화

    • 회원가입 / 로그인

      • OAuth 및 프로필 수정 기능
        • 최초 OAuth 인증 후 회원등록시 프로필 정보(주소 등) 입력
    • 맵 기능

      • 웹 페이지 UI 컨셉 : 직방
      • 지도 컨셉
      • 지도 API 기반의 축척 변경 및 동네 구분, Marker 삽입(총 평점)
      • Marker Mouse over 시, 잡플래닛과 유사한 항목 별 평점 표시
        • 여유 만들어서 추가(Word cloud 또는 카테고리)
      • Marker 클릭 시, 후기 내용 우측 화면 표시
        • 400자 이내 후기 글(+사진 -> 쿠팡 처럼)
      • 사용자 위치 획득 / 인증
        • 사용자 로그인 무관 현재 사용자 위치 기반 지도 보여주기
        • 사용자는 프로필에 등록한 주소(동) 기반으로 글 작성 가능
      • 후기 동네 클러스터링
        • 최소 단위 : 동
        • 최대 단위 : 도(광역시 포함)
        • 평점 매기는 방식? 평균
    • 동네 후기 CRUD

      • 동네에 대한 평점 매기기 (카테고리별 세부평점 매기기)
      • 동네에 대한 후기 남기기 (평점 부여시 선택, 400자 제한)
      • 프로필 작성 기준 글 권한 부여
      • 최신순으로 보여주기
    • 동네 관련 게시글 CRUD

      • 맛집, 동네에 여행하기 좋은 곳, 공공시설 등
      • 사진 업로드(object storage 사용)
      • 분류 설정(맛집인지, 공공시설인지 등)
      • 글 적는 부분
    • DB 설계

      • User
        • 이름, email(oauth), 거주지,
  • git 전략(혜현) 노션참고

  • git 전략(종우)

    참고 : https://techblog.woowahan.com/2553/

    1. origin Repository : main / dev 브랜치 생성
    2. 최초 1회 Local로 dev 브랜치 clone 후 directory 이동
      - (local) git clone -b dev xxx.git
      - cd REPO_NAME
    3. 기능별 브랜치 생성(feat/{example})
    4. 개인별 작업 브랜치로 이동
      - git checkout feat/{example}
      - git checkout -b {example}/#?
    5. Local 작업 브랜치 코드 수정 및 commit 진행
      - ({example/#??) git add && git commit
    6. Local 기능 브랜치(feat/{example})에 단순 merge
      - (feat/{example}) git merge {example}/#??
    7. Local 작업 브랜치를 origin 대상 기능 브랜치에 push
      - (feat/{example}) git push origin feat/{example}
      - 이 때, Conflict 발생 시, rebase 후 conflict 해소 이후 push
         - (feat/{example}) git pull --rebase origin feat/{example} 진행 후 conflict 해소, commit, rebase --continue
    8. origin feat/{example} -> origin dev으로 PR
      - PR 리뷰 및 Squash and Merge
      - Conflict 발생 시 - (Local feat/{example}) git pull --rebase origin dev (conflict 해소 후 다시 Push && PR)
      - Conflict 미 발생 시 - (Local feat/{example} -> origin feat/{example}) git push feat/{example} && PR
    9. 배포판 구성 시, origin dev -> origin main 으로 PR
      - create and merge의 경우 origin main -> origin develop으로 fetch 해주어야 함
    10. Local 작업 브랜치 fetch and rebase
    - (Local dev branch) git pull --rebase origin dev
    11. 신규 기능, 3번 부터 반복

10/28 회의록

  • 참여자
    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우
  • 시간
    • 오전 10:00 ~ 오전 12:00 / 오후 01:30 ~ 오후 07:00
  • 진행할 사항
    • 금일 진행할 일 : Git 전략 이해, Figma 그리기, 기능 명세서 완성, 기술 스택 완성, 리더 정하기, 기능 명세서 우선순위 선정 완료, ERD랑 인프라 구조 설계
  • 요약
    • ★☆★ 리 더 is 문 혜 현 ☆★☆

    • Git 전략 관련 오전 회의 진행 및 Wiki 페이지 완성
    • 지도 geoJson 및 시군구(행정구역) 폴리곤 만드는 방법 확인 필요
    • 로그인 로직 관련 회의 진행
    • Figma 작업 진행
    • App 메인 색상 :
      • 현재 figma 색상 무시하고 아래 색상 기준으로 개발
    • 로고 만들기
      • 대회 : 로고 각자 만들어와서 투표를 통해 꼴찌가 1등에게 오프라인 모임 때 커피 사기!!
      • 링크
    • 기능 명세서(백로그) 핵심 기능 수정 완료
      • 중요도 설정 완료 : 메인 기능들은 High, 애니메이션 등 Front 관련 내용 Middle, 기타 Low로 설정
    • ERD 설정
      • 테이블
        • User : 사용자 정보 저장
          • Column: id(PK), oauth_platform_email(NN), 거주지(NN)
        • Rate : 지역 평점 정보 저장 테이블
          • Column: id(PK), user_id(FK), safety_rate(NN), traffic_rate(NN), food_rate(NN), enter_rate(NN), 거주지(동 단위)(NN), postscript
        • Article: 게시글 정보 테이블
          • Column: id(PK), user_id(FK), content(NN)
        • Image: 게시글 이미지 테이블
          • Column: id(PK), Article_id(FK), url(NN)
        • Category: 게시글 카테고리 테이블
          • Column: id(PK), Article_id(FK), category(NN)
      • 기능 명세
        • User는 oauth 기반 로그인을 할 수 있다.
        • User는 거주지에 대한 평점을 매길 수 있다.(6개월 1회)
        • User는 거주지에 대한 N개의 게시글을 남길 수 있다.
        • 게시글에는 관련 이미지를 3개까지 첨부할 수 있다.
        • 게시글은 관련 카테고리를 최대 3개까지 설정할 수 있다.
      • Associations
        • User - Rate (1:N)
        • User - Article (1:N)
        • Article - Image (1:N)
        • Article - Category (1:N)
    • 인프라 설계 구조
      • 초기에는 1개 인스턴스에 Front / Back 서버 모두 구축, DB 서버는 별도 구축
      • DB - MySQL 의 경우 replication 설정 직접 진행하여 Master - slave 구축하기
      • 이미지의 경우 Object 스토리지 사용하여 통신
    • 기술 스택
      • FE
          - React
          - Recoil vs Redux
          - TypeScript
          - styled component
          - CRA
          - HTML Geolocation API (사용자 위치 정보 받기)
            - 참고
              - http://dev.youngkyu.kr/31
              - https://lcw126.tistory.com/191
          - 지도 API 네이버 / 카카오
            - 행정구역 Clustering, geoJSON 설정
            - 마커 표시, 마커 클릭 이벤트
        
      • BE
          - Express
          - TypeScript
          - HTTPS
          - NCloud
          - MySQL
        
      • Test
          - Frontend : jest
          - Backend : postman
        
      • CI/CD
          - github action
        
      • Infra
          - nCloud
          - Frontend Server : nginx
          - Backend Server : express
          - Object Storage
        

10/29 회의록

  • 참여자

    • J077_문혜현, J107_송명회, J218_홍승용, J219_홍종우
  • 시간

    • 오전 10:00 ~ 오전 11:30, 오후 04:00 ~ 오후 05:00, 오후 06:00 ~ 오후 07:00
  • 진행할 사항

    • 금일 진행할 일 : PR/이슈 템플릿 만들고 테스트, README 업데이트(+기술적 도전 명세), 발표할 내용 정하기, API명세 작성, 그라운드 룰 수정
  • 요약

    • 템플릿 만들기 완성 및 README 예쁘게 다듬기 완료
    • 발표 내용에 한 주동안의 과정(어떻게 회의하고, 어떤 과정에서, 무엇을 결정했는지 등)
    • API 명세 일부 토의
    • 스크럼 및 회의록 게시 당번 결정
    • 10/29(금) 멘토링
  • 발표 방식

    • 기본적으로 readme 내용
      • 프로젝트 개요 / 기술 스택 / 기술적 도전 / README에 정리한 내용
    • figma
      • 디자인 및 컨셉 설명
    • 인프라
      • 인프라 구조 초창기 설계 내용 및 추후 발전시킬 컨셉 대략 설명
    • 어떻게 회의하고? 아침 10시부터 저녁 7시까지 풀 화상미팅+회의록 작성
      • (1일차) groud rule 정하기
      • (2일차) git 전략 회의(단계를 나눴던거)
      • (3일차) 주제 정하고 기능 명세서 작성+멘토님 미팅 -> 주제를 늦게 정하게됬다
      • (4일차) 백로그 작성 완료 및 figma 작성
      • 협업 툴 : hackmd, google spreadsheet, figma
  • 추가 의견

    • SPA 그리고 SSR과 CSR
    • CI/CD를 좀 더 Tool 기반 전문적으로 사용하기 (sourcedev, sourceComit, SourceBuild, SourceDeploy, SourcePipeline)
    • 도커의 경우 CI/CD를 좀 더 잘할 수 있고, 배포판을 따로 관리한다면 좋다고 함
    • 현재 인프라 구조로 구성을 한 뒤 나중에 전문적인 Tool과 docker를 사용해보기
    • 다른 팀은 Socket.io, WebRTC 등의 기술을 많이 사용하려는 흔적이 보임. 우리 프로젝트에는 현재 적합하지는 않은 듯.
  • API 명세서 작성

    • 회원가입(프론트엔드에서 access token 다 받은 후)

      • request: GET /api/auth/sign-up
      • response: 로그인 페이지로 redirect
    • 로그인

      • request: GET /api/auth/sign-in
      • response: true/false
    • MAP

      • request: GET /api/map?현재 한단계위 시/군/구
      • response: 그 시/군/구에 있는 한단계 아래 모든 동네 총 별점, 카테고리별 별점, 상위 3개 태그
        • 축적이 구 단위이면 가져오는 정보는 현재 구가 포함된시에 있는 모든 구 폴리곤 정보를 가져온다
        • 축적 레벨에 따라서 가져오는 정보를 한 단계 위(지도 꽉 채우기)로 또는 한 단계 낮게(지도 여백 남기기) 둘 중 하나 정하기
    • 사이드바(Map 클릭 시)

      1. 후기
        • request: GET /api/postscripts?선택된 동네
        • response: 현재 동네의 후기 정보 상위 5개
      2. 게시글
        • request: GET /api/articles?선택된 동네
        • response: 현재 동네의 게시글 정보 상위 5개
    • 후기 작성 Modal

      • request: POST /api/postscripts
        • Body : 선택 동네, 평점
      • response: 후기 정보 DB 저장 결과
  • swagger vs postman

    • swagger 공부해보기
  • 일요일 오전 10시 회의

    • DB
    • API
    • 인프라 도커 적용
    • 무중단 배포
  • 그라운드 룰 추가

    • 주차별로 스크럼, 회의록 위키에 올리는 것 담당하기
    • 홍승용, 문혜현, 홍종우, 송명회
Clone this wiki locally