# First Project 회고록

첫 번째 프로젝트의 시작 그리고 끝

# Phovis의 시작

프로젝트 팀원들과의 브래인 스토밍 중에 사진에 출사장소에 대한 고민을 가지는 사람들이 있다는 아이디어를 바탕으로 시작하게 되었다.

기본적으로 제공하는 기능입니다.

  1. 출사장소 글 작성

  2. 출사장소에 사용자가 사진으로 덧글 남기기

  3. 출사장소 글에 좋아요, 북마크 남기기

  4. 마이페이지에서 모아보기

기본적인 sns의 기능을 갖출수 있도록 구현하였다.

# stack

개발 환경 - typescript, github

프론트 앤드 - react, redux, next

백엔드 - express, typeorm

# 구현에 대한 자세한 내용

  1. 기본적인 글작성의 CRUD 기능, 사진류 작성의 CRUD 등을 구현하였다.

우선적으로 사진을 업로드 하기 위해서는 사진을 DB에 직접 저장하는 것이 아닌,

AWS bucket을 이용하여서 사진을 업로드하고, 파일에 접근할 수 있도록

권한 및 CORS 세팅을해준 뒤에 해당 버킷 URL을 받아와 DB에 저장할 수 있도록 하였다.

이과정에서 AWS-SDK를 이용하였다.

  1. typeORM을 통하여 앤티티를 세팅하는 작업을 진행하였었고, 작업을 위한 SEED data를 삽입하는 과정을 진행하였다.

팀원이 만들어 둔 db schema 구조를 entity 마이그레이션 작업을 진행하고,

이 과정에서 Forein key와 primary key를 연결하고 관계를 형성하는 과정을 진행하였다.

SEED 데이터를 쉽게 생성할 수있는 기능을 sequlize정도로 지원해 주지 않는 typeORM 특성상 직접 SEED 데이터를 삽입하는 과정을 별도로 설계하였다.

  1. API 문서화 작업 Post Man 을 통하여 API 문서를 작성하였다.

API 문서를 만들면서 직접 테스트 환경도 조성할 수 있는 장점이 있는 Post man을 이용하였고, 덕분에 문서작업의 수고를 줄일 수 있었다.

API 문서 바로가기 (opens new window) 여기 링크를 통해 API 문서를 확인할 수 있다.

# 아쉬운 내용

  1. 배포단 참여 부족

배포 부분을 AWS로 진행하였는데 아무래도 IAM 계정을 이용하다 보니 S3 버킷 이외의 부분에서는 비용이 발생할 불안요소가 있어서 직접 참여하지 못한 것이 아쉽다.

  1. 회원정보 API 미참여

회원가입 로그인 등 회원정보를 컨트롤하는 부분에 대한 구현을 경험해 보지 못한 부분에 아쉬움이 남는다.

  1. 코드 스타일링

코드 재사용성에 대한 고려가 부족한 코드 구현 코드 구현에 있어 함수 지향적인 코드로 구성이 되지 못한 것이 가장 큰 아쉬움으로 남는다.

쿼리작성을 비효율적으로 이어 나가야 했던 부분이 가장 큰 아쉬움인 것 같다.

  1. typescript 활용도

처음에는 any를 쓰지 않고 작성하는 것을 목표로 잘 작성하였지만, 마지막 즈음에는 시간에 쫒기듣이 코드를 작성하여 레거시한 코드를 남기고 말았다.ㅠ

  1. Error 핸들링

서버단을 처음 경험하다 보니 Error 핸들링에 대한 경험이 부족하다는 것을 느끼게 되었고, 에러를 핸들링하는다는 개념을 좀 가볍게 생각했던 것 같다고 느껴졌다. 시간을 가지고 공부해야 될 부분이라고 판단 되었다.

# 다음 프로젝트에 대한 희망

다음은 4주동안 프로젝트를 진행하는 만큼 그 안에서 배울 수 있는 것들이 많다는 것을 기대할 수 있을 것이다.

타입 스크립트에 대한 강의를 추가적으로 하나 수강해보고 싶고 조금더 로직에 대한 고민을 많이 하면서 시간을 코드를 작성하는 시간과 고민하는 시간을 1 : 1로 가져가야 나중에 레거시한 코드를 남기지 않을 수 있을 것이라는 교훈을 얻었다.

© Devlog from jeong