***본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다
NestJS와 TypeORM을 함께 학습하면서 웹 애플리케이션 개발에 대한 시야가 넓어지고, 더 나아가 효율적이고 유지보수가 용이한 아키텍처를 설계하는 것에 대한 깊은 고민을 하게 되었습니다. 단순히 프레임워크의 사용법을 익히는 것을 넘어, '왜 이렇게 설계되었을까?' 라는 질문을 끊임없이 던지며 학습했던 것이 큰 도움이 되었습니다.
첫째, 강력한 타입 시스템과 모듈화의 중요성을 다시 한번 실감했습니다. TypeScript 기반의 NestJS는 개발 단계에서 많은 잠재적인 오류를 방지해주고, 코드의 가독성과 유지보수성을 크게 향상시킵니다. 특히 @Module 데코레이터를 통한 명확한 모듈화는 관심사를 분리하고, 의존성 관리를 용이하게 하여 대규모 애플리케이션 개발의 복잡성을 효과적으로 관리할 수 있도록 돕습니다. 마치 레고 블록을 조립하듯이, 각 기능을 독립적인 모듈로 개발하고 필요에 따라 조합하는 방식은 개발 생산성을 높이는 핵심 요소라고 생각합니다.
둘째, ORM(Object-Relational Mapping)의 편리성과 그 이면에 숨겨진 고민을 이해하게 되었습니다. TypeORM은 JavaScript/TypeScript 객체와 데이터베이스 테이블 간의 매핑을 자동화하여 개발자가 SQL 쿼리에 직접적으로 관여하는 빈도를 줄여줍니다. 이는 개발 생산성을 크게 향상시키는 장점이지만, 동시에 ORM이 생성하는 쿼리를 이해하지 못하고 사용하는 경우 성능 문제를 야기할 수 있다는 점을 인지하게 되었습니다. 따라서 ORM을 편리하게 사용하는 것과 더불어, 실제 데이터베이스에서 어떤 쿼리가 실행되는지 항상 염두에 두고 최적화하는 노력이 필요하다는 인사이트를 얻었습니다. 마치 자동 번역기를 사용하는 것과 같아서, 편리하지만 때로는 원문의 의미를 정확히 파악하고 수정해야 할 필요가 있는 것처럼 말입니다.
셋째, 환경 설정 관리의 중요성과 그 실질적인 구현 방식을 경험했습니다. ConfigModule과 dotenv를 활용하여 환경 변수를 관리하는 방식은 애플리케이션의 배포 환경에 따른 유연성을 확보하는 데 필수적입니다. 특히 joi를 이용한 환경 변수 유효성 검사는 예상치 못한 설정 오류를 사전에 방지하여 애플리케이션의 안정성을 높이는 중요한 메커니즘이라고 생각합니다. 마치 건물을 짓기 전에 설계도를 꼼꼼히 검토하는 것처럼, 애플리케이션 실행에 필요한 필수 환경 변수들을 명확하게 정의하고 검증하는 과정은 견고한 시스템 구축의 첫걸음이라고 느꼈습니다.
넷째, NestJS의 철학인 "배터리 포함 프레임워크"의 의미를 조금 더 깊이 이해하게 되었습니다. NestJS는 단순히 라이브러리들을 모아놓은 것이 아니라, 잘 정의된 아키텍처 패턴과 개발 규칙을 제시함으로써 개발자들이 일관성 있는 방식으로 애플리케이션을 구축하도록 유도합니다. 이는 개발 팀 내의 협업을 원활하게 하고, 코드의 재사용성을 높이는 데 기여한다고 생각합니다. 마치 잘 짜여진 악보와 같아서, 프레임워크가 제시하는 구조를 따르면 개발자들은 각자의 역할을 효과적으로 수행하면서도 하나의 완성된 음악을 만들어낼 수 있습니다.
마지막으로, 학습 과정에서 가장 큰 인사이트는 "추상화의 적절한 활용과 그 이해"의 중요성입니다. NestJS와 TypeORM은 많은 부분을 추상화하여 개발 편의성을 제공하지만, 그 이면에서 어떻게 동작하는지 이해하는 것이 중요합니다. 마치 자동차를 운전하는 사람이 엔진의 작동 원리를 완전히 알 필요는 없지만, 기본적인 이해가 있다면 더 안전하고 효율적인 운전을 할 수 있는 것처럼 말입니다. 프레임워크와 ORM의 추상화된 기능을 편리하게 사용하되, 필요할 때는 그 내부 동작 방식을 파악하고 이해하려는 노력이 숙련된 개발자로 성장하는 데 필수적이라고 생각합니다.
이번 학습을 통해 NestJS와 TypeORM은 강력한 웹 애플리케이션 개발 도구임과 동시에, 더 나은 소프트웨어 아키텍처에 대한 고민을 던져주는 좋은 기회였습니다. 앞으로 실제 프로젝트에 적용하면서 더욱 깊이 있는 이해와 숙련도를 쌓아나가고 싶습니다.




#패스트캠퍼스 #직장인자기계발 #직장인공부 #환급챌린지 #패스트캠퍼스후기 #오공완
https://bit.ly/4hTSJNB