본문 바로가기
정보

백엔드 프로젝트 최적화: NestJS와 Firebase 활용하기

by story-333 2025. 2. 28.

백엔드 프로젝트를 구축하기 위해 NestJS와 Firebase를 활용하는 방법을 알아보세요. 이 조합은 안정성과 생산성을 극대화하는 데 큰 도움이 됩니다.

백엔드 프로젝트의 기술 선정 전략

백엔드 프로젝트를 계획하고 추진하는 과정에서 적절한 기술 스택의 선정은 매우 중요합니다. 저희 팀은 여러 프론트엔드 프로젝트에서 API 요청으로 사용 가능한 기능을 제공하기 위해 NestJS와 TypeScript를 선택했습니다. 아래에서는 이 두 가지 기술의 장점뿐만 아니라 TypeORM의 선택 이유에 대해 설명하겠습니다.

TypeScript의 장점: 정적 타입의 힘

TypeScript는 JavaScript의 상위 호환 언어로, 정적 타입 시스템을 지원합니다. 이로 인해 코드 작성 시 오류를 미리 발견할 수 있어 안정적인 코드를 작성하는 데 많은 도움이 됩니다. 특히 대규모 프로젝트나 여러 개발자가 협업하는 환경에서는 더욱 유리합니다.

  • 오류 탐지: 코드 작성 중 발생할 수 있는 오류를 사전에 확인할 수 있어, 디버깅 시간을 줄일 수 있습니다.
  • 개발 생산성 향상: IDE에서의 코드 자동 완성 및 리팩토링이 지원되어, 개발자의 작업 효율이 증가합니다.
  • JavaScript 호환: 기존 JavaScript 코드를 손쉽게 통합할 수 있어, 개발의 유연성을 제공합니다.

"코드를 읽기 쉬운 형태로 유지하는 것이 최고의 유산이다." - 유명 개발자

NestJS의 모듈화 아키텍처 장점

NestJS는 모듈화된 아키텍처를 갖추고 있어, 대규모 애플리케이션의 관리를 용이하게 합니다. 각 기능을 모듈로 분리하여 개발할 수 있어, 다음과 같은 장점이 있습니다:

  • 재사용성과 유지보수성: 기능을 별도의 모듈로 나누어 개발하면 재사용이 쉬워지고 유지보수가 수월해집니다.
  • 의존성 주입: 객체 간의 관계를 효과적으로 관리하여 코드의 결합도를 낮추며, 테스트 가능성을 높이는 데 기여합니다.
  • 완벽한 TypeScript 통합: NestJS는 TypeScript로 작성되어, 정적 타입 시스템의 덕을 볼 수 있어 복잡한 로직을 안정적으로 관리할 수 있습니다.

TypeORM으로 타입 안전한 데이터 관리

TypeORM은 TypeScript와 자연스럽게 통합되는 ORM(Object-Relational Mapping) 라이브러리로, 아래와 같은 장점을 제공합니다:

  • 타입 안전성: TypeORM을 사용하면 모든 데이터베이스 작업을 타입 안전하게 수행할 수 있어, 개발 중 오류를 사전에 방지할 수 있습니다.
  • 유지보수성: SQL 쿼리를 직접 작성하기보다는 객체를 통해 데이터를 조작하게 되어 코드의 가독성이 높아집니다. 이는 여러 개발자와 협업하는 환경에서 일관성을 유지하는 데 큰 도움이 됩니다.
  • 생산성 향상: 기본적인 CRUD(Create, Read, Update, Delete) 작업을 빠르게 처리할 수 있어, 반복적인 작업에서 발생할 수 있는 오류를 줄일 수 있습니다.
기술 장점
TypeScript 정적 타입 시스템으로 코드 안전성 증가
NestJS 모듈화 아키텍처로 유지보수 및 테스트 용이
TypeORM ORM을 통한 타입 안전한 데이터 관리

이러한 기술들을 통해 저희는 안정성, 생산성 및 미래 확장성까지 고려한 백엔드 프로젝트를 성공적으로 구성할 수 있었습니다. TypeScript와 NestJS의 조합은 효율적인 API 서버 구축에 최적화되어 있으며, TypeORM은 데이터 관리를 더욱 수월하게 만들어 줍니다.

👉기술 선정 더 알아보기

백엔드 프로젝트 개발 환경 설정

웹 애플리케이션을 개발하기 위해 백엔드 프로젝트는 필수적입니다. 이 섹션에서는 Firebase Functions 설치 및 초기화, NestJS와 Firebase 통합 과정을 통해 API 배포를 위한 필수 설정에 대해 알아보겠습니다. 🚀

Firebase Functions 설치 및 초기화

Firebase Functions를 사용하기 위해 먼저 Firebase CLI 도구를 설치해야 합니다. Firebase CLI는 Firebase와의 상호작용을 용이하게 해줍니다. 아래의 명령어를 실행하여 Firebase CLI와 NestJS의 CLI를 설치하세요.

그 다음, 새로운 NestJS 프로젝트를 생성합니다. 필요한 프로젝트 이름으로 교체하여 실행해 주세요.

이제 Firebase 콘솔로 이동해 새로운 Firebase 프로젝트를 생성하고 요금제를 Blaze로 변경해주세요. 그런 다음 아래 명령어들을 차례로 입력하여 Firebase Functions를 초기화합니다.

이 단계에서 "use an existing project"를 선택하고, 방금 생성한 프로젝트를 선택합니다. 프로그래밍 언어는 TypeScript로 설정하세요. 🎉

