Node.js / NestJS

ํŒŒ์ผ ์—…๋กœ๋“œ

Multer, ํŒŒ์ผ ๊ฒ€์ฆ, storage, streaming, S3 ์—ฐ๋™, ํŒŒ์ผ ํฌ๊ธฐ ์ œํ•œ

15 ๋ฉด์ ‘ ์งˆ๋ฌธยท
Mid-Level
1

NestJS์—์„œ ํŒŒ์ผ ์—…๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ์–ด๋–ค ํŒจํ‚ค์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋‚˜์š”?

๋‹ต๋ณ€

NestJS๋Š” @nestjs/platform-express๋ฅผ ํ†ตํ•ด Multer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ multipart/form-data ์—…๋กœ๋“œ๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. Multer๋Š” NestJS์˜ Express ํ”Œ๋žซํผ์— ๊ธฐ๋ณธ์œผ๋กœ ํ†ตํ•ฉ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. @UseInterceptors(FileInterceptor())์™€ ๊ฐ™์€ decorator๋ฅผ ์ œ๊ณตํ•˜์—ฌ ์—…๋กœ๋“œ๋ฅผ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค. express-fileupload์™€ body-parser๋Š” NestJS์—์„œ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

2

NestJS endpoint์—์„œ ๋‹จ์ผ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

๋‹ต๋ณ€

FileInterceptor('file')๋Š” ๋‹จ์ผ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋Š” decorator์ด๋ฉฐ, ์—ฌ๊ธฐ์„œ 'file'์€ ํผ ํ•„๋“œ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. FilesInterceptor๋Š” ๊ฐ™์€ ํ•„๋“œ์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์šฉ์ด๊ณ , FileFieldsInterceptor๋Š” ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ํ•„๋“œ์šฉ์ž…๋‹ˆ๋‹ค. @UploadedFile()๋งŒ์œผ๋กœ๋Š” interceptor ์—†์ด ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

3

NestJS์—์„œ ๊ฐ™์€ ํ•„๋“œ์˜ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

๋‹ต๋ณ€

FilesInterceptor('files', 10)๋Š” 'files' ํ•„๋“œ์—์„œ ์ตœ๋Œ€ 10๊ฐœ์˜ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํŒŒ์ผ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. FileInterceptor๋Š” ๋‹จ์ผ ํŒŒ์ผ์šฉ์ด๊ณ , AnyFilesInterceptor๋Š” ์ œํ•œ ์—†์ด ๋ชจ๋“  ํ•„๋“œ์šฉ์ด๋ฉฐ, FileInterceptor๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

4

NestJS์—์„œ ์—…๋กœ๋“œ๋œ ํŒŒ์ผ์˜ MIME ํƒ€์ž…์„ ๊ฒ€์ฆํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

5

NestJS์—์„œ ์—…๋กœ๋“œ ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ 5 MB๋กœ ์ œํ•œํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•˜๋‚˜์š”?

+12 ๋ฉด์ ‘ ์งˆ๋ฌธ

๊ธฐํƒ€ Node.js / NestJS ๋ฉด์ ‘ ์ฃผ์ œ

Node.js ๊ธฐ์ดˆ

Junior
20๊ฐœ ์งˆ๋ฌธ

Node.js ์ฝ”์–ด API

Junior
25๊ฐœ ์งˆ๋ฌธ

๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

Junior
25๊ฐœ ์งˆ๋ฌธ

Express.js ๊ธฐ์ดˆ

Junior
20๊ฐœ ์งˆ๋ฌธ

NestJS ๊ธฐ์ดˆ

Junior
23๊ฐœ ์งˆ๋ฌธ

REST API ์„ค๊ณ„

Junior
20๊ฐœ ์งˆ๋ฌธ

๊ฒ€์ฆ๊ณผ DTO

Junior
20๊ฐœ ์งˆ๋ฌธ

API ๋ฌธ์„œํ™” ๋ฐ ๊ณ„์•ฝ

Junior
20๊ฐœ ์งˆ๋ฌธ

์—๋Ÿฌ ์ฒ˜๋ฆฌ

Junior
20๊ฐœ ์งˆ๋ฌธ

๋‹จ์œ„ ํ…Œ์ŠคํŠธ

Junior
20๊ฐœ ์งˆ๋ฌธ

์ž‘์—… ์Šค์ผ€์ค„๋ง

Junior
15๊ฐœ ์งˆ๋ฌธ

NestJS ๋ชจ๋“ˆ๊ณผ DI

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

๊ตฌ์„ฑ ๋ฐ ํ™˜๊ฒฝ ๊ด€๋ฆฌ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

JWT ์ธ์ฆ

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

์ธ๊ฐ€ ๋ฐ RBAC

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

TypeORM์„ ์‚ฌ์šฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

Mid-Level
30๊ฐœ ์งˆ๋ฌธ

Prisma ORM

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

๋ฏธ๋“ค์›จ์–ด์™€ ์ธํ„ฐ์…‰ํ„ฐ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

WebSockets

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

NestJS๋ฅผ ์‚ฌ์šฉํ•œ GraphQL

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

์—”๋“œํˆฌ์—”๋“œ ํ…Œ์ŠคํŠธ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Redis๋ฅผ ์‚ฌ์šฉํ•œ ์บ์‹ฑ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

Bull์„ ์‚ฌ์šฉํ•œ ํ

Mid-Level
20๊ฐœ ์งˆ๋ฌธ

DevOps, Logging, CI/CD

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

Docker ๋ฐ ์ปจํ…Œ์ด๋„ˆํ™”

Mid-Level
25๊ฐœ ์งˆ๋ฌธ

๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค

Senior
30๊ฐœ ์งˆ๋ฌธ

๋ณด์•ˆ ๋ชจ๋ฒ” ์‚ฌ๋ก€

Senior
25๊ฐœ ์งˆ๋ฌธ

์„ฑ๋Šฅ ๋ฐ ํด๋ผ์šฐ๋“œ ๋ฐฐํฌ

Senior
30๊ฐœ ์งˆ๋ฌธ

๋‹ค์Œ ๋ฉด์ ‘์„ ์œ„ํ•ด Node.js / NestJS์„ ๋งˆ์Šคํ„ฐํ•˜์„ธ์š”

๋ชจ๋“  ์งˆ๋ฌธ, flashcards, ๊ธฐ์ˆ  ํ…Œ์ŠคํŠธ, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์—ฐ์Šต, ๋ฉด์ ‘ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์— ์ ‘๊ทผํ•˜์„ธ์š”.

๋ฌด๋ฃŒ๋กœ ์‹œ์ž‘ํ•˜๊ธฐ