매일 한걸음씩 성장하기

매일 바쁘게 작업을 하고 있지만 그만큼 성장하는게 느껴져서 재밌습니다.

얼른 완성된 모습을 보고 싶습니다.

 

 

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

Login

▷ 유저 프로필 색상 정보 추가

- 새로운 유저 정보를 등록할 때 `profileColor` 데이터도 함께 저장

이전에 작성한 로직은 `post /profile` 요칭을 해야 `profileColor` 데이터가 생성되었는데 사실 `profileColor` 데이터는 처음 로그인했을 때부터 필요했습니다(header 상단에 프로필을 표시해야 하므로). 그래서 처음부터 새로 가입한 유저 정보를 데이터베이스에 저장할 때 `email`, `name` 뿐만 아니라 `profileColor`도 함께 저장되도록 보완하였습니다.

 

Profile

▷ image를 관리하는 변수명 통일

- `profileImage`, `recruitImage` 변수명을 `uploadImage`로 통일시키고 이 변수명을 사용하는 로직 수정

통일시킨 이유는 클라이언트에서 image 데이터를 관리할 때 효율적으로 사용하기 위해서이고(변수명이 통일되면 한 함수에서 쉽게 관리 가능), 서버에서도 굳이 두 개로 이름을 분리해서 사용할 필요가 없기 때문입니다.

어차피 저장/검색만 하고 profile과 recruit간 데이터들이 독립적이라 이름을 구분지을 필요가 없습니다.

 

Recruit

▷ 게시글 등록/수정할 때 사용될 기본 썸네일 이미지 설정 및 저장

- `basic_img_1.png` ~ `basic_img_13.png` 추가

- 기존에 기본 썸네일 사진으로 입력되어 있던 `basic.png` 부분 삭제

 

▷ 유저 정보 추가

- 게시글 데이터에 유저 정보 추가

- 댓글 데이터에 유저 정보 추가

- users 테이블과 recruit_comments 테이블을 1:N 관계로 연결

 

▷ 로그인을 하지 않은 유저가 사용할 수 있는 기능 설정(체험 모드)

- 체험모드가 가능한 기능: 팀원모집 게시글 리스트 보기, 팀원모집 게시글 조회

체험모드가 가능한 controllers 들은 따로 `noLoginRouter`로 묶은 뒤, `noLoginRouter`은 `authChecker`(access token으로 현재 로그인한 유저를 확인하는 미들웨어)를 거치지 않게 하였습니다.

 

Test & Fix

▷ 지금까지 구현한 로직에서 발생한 여러가지 에러 수정

- undefined 에러 수정

- JSON 에러 수정

- map 에러 수정

- null 데이터로 변경되는 에러 수정

 

▷ 지금까지 구현한 로직을 포함하여 배포 작업 진행

 

 

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

▷ typeORM에서 외래 키 필드를 포함하여 검색하기

foreign key나 join으로 relation을 설정한 필드를 포함하여 데이터베이스를 검색하고 싶을 때는 `ralations`에 해당 필드명을 추가해주면 됩니다. 보길 원하는 필드명만 입력해주면 그 필드를 포함하여 데이터가 검색됩니다.

const commentsList = await getRepository(Recruit_comments).find({
    relations: ['writer'],
        where: {
            recruitBoard: {
                id: boardId,
            },
        },
});

그동안은 검색할 때 항상 모든 필드명을 입력해주어야하는 줄 알았습니다. 그래서 response로 댓글 데이터를 보내줄 때 필요하지않은 댓글이 어느 게시글에 포함되어있는지에 대한 정보(`recruitBoard`)도 함께 내려갔습니다. 그동안은 spread syntax 등을 사용하여 recruitBoard를 제외해보려 했지만 실패했었는데 오늘 드디어 방법을 찾았습니다! 와아~

다시 한번 제가 아직 typeORM에 대해 모르는 게 많다는 것을 깨달았습니다.

 

▷ 성장하고 있습니다

SR 단계를 제외하면 오늘 프로젝트 개발을 본격적으로 시작한지 6일차가 되었습니다.

그런데 참 신기한게 분명 며칠전에 코드를 작성할 때는 이게 맞는 로직이라고 생각했었는데 오늘 다시 보니 전혀 다른 방향으로 작성한 엉뚱한 로직이라 다시 수정해야하는 경우가 많았습니다. 그때는 클라이언트에 필요한 데이터를 다 보내주었다고 생각했었는데 오늘 작성자 정보를 새로 추가한 것처럼 빼먹은 것도 많고 그때는 몰랐던 에러들도 많이 발견했습니다.

약 일주일이라는 짧은 시간이지만 프로젝트 개발을 하며 매일 폭풍성장을 하는 기분입니다. 며칠전 송이와 오늘의 송이의 실력차가 확 느껴집니다. 계속 에러를 수정하고 로직들을 점검하는데 그때마다 새로 수정하고 보완해야하는 부분이 발견됩니다. 지금 코드를 어떻게 해야 더 효율적으로 짤 수 있는지도 보입니다. 참 신기합니다.

오늘 작업을 하면서 다시 느낀건 한번 로직을 완성했다고 다 끝난게 아니라 매일 다시 그 로직을 점검해보면서 수정&보완할 부분이 없는지 찾는 과정이 꼭 필요하다는 것입니다. 끝날 때까지 끝난게 아니다, 라는 말을 다시 되새기며 배포 + 클라이언트와 연결하여 테스트가 끝나기 전까지는 주기적으로 그동안 작성했던 로직들을 점검하는 시간을 가져야겠다는 다짐을 했습니다.

며칠전에 작성한 코드의 부족함이 눈에 띄고 고치는 과정이 쉽지는 않고 같은 코드를 여러번 뜯어보고 고민하는 작업이 힘들지만 그만큼 성장하고 있다는 게 느껴져서 그런지 오히려 재밌습니다. 앞으로도 이와 같은 모든 작업들이 다 배우는 과정이라고 생각하고 하나하나 허투루 하지말고 집중하며 코드를 점검하고 작성 및 수정 해야겠습니다.

 

 

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

▷ project 기능 구현 시작하기

- 프로젝트 테이블 entity 작성

- 프로젝트 router inital setup

- 프로젝트 리스트 조회

- 프로젝트 생성

- 프로젝트 팀원 초대

 

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

[기록] Final Project_2021.05.18  (0) 2021.05.18
[기록] Final Project_2021.05.17  (0) 2021.05.17
[기록] Final Project_2021.05.14  (0) 2021.05.14
[기록] Final Project_2021.05.13  (0) 2021.05.13
[기록] Final Project_2021.05.12  (0) 2021.05.12

공유하기

facebook twitter kakaoTalk kakaostory naver band