Skip to main content
SonamuλŠ” Fastifyλ₯Ό 기반으둜 ν•˜λŠ” κ³ μ„±λŠ₯ HTTP μ„œλ²„μž…λ‹ˆλ‹€. μ„œλ²„ 포트, 호슀트, ν”ŒλŸ¬κ·ΈμΈ, 라이프사이클 ν›… 등을 μ„€μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

기본 ꡬ쑰

baseUrl

μ™ΈλΆ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯ν•œ μ„œλ²„μ˜ 전체 URL을 μ§€μ •ν•©λ‹ˆλ‹€. νƒ€μž…: string (선택적) κΈ°λ³Έκ°’: http://{listen.host}:{listen.port}
μ‹€μ œ 도메인 μ‚¬μš©:
baseUrl은 파일 μ—…λ‘œλ“œ μ‹œ μƒμ„±λ˜λŠ” URL, SSR 메타 νƒœκ·Έ 등에 μ‚¬μš©λ©λ‹ˆλ‹€.

listen

μ„œλ²„κ°€ μˆ˜μ‹ ν•  ν¬νŠΈμ™€ 호슀트λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. νƒ€μž…: (선택적)

port

μ„œλ²„κ°€ μˆ˜μ‹ ν•  포트 λ²ˆν˜Έμž…λ‹ˆλ‹€. νƒ€μž…: number
ν™˜κ²½ λ³€μˆ˜λ‘œ 포트 μ„€μ •:

host

μ„œλ²„κ°€ 바인딩할 호슀트 μ£Όμ†Œμž…λ‹ˆλ‹€. νƒ€μž…: string (선택적) κΈ°λ³Έκ°’: "localhost"
λͺ¨λ“  λ„€νŠΈμ›Œν¬ μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μˆ˜μ‹ :
ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œ 0.0.0.0을 μ‚¬μš©ν•  λ•ŒλŠ” λ°©ν™”λ²½ 섀정을 ν™•μΈν•˜μ„Έμš”.

fastify

Fastify μ„œλ²„ μ˜΅μ…˜μ„ μ„€μ •ν•©λ‹ˆλ‹€. νƒ€μž…: Omit<FastifyServerOptions, "logger"> (선택적)
λ‘œκΉ…μ€ Sonamu의 logging 섀정을 톡해 λ³„λ„λ‘œ κ΅¬μ„±ν•©λ‹ˆλ‹€.

plugins

Fastify ν”ŒλŸ¬κ·ΈμΈμ„ ν™œμ„±ν™”ν•˜κ³  μ„€μ •ν•©λ‹ˆλ‹€.

formbody

application/x-www-form-urlencoded μš”μ²­ 본문을 νŒŒμ‹±ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | FastifyFormbodyOptions (선택적)
μ˜΅μ…˜ μ§€μ •:

qs

쿼리 μŠ€νŠΈλ§μ„ νŒŒμ‹±ν•©λ‹ˆλ‹€. μ€‘μ²©λœ 객체와 배열을 μ§€μ›ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | QsPluginOptions (선택적)

multipart

파일 μ—…λ‘œλ“œλ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€ (multipart/form-data). νƒ€μž…: boolean | FastifyMultipartOptions (선택적)
더 큰 파일 ν—ˆμš©:

static

정적 νŒŒμΌμ„ μ œκ³΅ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | FastifyStaticOptions (선택적)
μ˜ˆμ‹œ: /api/public/images/logo.png β†’ public/images/logo.png 파일

session

μ„Έμ…˜ 관리λ₯Ό ν™œμ„±ν™”ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | SecureSessionPluginOptions (선택적)
ν”„λ‘œλ•μ…˜ ν™˜κ²½μ—μ„œλŠ” λ°˜λ“œμ‹œ ν™˜κ²½ λ³€μˆ˜λ‘œ secretκ³Ό saltλ₯Ό μ„€μ •ν•˜μ„Έμš”!
ν”„λ‘œλ•μ…˜ μ„€μ •:

compress

응닡을 μ••μΆ•ν•©λ‹ˆλ‹€. μžμ„Έν•œ λ‚΄μš©μ€ 별도 λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”. νƒ€μž…: boolean | FastifyCompressOptions (선택적)
β†’ compress 상세 μ„€μ •

cors

CORS(Cross-Origin Resource Sharing)λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | FastifyCorsOptions (선택적)
개발 ν™˜κ²½μ—μ„œ λͺ¨λ“  origin ν—ˆμš©:

sse

Server-Sent Eventsλ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. νƒ€μž…: boolean | SsePluginOptions (선택적)
β†’ SSE μ‚¬μš©λ²•

custom

μ»€μŠ€ν…€ Fastify ν”ŒλŸ¬κ·ΈμΈμ„ λ“±λ‘ν•©λ‹ˆλ‹€. νƒ€μž…: (server: FastifyInstance) => void (선택적)

apiConfig

API λ™μž‘ 방식을 μ„€μ •ν•©λ‹ˆλ‹€.

contextProvider

각 API ν˜ΈμΆœλ§ˆλ‹€ Contextλ₯Ό μƒμ„±ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. νƒ€μž…: (defaultContext, request) => Context
β†’ Context 상세 μ„€λͺ…

guardHandler

Guard λ°μ½”λ ˆμ΄ν„° μ‹€ν–‰ μ‹œ ν˜ΈμΆœλ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. νƒ€μž…: (guard, request, api) => void | Promise<void>

cacheControlHandler

Cache-Control 헀더λ₯Ό μ„€μ •ν•˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. νƒ€μž…: (req) => string | undefined
β†’ Cache-Control 상세 μ„€λͺ…

lifecycle

μ„œλ²„ 라이프사이클 μ΄λ²€νŠΈμ— 훅을 λ“±λ‘ν•©λ‹ˆλ‹€.

onStart

μ„œλ²„κ°€ μ‹œμž‘λ  λ•Œ μ‹€ν–‰λ©λ‹ˆλ‹€. νƒ€μž…: (server: FastifyInstance) => void | Promise<void>

onShutdown

μ„œλ²„κ°€ μ’…λ£Œλ  λ•Œ μ‹€ν–‰λ©λ‹ˆλ‹€ (graceful shutdown). νƒ€μž…: (server: FastifyInstance) => void | Promise<void>

onError

μ²˜λ¦¬λ˜μ§€ μ•Šμ€ μ—λŸ¬κ°€ λ°œμƒν–ˆμ„ λ•Œ μ‹€ν–‰λ©λ‹ˆλ‹€. νƒ€μž…: (error, request, reply) => void | Promise<void>

μ‹€μ „ μ˜ˆμ‹œ

κΈ°λ³Έ 개발 μ„œλ²„

ν”„λ‘œλ•μ…˜ μ„œλ²„

Docker μ»¨ν…Œμ΄λ„ˆ ν™˜κ²½

λ‹€μŒ 단계

μ„œλ²„ κΈ°λ³Έ 섀정을 μ™„λ£Œν–ˆλ‹€λ©΄:
  • auth - 인증 μ„€μ •
  • storage - 파일 μŠ€ν† λ¦¬μ§€ μ„€μ •
  • cache - μΊμ‹œ μ„€μ •
  • compress - 응닡 μ••μΆ• μ„€μ •