env : 유닉스 및 유닉스 계열 운영 체제용 셸 명령어이다. 환경 변수의 목록을 출력하거나, 현존하는 환경을 수정하지 않고도 변경된 환경 내에서 다른 유틸리티를 실행하는데 사용할 수 있다.
오픈소스에 올리면 안 되는 값(DB 비밀번호) 등을 오픈소스에 올리고 보안과 유지 보수를 위해 처음 사용해 봤는데 DB 이름이 바뀌었을 때 유지 보수가 편했고 비밀번호를 하드코딩하지 않게 되었습니다. 실제 사용해 보니 왜 사용하는지 왜 필요한지 알게 되었습니다.
ERD : 데이터 모델링 분야에서 개체-관계 모델이란 구조화된 데이터에 대한 일련의 표현이다. "구조"화된 데이터를 저장하기 위해 데이터베이스를 쓴다. 이 데이터의 "구조" 및 그에 수반한 제약 조건들은 다양한 기법에 의해 설계될 수 있다. 그 기법 중 하나가 개체-관계 모델링이다.
처음 설계하고 프로젝트를 마칠 때까지 테이블 구조를 10번은 바꾼 거 같습니다... 코드를 짜다 보니 '이 칼럼이 필요하다. 이거는 필요 없겠는데?'라는 생각을 가지게 되어 바꿨는데 바꾸면 처음 작성했던 코드도 바꿔야 하고 그걸 또 프런트엔드에 전달하는 과정에서 비효율성을 느꼈고 앞으로 테이블 구조를 더욱 철저히 완벽하게 짜야 되겠다는 생각을 가지게 되었습니다.
사용했던 모듈
Trello
프로젝트 관리 툴인 트렐로를 처음 사용해 봤는데 왜 사용하는지 알게 되었습니다. 우리가 해야 하는 목표를 구체화하고 눈으로 볼 수 있게 만드는 방법처럼 효과적인 프로젝트 관리가 있을까라는 생각이 들게 되었고 트렐로를 사용하여 현재 프로젝트 진행 현황을 볼 수 있어 좋았고 팀원들과의 소통도 더욱 효과적으로 할 수 있었습니다.
typeorm
이번 프로젝트에서는 typeorm을 DB 연결 용도로만 사용하고 로우 쿼리를 사용했지만 다음 프로젝트에서는 제대로 사용하기 위해 공부가 필요할 거 같다.
회원가입/로그인
bcrypt, jwt를 사용하여 인증/인가 기능을 구현하였고 mysql exists 문을 사용하여 중복 이메일 검증 이메일이 틀렸을 때 나오는 에러 상황을 만들었습니다. 토큰에 유저 id, email을 넣어 나중에 활용할 수 있게 만들었습니다.
필터링
가격별 필터링, 상품 테마별 필터링, 오름차순-내림차순으로 필터링 기능을 구현하였습니다. 다른 모델에서도 사용하기 위해 함수를 통해 구현하였고 하나의 쿼리문에서 모든 걸 해결하기 위해 고민하였습니다. includes
메서드를 사용하여 쿼리 별로 필터를 다르게 하였고 where 문에 조건을 걸어서 표현하였습니다.