Skip to content

GOSOPT-CDS-TEAM7-DeskTop/Backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✨ Pinterest

32기 GO SOPT 합동 세미나 Pinterest


🌸 Contributors 섭팟이들

이동섭 정준서
ddongseop sunseo18

⭐️ Role

담당 역할 Role
프로젝트 초기 세팅 후 푸시 이동섭
.gitignore 설정 이동섭
DB 구축 정준서
ERD 작성 정준서

👻 API Docs

⭐️ API 담당

이름 담당 역할 Role
게시글(핀) 전체 조회하기 [GET] /pin 정준서
게시글(핀) 검색하기 [GET] /pin/?title={title} 정준서
게시글(핀) 상세보기 [GET] /pin/:pinId 이동섭
게시글(핀) 저장하기 [POST] /pin/save 정준서
게시글(핀) 생성하기 [POST] /pin 정준서
댓글 작성하기 [POST] /comment/:pinId 이동섭
유저 정보 조회 [GET] /user 이동섭
정리되지 않은 아이디어 조회 [GET] /user/save 이동섭
팔로우하기 [POST] /user/follow 이동섭

👉️ ERD

KakaoTalk_Photo_2023-05-19-18-09-17

👉 Project Structure

🗂 Pinterest
    🗂 common (공통 처리 관련 클래스)
        🗂 advice
        🗂 dto
    🗂 controller (클라이언트의 요청을 받는 컨트롤러 계층)
        🗂 dto
            🗂 request
            🗂 response
    🗂 domain (도메인)
    🗂 exception (예외처리)
        🗂 model
    🗂 infrastructure (데이터베이스 등 외부 요소와 연결을 수행하는 계층)
    🗂 service (비즈니스로직이 있는 서비스 계층)

🌱 Branch

main branch : 배포 단위 branch

develop branch : 주요 개발 branch, main merge 전 거치는 branch

feature branch: 각자 개발 branch

  • API별로 feature breanch를 생성

    • ex) feat/get_all_pins
  • 해당 branch 작업 완료 후 PR 보내기

    • 항상 local에서 충돌 해결 후 → remote에 올리기
    • reviewer에 서로 tag후 code-review
    • comment 전 merge 불가!

🙏 Commit Convention

ex) [Feat] 댓글 작성 API 기능 구현

- Feat : 새로운 기능 구현
- Fix : 버그, 오류 해결
- Style : 코드가 아닌 스타일 변경을 하는 경우
- Refactor : 프로덕션 코드 리팩토링
- Docs : README나 WIKI 등의 문서 개정
- Chore : 코드 수정, 내부 파일 수정
- Rename : 파일 이름의 변경
- Add : Feat 이외의 부수적인 코드 추가, 라이브러리 추가, 새로운 파일 생성 시
- Del : 쓸모없는 코드 삭제
- Move : 프로젝트 내 파일이나 코드의 이동
- Merge: 다른브렌치를 merge하는 경우
- Init : Initial commit을 하는 경우

🙏 Code Convention

💡 동료들과 말투를 통일하기 위해 컨벤션을 지정합니다. 오합지졸의 코드가 아닌, 한 사람이 짠 것같은 코드를 작성하는 것이 추후 유지보수나 협업에서 도움이 됩니다. 내가 코드를 생각하면서 짤 수 있도록 해주는 룰이라고 생각해도 좋습니다!

명명규칙(Naming Conventions)
  1. 이름으로부터 의도가 읽혀질 수 있게 쓴다.
  • ex)

    // bad
    function q() {
        // ...stuff...
    }
    
    // good
    function query() {
        // ..stuff..
    }
  1. 오브젝트, 함수, 그리고 인스턴스에는 camelCase를 사용한다.
  • ex)
    // bad
    const OBJEcttsssss = {};
    const this_is_my_object = {};
    function c() {}
    
    // good
    const thisIsMyObject = {};
    function thisIsMyFunction() {}
  1. 클래스나 constructor에는 PascalCase를 사용한다.
  • ex)
    // bad
    function user(options) {
        this.name = options.name;
    }
    
    const bad = new user({
        name: 'nope',
    });
    
    // good
    class User {
        constructor(options) {
            this.name = options.name;
        }
    }
    
    const good = new User({
        name: 'yup',
    });
  1. 함수 이름은 동사 + 명사 형태로 작성한다. ex) postUserInformation( )
  2. 약어 사용은 최대한 지양한다.
  3. 이름에 네 단어 이상이 들어가면 팀원과 상의를 거친 후 사용한다
블록(Blocks)
  1. 복수행의 블록에는 중괄호({})를 사용한다.
  • ex)
    // bad
    if (test)
      return false;
    
    // good
    if (test) return false;
    
    // good
    if (test) {
      return false;
    }
    
    // bad
    function() { return false; }
    
    // good
    function() {
      return false;
    }
  1. 복수행 블록의 ifelse 를 이용하는 경우 elseif 블록 끝의 중괄호( } )와 같은 행에 위치시킨다.
  • ex)
    // bad
    if (test) {
    thing1();
    thing2();
    }
    else {
    thing3();
    }
    
    // good
    if (test) {
      thing1();
      thing2();
    } else {
      thing3();
    }
코멘트(Comments)
  1. 복수형의 코멘트는 /** ... */ 를 사용한다.
  • ex)
    // good
    /**
     * @param {String} tag
     * @return {Element} element
     */
    
    function make(tag) {
        // ...stuff...
    
        return element;
    }
  1. 단일 행의 코멘트에는 // 을 사용하고 코멘트를 추가하고 싶은 코드의 상부에 배치한다. 그리고 코멘트의 앞에 빈 행을 넣는다.
  • ex)
    // bad
    const active = true; // is current tab
    
    // good
    // is current tab
    const active = true;
    
    // good
    function getType() {
        console.log('fetching type...');
    
        // set the default type to 'no type'
        const type = this._type || 'no type';
    
        return type;
    }

About

합동세미나 Pinterest✨ 서버 레포

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages