매일 한걸음씩 성장하기

기능을 구현하는 것도 중요하지만 변수명 컨벤션이 매우 중요하는 것을 깨달았습니다.

서버 코드에서는 camel case를 사용했는데 데이터베이스 코드에서는 snake case를 사용하고 있었습니다. 이와 같은 케이스 차이로 프론트엔드의 코드까지 케이스가 뒤죽박죽이 되었습니다.

프론트엔드와 회의하여 camel case를 사용하기로 결정했고 잘못된 부분들을 모두 수정하는데 시간을 보냈습니다.

그나마 해당 문제를 일찍 발견해 수정할 코드가 별로 없다는 것에 다행이라 생각하며 미리 컨벤션을 정해야한다는 것을 배웠습니다.

 

 

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

Recruit

▷ writer 정보(게시글 작성자), 댓글 수 정보 추가

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

- `post /recruitBoard` 요청 처리 로직 수정

- `delete /recruitBoard/:board_id` 요청 처리 로직 수정

 

▷ image 정보 추가 및 image 데이터를 다루는 로직 수정

- `imageUploader` 로직을 controller에서 middleware로 이동

- request name을 `profileImageName`에서 `uploadImageName`로 변경

- image data를 다루는 관련 요청 로직 수정 (이미지 저장 / 이미지 삭제)

 

Database

▷ 데이터베이스 리펙토링

- 필드명을 snake case에서 camel case로 변경(Naming Convention 통일)

- users, recruits, recruit_comments 테이블 리펙토링

- 테이블을 사용하는 모든 요청 처리 로직 수정

 

▷ 테이블간 관계 정리

- 1:N 관계로 연결되어 있는 테이블 정보 수정

- user ↔ recruit, recruits ↔ recruit_comments

 

Test & Fix

▷ Profile, Recruits 기능 점검 및 수정

- undefined 에러 수정

- JSON 에러 수정

- req.body에 데이터가 없는 경우에 대한 분기 처리 추가

- 이외 테스트하며 생기는 다양한 에러에 대해 코드 수정&보완

 

 

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

▷ 에러 처리하기

클라이언트쪽에서 데이터 저장 요청을 일부 필드에 undefined인 상태로 보내는 경우가 있었습니다.

그런데 요청으로 받은 데이터를 처리하는 과정에서 undefined를 고려하지 않았기에 정말 많고 다양한 에러를 만나게 되었습니다. 특히 배열이나 JSON으로 처리하는 데이터의 경우에는 에러가 무조건 발생했습니다. (undefined에서는 배열의 메서드나 JSON의 메서드를 사용할 수 없기 때문에 일어나는 에러)

그래서 각 데이터가 존재할 때만(undefined가 아닐때에만) 데이터 처리를 할 수 있도록 일일히 분기처리를 해주어야 했습니다.

if (career) {
    foundUser.career = JSON.stringify(career);
}

앞으로는 이렇게 분기처리/예외처리를 해줘야하는 여러가지 상황을 고려하며 충분히 고민한 후에 로직을 작성하는 습관을 가져야겠습니다.

그리고 로직을 완성했다고 끝나는게 아니라 계속 예기치 못한 에러가 언제든 발생할 수 있다는 열린 마음과 에러를 만나자마자 원인을 빠르게 파악하고 코드를 바로 수정할 수 있는 민첩함을 가져야한다는 것도 깨달았습니다.

 

▷ API 문서

First Project와 달리 이번 프로젝트에서는 다루는 데이터가 많아지다보니 API 문서를 작성하는 것도 굉장히 까다로워졌습니다. 특히 example 작성하는 부분... data format을 틀리면 안된다는 부담감에 더 까다롭게 느껴집니다.

아직은 개발 단계라 처음 계획했던 data format을 계속 유지하는 게 아니라 클라이언트와 이야기해보며 계속 data format을 변경하고 있습니다.

처음에 미처 생각하지 못했던 데이터를 추가하거나 효율성을 위해 format을 수정&보완하는 것인데 이 주기가 굉장히 빨라서 바로바로 API 문서에 적용하기 조금 힘들어졌습니다. 코드를 작성하다가 바로 API 문서를 수정하지 못하기 때문에..

그래도 First Project와 이번 Final Project를 진행하며 API 문서가 엄청엄청엄청 중요하다는 것을 깨달았기 때문에.. 힘들지만 최대한 빠르게 API 문서를 갱신할 수 있도록 노력해야겠습니다.

 

 

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

▷ 토요일(5/15)은 쉬는날!

- 그동안의 피곤이 누적되서 그런지 오늘 컨디션이 대체로 저조했습니다.. 내일 쉬면서 컨디션 회복할 예정입니다

 

▷ Profile, Recruit 관련 요청 로직 테스트 및 수정&보완

- client와 연결하기

- 지금까지 구현한 기능을 포함하여 배포하기

 

▷ Project 요청 로직 구현 시작

 

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

[기록] Final Project_2021.05.17  (0) 2021.05.17
[기록] Final Project_2021.05.16  (0) 2021.05.16
[기록] Final Project_2021.05.13  (0) 2021.05.13
[기록] Final Project_2021.05.12  (0) 2021.05.12
[기록] Final Project_2021.05.11  (0) 2021.05.11

공유하기

facebook twitter kakaoTalk kakaostory naver band