2025년 2월 2주차

김동환·2025년 2월 14일
0

📝 WIL (Weekly I Learned)


🔹 FACTS (사실, 객관)

이번 주에는 NestJS 기반의 마피아 게임 개발을 진행하면서 웹소켓, TypeORM, 인증 시스템(JWT), 환경 변수 관리 등을 다뤘다.
특히 AppModule을 구성하면서 여러 기능 모듈을 정리하고, 환경 변수 검증을 추가하는 작업을 했다.
또한, TypeORM 설정을 비동기(forRootAsync()) 방식으로 적용하고, SnakeNamingStrategy를 활용해 데이터베이스 컬럼 네이밍을 일관성 있게 맞췄다.
추가적으로 웹소켓을 활용한 실시간 기능을 고민하면서 EventEmitterModuleJwtModule을 어떻게 활용할지 검토했다.


🔹 FEELINGS (느낌, 주관)

NestJS의 모듈 시스템이 처음에는 복잡해 보였지만, 점점 구조가 익숙해지면서 모듈 단위로 관리하는 것이 유지보수에 강력한 장점이 된다는 걸 느꼈다.
처음 ConfigModule에서 환경 변수 검증을 추가할 때는 설정할 게 많아 번거로웠지만, 명확한 검증 기준을 정해두면 실수를 줄일 수 있어 안정성이 높아진다는 점이 인상적이었다.
또한, TypeORM 설정을 동기적으로 하면 ConfigService를 활용하기 어렵다는 점을 깨닫고, 비동기 방식(forRootAsync)으로 전환한 것이 큰 개선이었다.
웹소켓과 이벤트 기반 시스템을 고민하면서, NestJS가 단순한 API 서버뿐만 아니라 실시간 기능에도 강력한 프레임워크라는 걸 체감했다.


🔹 FINDINGS (배운 것, 얻은 것)

ConfigModule에서 Joi를 활용해 환경 변수를 검증하면 실수를 줄이고 보안성을 높일 수 있다.
TypeORMforRootAsync로 설정하면 ConfigService를 활용할 수 있어 환경 변수 기반의 유연한 설정이 가능하다.
SnakeNamingStrategy를 사용하면 테이블 컬럼 네이밍이 일관되게 유지된다.
✅ 웹소켓을 활용한 실시간 기능을 설계할 때, 이벤트 기반 시스템(EventEmitterModule)을 함께 고려하면 확장성이 높아진다.
JwtModule을 비동기적으로 설정하여 ACCESS_SECRET_KEYACCESS_EXPIRES_IN을 환경 변수로 관리하면, 인증 시스템을 더 안전하게 구축할 수 있다.


🔹 FUTURE (미래, 적용할 것)

🚀 다음 주에는 웹소켓을 본격적으로 활용하여 실시간 마피아 게임 로직을 구현해볼 계획이다.
🚀 EventEmitterModule을 활성화하여 게임 내 이벤트 처리를 효율적으로 관리하는 구조를 고민할 예정이다.
🚀 JWT 기반 인증 시스템을 웹소켓과 연동하여 게임 참여자의 신원을 검증하는 기능을 추가할 계획이다.
🚀 TypeORM을 활용한 게임 기록 저장 및 통계 데이터 관리 시스템을 구축해볼 예정이다.


이번 한 주 동안 NestJS의 구조와 기능을 더 깊이 이해할 수 있어서 좋았고, 실시간 기능을 적용하는 과정이 기대된다!

profile
Node.js 7기

0개의 댓글

관련 채용 정보