NestJS와 Firebase 통합 과정

NestJS와 Firebase를 통합하는 과정은 아래와 같습니다:

  1. functions 폴더의 내용 복사 및 수정: Firebase Functions 초기화 후 생성된 폴더에 있는 의 스크립트, 엔진 및 메인 속성을 프로젝트의 메인 으로 복사합니다.
  2. index.ts 파일 생성: 프로젝트 루트에 파일을 생성하고 아래의 코드를 추가합니다.
  3. package.json 수정: 속성을 로 변경하여 빌드 경로를 올바르게 설정합니다.

이 과정을 완료하면 Firebase Functions에 사용할 수 있는 NestJS 애플리케이션이 구축됩니다! 🔧

API 배포를 위한 필수 설정

이제 API를 Firebase에 배포할 준비가 되었습니다. 다음 단계를 따라 실행해봅시다.

  1. Firebase JSON 수정: 파일에서 를 로 변경합니다. 이렇게 하면 Firebase가 사용자 정의된 소스를 인식할 수 있습니다.
  2. 로컬에서 API 테스트: 아래 명령어로 로컬에서 서버를 실행하여 API가 잘 작동하는지 확인합니다.

만약 문제가 발생한다면 에러 로그를 확인하고 해결합니다.

  1. Firebase Functions 배포: 모든 설정을 마친 후 아래 명령어로 Firebase Functions에 애플리케이션을 배포합니다.

성공적으로 배포되면 함수 URL을 확인할 수 있습니다. 이 URL을 통해 애플리케이션이 제대로 작동하는지 테스트하세요. 🌐

  1. CORS 활성화 설정하기: 마지막으로 Google Cloud Console로 이동하여 API 접근 권한을 설정합니다. 이를 통해 다른 프로젝트에서 API에 접근할 수 있도록 허용합니다. 하지만 민감한 정보를 다루고 있다면 공개로 설정하는 것을 주의하세요!

이제 NestJS 애플리케이션과 Firebase를 성공적으로 통합하고 API를 배포할 수 있습니다. 이로써 백엔드 개발의 첫 단계를 성공적으로 수행한 것입니다! 🎊

👉개발 환경 설정하기

백엔드 프로젝트에서 CORS 및 접근성 관리

완벽한 백엔드 API는 CORS (Cross-Origin Resource Sharing)와 접근성 관리를 통해 이루어집니다. 이 섹션에서는 백엔드 프로젝트에서 CORS를 활성화하는 방법과 Google Cloud에서의 접근 권한 설정 절차, API 접근성을 최적화하는 방법을 다룰 것입니다. 🌐

CORS 활성화 방법 안내

CORS는 다른 출처의 웹 응용 프로그램이 귀하의 웹 서버의 리소스에 안전하게 접근하도록 허용하는 메커니즘입니다. 백엔드에서 CORS를 활성화하는 방법은 간단합니다.

  1. NestJS에서 CORS 활성화:
    아래의 코드를 파일에 추가하면 됩니다.

위의 코드와 같이 를 호출하면 모든 출처에서의 요청을 허용하게 됩니다. 특정 출처만 허용하고 싶다면 다음과 같이 설정할 수 있습니다.

  1. CORS 설정 확인:
    CORS 활성화 후, 브라우저의 개발자 도구를 열고 네트워크 탭에서 API 요청의 응답 헤더를 확인하여 CORS 설정이 올바르게 적용되었는지 확인하세요. 🚀

Google Cloud 접근 권한 설정 절차

Google Cloud에서는 배포된 Firebase Functions의 접근 권한을 설정할 수 있습니다. 이를 통해 API를 외부에서 사용 가능하게 할 수 있습니다. 아래는 설정 과정입니다.

  1. Google Cloud Console에 로그인합니다.
  2. 프로젝트 목록에서 본인의 프로젝트를 클릭합니다.
  3. 좌측 메뉴에서 Cloud Run으로 이동합니다.
  4. 해당 함수를 선택한 후, 권한 탭을 클릭합니다.
  5. 버튼을 클릭하고, 를 입력한 후 역할(role)로 를 선택합니다.
  6. 저장을 클릭해 설정을 완료합니다.

"이로써 API 접근을 모든 사용자가 가능하게 설정할 수 있습니다. 그러나 민감한 정보를 다루는 경우, 이러한 설정은 주의해야 합니다."

백엔드 API 접근성 설정 최적화

API 접근성을 최적화하는 것은 성능과 보안을 모두 고려해야 합니다. 아래의 점들을 고려하세요.

설정 항목 설명
HTTPS 사용 모든 통신에 HTTPS를 사용하여 데이터 암호화 지원
API 키 관리 중요한 API 키는 환경변수로 관리하고 코드에 직접 노출하지 않기
요청 제한 사용자 IP 기반 요청 수를 제한하여 서비스 남용 방지
로깅 및 모니터링 요청과 응답을 로깅하여 정상 작동 여부 및 오류 추적

위의 설정을 통해 API 접근성을 극대화할 수 있습니다. 기본적으로 민감한 정보를 다룰 경우에는, 공개 설정을 피하고 철저한 테스트를 거쳐 사용자별 접근 권한을 설정하세요. 🔒

이제 CORS와 접근성 관리가 잘 이루어졌다면, 여러분의 백엔드 프로젝트는 효율적으로 동작할 것입니다! 🚀

👉접근성 관리 자세히 보기

🔗 같이보면 좋은 정보글!