
NestJS λ₯Ό 곡λΆνλ€κ° μλμ κ°μ μ½λλ₯Ό μ νμλ€.
// app.module.ts
import { Module } from '@nestjs/common';
import { MoviesModule } from './movies/movies.module';
import { AppController } from './app.controller';
@Module({
imports: [MoviesModule],
controllers: [AppController],
providers: [],
})
export class AppModule {}
μ΄ μ½λλ₯Ό λ³΄κ³ λ¬Έλ© μ΄λ€ μκ°μ΄ λ€μλ€.
μ κ°κ°μ λͺ¨λμ μ»΄ν¬λνΈμ²λΌ λΆλ¦¬νλκ±°μ§?
κ·Έλ₯ λͺ¨λ
app.module.tsμ μ μ©νμ§ μλ μ΄μ κ° μμκΉ?
NestJSμ λͺ¨λνκ° νλ‘μ νΈ κ΄λ¦¬μ μ΄λ€ μν₯μ λ―ΈμΉ κΉ?
NestJSμμ λͺ¨λμ λΆλ¦¬ν¨μΌλ‘μ¨ μ»λ μ΄μ μ??
μ΄λ¬ν λͺ¨λ κ΅¬μ‘°λ‘ νλ‘μ νΈλ₯Ό μ§ννλ©΄ νμ μ λ―ΈμΉλ μν₯μ μμκΉ?
μ΄λ¬ν μλ¬Έμ ν΄κ²°νκΈ° μν΄ μ΄ κΈμ μ 리νμλ€!
λͺ¨λν(Modularity)NestJSλ μ ν리μΌμ΄μ
μ μμ λ¨μλ‘ λλ μ μλλ‘ λͺ¨λμ μ§μνλ€.μΊ‘μννμ¬ λ
립μ μΌλ‘ κ΄λ¦¬ν μ μλ€.μ½λμ ꡬ쑰λ₯Ό λͺ
ννκ² νκ³ μ μ§λ³΄μμ±μ λμ΄λ©° λ€λ₯Έ κ°λ°μμμ νμ
μ μμνκ² νλ€.μΊ‘μν(Encapsulation)λ€λ₯Έ λͺ¨λ κ°μ μμ‘΄μ±μ μ΅μννμ¬ μ½λκ° λ³κ²½λ λ μν₯μ μ€μΌ μ μλ€.NestJS μ λͺ¨λ ꡬ쑰λ μ ν리μΌμ΄μ
μ ꡬμ±νλ κ° λΆλΆμ΄ λ
립μ μΌλ‘ κ°λ°λ μ μλλ‘ λμμ€λ€.AuthModule μ μΈμ¦κ³Ό κ΄λ ¨λ λͺ¨λ λ‘μ§μ λ€λ£¨κ³ RegisterModule μ λ‘κ·ΈμΈ λ° νμκ°μ
κ³Ό κ΄λ ¨λ λͺ¨λ λ‘μ§μ λ€λ£¬λ€.λ€λ₯Έ λͺ¨λμμλ ν΄λΉ λ‘μ§μ μ κ²½ μ°μ§ μμλ λλ©° μ΄λ μ μ§λ³΄μμ ν
μ€νΈλ₯Ό μ©μ΄νκ² λ§λλ ν¨κ³Όκ° μλ€.NestJS μ λͺ¨λμ λ
립μ μΌλ‘ μμ±λμ΄ λ€λ₯Έ μ ν리μΌμ΄μ
μ΄λ νλ‘μ νΈμμ μ¬μ¬μ©λ μ μλ€.AuthModule μ λ€λ₯Έ νλ‘μ νΈμ μ¬μ¬μ©ν μ μμΌλ©°, νμν κ²½μ° λͺ¨λμ μ½κ² νμ₯νκ±°λ μμ ν μ μλ€.μ ν리μΌμ΄μ
μ΄ μ»€μ§μ λ°λΌ ꡬ쑰λ₯Ό λ μ μ°νκ² νμ₯ν μ μλ€.μ΄λ₯Ό ν΅ν΄ κ° λͺ¨λμ΄ μ μμ μΌλ‘ λμνλμ§ νΈμ¨μ μΌλ‘ κ²μ¦ν μ μκ³ , λ¬Έμ κ° λ°μν κ²½μ° ν΄λΉ λͺ¨λμ μ§μ€ν μ μλ€.νμ
μ μ©μ΄μ±μ¬λ¬ μ¬λμ΄ λμμ λ€μν κΈ°λ₯μ κ°λ°νλ κ²μ΄ μ©μ΄ν΄μ§λ€.μ€μΌμΌλ§(Scaling)ν¨μ¨μ μΌλ‘ νλ ₯ν μ μκ² λλ€.λ¨μ μ μμκΉ?β λͺ¨λμ λΆλ¦¬νλ κ²μ μ λνλ λ§νΌ μλμ κ°μ 리μ€ν¬μ λ¨μ μ΄ μ‘΄μ¬νλ€!
NestJS λ μ¬μ© λͺ©μ μμ²΄κ° μμ νλ‘μ νΈμλ μ΄μΈλ¦¬μ§ μλ€. μμ νλ‘μ νΈμμ λͺ¨λμ λ무 λ§μ΄ λλκ² λλ€λ©΄ μ€νλ € 볡μ‘μ±μ΄ μ¦κ°νμ¬ μ μ§λ³΄μκ° νλ€μ΄μ§ μ μλ€.μλͺ» κ΄λ¦¬νλ©΄ μμ‘΄μ± μ¬μ΄ν΄(Dependency cycle) μ΄ λ°μν μ μλ€!μΆν λ³κ²½νλ λ° λ§μ μκ°μ΄ μμλ μ μλ€.NestJSμμ μ§μνλ λͺ¨λν ꡬ쑰λ
Springκ³Ό κ°μ΄ μν°νλΌμ΄μ¦κΈ μ ν리μΌμ΄μ μ κ΄λ¦¬νκΈ°μ λ§€μ° μ μ©ν ꡬ쑰λΌκ³ μκ°νλ€. λ§μΉMVC(Model-View-Controller)λ₯Ό μ°μμν€λ ꡬ쑰λ₯Ό ν΅ν΄ μ μ§λ³΄μμ±κ³Ό μ¬μ¬μ©μ±μ λμ΄κ³ , ν νμ μ μννκ² νλ©°, μ μ°νκ² νμ₯ν μ μλ μλΉμ€λ₯Ό κ°λ°ν μ μλ€λ κ²μ μ λ§ μ’λ€κ³ μκ°νλ€.
νμ§λ§, κ³Όμ λΆκΈμ΄λΌλ λ§μ΄ μλ€. μμ νλ‘μ νΈμμλ μ€νλ €λ³΅μ‘μ±μ μ¦κ°μμΌ νλ‘μ νΈλ₯Ό μνν μ§ννμ§ λͺ»νκ² λ μ μμ΄μ μ ν λͺ¨λν μ λ΅μ΄ κΌ μ νλμ΄μΌ νλ€κ³ μκ°νλ€!