매일 한걸음씩 성장하기

오늘은 어떻게 프로젝트에 기여했나요?

Project

▷ 프로젝트 리스트 조회 기능 구현

- `get /project` 요청 처리 로직 작성

데이터베이스에서 로그인한 유저가 팀원으로 속해있는 프로젝트를 검색합니다

join table 이용하여 어떻게 검색할 것인지 고민한 후 코드를 작성했습니다

// 모든 프로젝트 검색
const allProjects = await getRepository(Projects).find({
    relations: ['members'],
    order: {
        createdAt: 'DESC', // 순서: 최신순
    },
});

// 프로젝트에 해당 멤버가 있는지 확인
let projectList = [];
for (let idx = 0; idx < allProjects.length; idx++) {
    let members: number[] = allProjects[idx].members.map(el => el.id);
    if (members.includes(userInfo.id)) {
        let obj = { ...allProjects[idx], members };
        projectList.push(obj);
    }
}

 

▷ project 테이블 보완

- project 테이블에 'projectURL' 필드 추가

- endpoint 변경(project_path을 projectURL로 변경)

 

Document

▷ 스키마 디자인 점검 및 보완

- 이름만 보고 어떤 데이터에 관한 필드인지 직관적으로 알 수 있도록 필드 이름을 수정했습니다

 

▷ WIKI 점검 및 업데이트

Project Goals, DB Schema, API Document 작성

 

 

오늘의 프로젝트에서 힘든 점은 무엇인가요?

▷ 변수명 짓기의 어려움

초반에는 route의 endpoint나 entity의 field 이름을 정할 때는 그때그때 떠오르는 이름으로 바로 만들곤 했었는데 관리하는 데이터나 controller가 많아지면서 이름 짓기가 점점 어려워졌습니다.

이 이름들은 나 혼자만 쓰는게 아니라 back-end을 담당하는 다른 팀원이나 심지어는 front-end 담당 팀원들도 함께 사용하기 때문에 이름 짓기에 더욱 신중해졌습니다. 이름 짓기의 중요성을 크게 느꼈고 어떻게 작성해야 할지에 대한 고민을 많이 하게 되었습니다.

개인적으로 이름만 보더라도 바로 어떤 데이터를 다루는 것인지, 어떤 기능/동작을 하는 것인지 직관적으로 바로 알수있어야 한다고 생각합니다. 그런데 recruit나 project에서 많은 수의 기능이 있지만 비슷한 데이터를 다루다보니 이름이 비슷해지는 경향이 생겼고 길어져서 쉽게 읽기 힘들어졌습니다. 이 현상을 방지하면서도 좋은 이름을 만들려고 하다보니 생각보다 시간이 오래 걸리게 되었습니다(오늘 스키마 디자인을 보완하면서 필드명을 다시 점검했는데 생각보다 그당시에 대충 지었던 이름들이 많아서 다시 작성하느라 시간이 꽤 걸렸습니다).

예시로 위 사진처럼 1:N 관계를 연결하는 필드명을 작성할 때 어떤 이름으로 해야 part나 task_box가 현재 작업하는 프로젝트의 일부분이라는 것을 명시해줄수 있을까,에 대해 고민을 많이 했습니다. 결국 사진과 같이 `doingPorject`, `groupingPart` 등으로 작성했는데 사실 마음에 들지는 않습니다.. 이것보다 더 잘 표현할 수 있다는 이름이 있을 거 같다는 생각이 들지만 내가 원하는 의미를 담은 단어를 찾기가 너무 힘들었습니다.

현재는 '동작_데이터(camel case)' 이름을 작성하고 있는데 아직 영어 실력이 부족해서 그런지 내가 원하는 의미의 단어를 찾기가 쉽지 않고 이게 맞는 단어인지 헷갈릴 때도 많습니다. 앞으로도 계속 naming convention이나 이름/변수명 작성법 등에 대해 계속 고민해가며 보다 효율적이고 의미가 잘담긴 이름을 짓는 방법에 대해 연구해보고 싶습니다.

 

 

내일은 프로젝트에 기여하기 위해 무엇을 해야 하나요?

▷ project 관련 기능 구현 및 테스트

- 프로젝트 리스트 조회 기능

- 프로젝트 생성 기능

- 프로젝트 수정 기능

- 프로젝트 삭제 기능

- 프로젝트 팀원 초대 기능

- 팀원 추가 기능

 

'Code States > Project Record' 카테고리의 다른 글

[기록] Final Project_2021.05.20  (0) 2021.05.20
[기록] Final Project_2021.05.19  (0) 2021.05.19
[기록] Final Project_2021.05.17  (0) 2021.05.17
[기록] Final Project_2021.05.16  (0) 2021.05.16
[기록] Final Project_2021.05.14  (0) 2021.05.14

공유하기

facebook twitter kakaoTalk kakaostory naver band