☁ Goorm.me ☁

본명 이상엽, 구름입니다. 백엔드, 응용프로그램, 서버 개발자입니다.

개발일지#3

express와 역방향 프록시 기존 백엔드를 http 서버로 구성하고 서버에서 nginx를 통해 역방향 프록시를 구성하여 TLS를 구현하였다. 앱 사전 예약 기능을 개발하면서 휴대전화 인증을 많이 요청하는 악의적인 사용자가 있을 것에 대비하여(이게 지금까지 대비되지 않았다는게 조금 충격적…) express-rate-limit 라이브러리로 사용량을 제한하도록 했다. 문제는 nginx에서 X-Forwarded-For 헤더까지 설정해주고 있는데도 불구하고 express가 항상 같은 아이피라고 인식하여서, 여러명의 사용자가 휴대전화 인증을 시도하면 제한된다는 것이었다. # nginx 설정 파일 server { location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $http_host; proxy_pass http://127....

January 27, 2022

개발일지#2

Hugo로 일지 쓰기 Notion에 쓰려다가 Hugo로 쓰는게 좋을 것 같아 옮겼다. 테마도 이쁘고 좋다… ECS 사용해보기 CodeBuild 등을 구성하다보니 그냥 파이프라인이 쓰고싶어져서 ECS로 배포하는 것까지 알아보았다. 이를 위해서 수정한건 설정을 toml 파일에서 환경변수로 옮긴 것이다. dotenv 파일도 다음과 같이 구성할 수 있고 class-transformer를 통해 올바른 자료형으로 변환되니 사용하는데에 불편한 것은 없을 것 같다. 설정파일 database.host=localhost database.port=5432 database.name=root database.username=user database.password=password database.log=true database.sync=true jwt.secret=1234 Nest에서 사용하기 ConfigModule.forRoot({ isGlobal: true, // 개발 환경에서만 ....

January 26, 2022

개발일지#1

메일 정리하기 메일을 쉽게 정리하고 싶어서 찾아보니까 “보낸이로 묶어보기” 기능을 제공하는 메일 클라이언트가 별로 없더라. 썬더버드를 우연히 깔아봤는데 mac에서 보기 나쁘지도 않고 위에 말한 기능을 제공해서 써봤는데 매우 좋다. 계속 쓸 거 같다. 구 백엔드 수정 감사 카드 알림을 전송할때 Restaurant 인스턴스를 그대로 넣어버려서 “[object SequelizeInstance:Restaurant]” 처럼 나오는 문제가 있었다. 이런식의 실수를 조심해야겠다. 신규 백엔드 수정 IsNullable과 IsUndefinable 데코레이터를 구현해서 더 정확한 Validation이 가능해졌다. 이 저장소의 이슈에서 코드를 갖고왔다....

January 25, 2022