๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ 101

์†Œ์…œ ๋กœ๊ทธ์ธ

kakao 1. ์ธ๊ฐ€ ์ฝ”๋“œ ๋ฐ›๊ธฐ get https://kauth.kakao.com/oauth/authorize?client_id=clientId&redirect_uri=http://localhost:8000&response_type=code ์นด์นด์˜ค๊ณ„์ • accounts.kakao.com 2. ํ† ํฐ๋ฐ›๊ธฐ post https://kauth.kakao.com/oauth/token grant_type : authorization_code client_id : ํด๋ผ์ด์–ธํŠธ ์•„์ด๋”” redirect_uri : ๋ฆฌํ„ด url code : ์ธ๊ฐ€ ์ฝ”๋“œ 3. ์ •๋ณด ์กฐํšŒ post https://kapi.kakao.com/v2/user/me bearer token ex) data: { id: 1, connected_at: '2023-..

docker๋กœ mysql๋„์šฐ๊ธฐ

ํšŒ๊ณ  ์ดํ›„ 2023๋…„ ์ฒซ๋ฒˆ์งธ ๋ธ”๋กœ๊ทธ์ด๊ตฌ๋‚˜. ์˜ฌํ•ด๋„ ์ง„์งœ ์—ด์‹ฌํžˆ ํ•ด์•ผ์ง€! ํ•˜๊ณ  ๋‹ค์งํ•˜๋ฉฐ ์“ฐ๋Š” 1์›”์„ ๋งˆ๋ฌด๋ฆฌ ํ•˜๋Š” ๊ธ€์ด๋‹ค. ์š”์ฆ˜ ์ด์ง์ค€๋น„๋ฅผ ํ•˜๋ฉฐ ๊ณผ์ œ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์žˆ๋Š”๋ฐ nestjs ์ดˆ๊ธฐ์…‹ํŒ…์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œํ•œ๋ฒˆ ์ •๋ฆฌํ• ์ˆ˜์žˆ๋Š” ์ข‹์€ ๊ธฐํšŒ ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์š”๊ตฌ์‚ฌํ•ญ - ์„œ๋ฒ„์‹คํ–‰ ์‹œ ์ž„์˜์˜ ๋ฐฉ๋ฒ•์œผ๋กœ admin์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• - ์„œ๋ฒ„ ์‹คํ–‰ ์ „ mysql์„ docker๋กœ ๋„์šด๋‹ค. - docker์‹คํ–‰ ์‹œ์— ํ…Œ์ด๋ธ”์ƒ์„ฑDDL, ์œ ์ €์ƒ์„ฑ ์ฟผ๋ฆฌ๋ฌธ๋“ฑ์„ ์ž‘์„ฑํ•˜์—ฌ ์ดˆ๊ธฐ๋ฐ ํ•จ๊ป˜ ์‹คํ–‰ํ•œ๋‹ค. 1. ๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ ๋„์ปคํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๊ฒŒ ๋˜๋ฉด ๋‚ด๊ฐ€ ์„ค์ •ํ•ด๋†“์€ ์ด๋ฏธ์ง€์˜ ์˜ต์…˜์— ๋”ฐ๋ผ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. version: '3.3' services: mysql: image: mysql:5.7 restart: always contain..

etc 2023.01.30

11์›” ์ธํ”„๋Ÿฐ ํ‡ด๊ทผ๊ธธ ๋ฐ‹-์—… #01 Node.js

์ธํ”„๋žฉ์ด ๋˜ ์ธํ”„๋žฉ๊ฐ™์€ ํ–‰์‚ฌ๋ฅผ ๋ฒŒ์˜€๋‹ค. 9์›”์— ์žˆ์—ˆ๋˜ ์˜คํ”„๋ผ์ธ์ปจํผ๋Ÿฐ์Šค ์ธํ”„์ฝ˜์„ ๊ฐœ์ตœํ•œ ๋’ค ์žฌ๋ฏธ์žˆ๋Š” ์˜คํ”„๋ผ์ธ ํ–‰์‚ฌ๊ฐ€ ์—ด๋ ธ๋‹ค. ์ด๋ฒˆ์— ๋ฒŒ์ธ ์˜คํ”„๋ผ์ธํ–‰์‚ฌ๋Š” node๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒ ๋ฐ˜๊ฐ€์šธ๋“ฏํ•œ node๋ฅผ ์ฃผ์ œ๋กœ ํ•œ ๋ฐ‹์—…์ด๋‹ค. ์šด ์ข‹๊ฒŒ ์ธํ”„์ฝ˜์— ๋‹น์ฒจ๋˜์„œ ์ฐธ์„ํ• ์ˆ˜์žˆ์—ˆ๋Š”๋ฐ ์ด๋ฒˆ์—๋„ ๋˜ ์šฐ์—ฐํžˆ๋„ ๋‚˜๋Š” node๋ฅผ ์ฃผ ์Šคํƒ์œผ๋กœ ํ•˜๊ณ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๋„ค? ๊ทธ๋ƒฅ ์ง€๋‚˜์น  ์ˆ˜๊ฐ€ ์—†์–ด ์‹ ์ฒญ์™„๋ฃŒ์˜ค ์ธํ”„์ฝ˜์—์„œ ๋ดค๋˜ ๋”•์…˜๋„ ์ข‹๊ณ  ๋ง์”€๋„ ์กฐ๊ณค์กฐ๊ณค ์ž˜ ํ•˜์‹œ๋Š” ๋‹ด๋‹น์ž๋ถ„์ด ์ด๋ฒˆ ๋ฐ‹์—…์—์„œ๋„ ์Šค๋ฌด์Šคํ•˜๊ฒŒ ์ž˜ ์ง„ํ–‰ํ•ด์ฃผ์…จ๋‹ค. ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์“ฐ๋ ค๊ณ  ๋‹ค์‹œ๋ณด๊ธฐ๋ฅผ ๋ณด๊ณ ์žˆ๋Š”๋ฐ ์ง€๊ธˆ๋ด๋„ ๋ง์”€์„ ์ž˜ ํ•˜์‹œ๋„ค ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ ์ด๋ฒˆ์—๋„ ํ–ฅ๋กœ๋‹˜๊ป˜์„œ ์ธํ”„๋žฉ์˜ ๋ฐฑ์—”๋“œ์—”์ง€๋‹ˆ์–ด์ฑ„์šฉ์„ ํ™๋ณดํ•˜์…จ๋‹ค. ๊ทธ๋ž˜๋ดค์ž ๋‚˜๋Š” ์•ˆ๋ฝ‘์„๊บผ๋ฉด์„œ ํ™๋ณด๋งŒํ•ด ๐Ÿฅน Session1. ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž์˜ node.j..

etc 2022.12.02

redis cache

๋ฌธ์ œ์ •์˜ : - ๋ฐ˜๋ณต์ ์ธ get์ž‘์—…์œผ๋กœ ์ธํ•œ DB ๋ถ€ํ•˜ ๋ฐœ์ƒ ํ•ด๊ฒฐ๋ฐฉ๋ฒ• : - ๋ฐ˜๋ณต์ ์œผ๋กœ ์˜ค๋Š” get ์š”์ฒญ ์‹œ db์— ์ ‘์†ํ•˜์ง€์•Š๊ณ  redis์— ์ €์žฅํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜ด. - redis.ts import {createClient} from "@redis/client"; export class Redis { public static async getValue(key: string): Promise { let result = null; try { const client = createClient(); client.on("error", err => console.log("Redis Client Error", err)); await client.connect(); result = await client.get(key); a..

etc 2022.11.13

bastion์„œ๋ฒ„๋ฅผ ํ†ตํ•ด private ๋ง ์ž์› ์‚ฌ์šฉํ•˜๊ธฐ

ํ˜„์žฌ ๋‚ด ๊ทผ๋ฌด์ง€์˜ ์„œ๋ฒ„๋Š” lambda๋กœ ๋„์–ด์ ธ์žˆ์œผ๋ฉฐ ๋‚ด๋ถ€์—์„œ RDS๋กœ ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ™์€ ๋ง๋‚ด์— ์žˆ๋Š” bastion server๋ฅผ ํ†ตํ•˜์—ฌ rds๋กœ ์ ‘์†ํ•˜๊ฒŒ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํˆด์„ ์ด์šฉํ•ด์„œ ์‹ค๋””๋น„๋‚˜ ๊ฐœ๋ฐœ๋””๋น„์— ์ ‘์†ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ssh ๋ฅผ ์„ค์ •ํ•˜์—ฌ ์ ‘์†ํ•ด์ฃผ๊ฒŒ๋œ๋‹ค. ๋‚ด๊ฐ€ ๊ฒช์€ ๋ฌธ์ œ๋Š” ์ฝ”๋“œ๋‹จ์—์„œ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ๋‚ด ๋กœ์ปฌ์ฝ”๋“œ์—์„œ ์‹ค๋””๋น„๋กœ ์—ฐ๊ฒฐํ•˜๊ฒŒ๋˜๋ฉด 500์˜ pool error ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡๋ช‡์˜ ๋ฐฉ๋ฒ•์ด ์žˆ๋Š”๋ฐ 1. VPN์„ ์—ฐ๊ฒฐํ•˜์—ฌ ๋‚˜์˜ ์•„์ดํ”ผ์ฃผ์†Œ๊ฐ€ ํ•ด๋‹นํ•˜๋Š” ๋ง๋‚ด์˜ ip๋กœ ๊ฐ์‹ธ์ฃผ๋Š” ๋ฐฉ๋ฒ• 2. ssh ํ„ฐ๋„๋ง์„ ์ด์šฉํ•˜์—ฌ ๋‚˜์˜ ์ž„์˜ ์ง€์ • ํฌํŠธ๋กœ ๊ฐ€์ƒ์˜ ํ„ฐ๋„๋ง์„ ์ด์šฉํ•˜์—ฌ bastion -> ๋ชฉํ‘œํ•˜๋Š” rds๊นŒ์ง€ ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋‚ด๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๊ฐœ๋…์ด ๋งž๋Š”์ง„ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ์ดํ•ดํ•œ ๋งŒํผ ์จ์•ผ์ง€. 1๋ฒˆ ..

AWS 2022.10.27

๊ณต๊ณต API ์‚ฌ์šฉํ•˜์—ฌ ์›นํŽ˜์ด์ง€ ๋งŒ๋“ค๊ธฐ -2

์ด ๋ธ”๋กœ๊ทธ๋Š” ๋‚ด ๋งŒ์กฑ์šฉ ๋ธ”๋กœ๊ธฐ์ด๊ธด ํ•˜์ง€๋งŒ ๊ฐ€๋” ์ธ๊ธฐ๊ธ€ ์ˆœ์œ„๋ฅผ ๋ณธ๋‹ค. ๊ณต๋ถ€ํ• ๋•Œ ๊ธฐ๋ก์šฉ์œผ๋กœ ์ž‘์„ฑํ•˜์˜€๋˜ ๊ณต๊ณตapi๋ฅผ ์‚ฌ์šฉํ•œ ์›นํŽ˜์ด์ง€๋งŒ๋“ค๊ธฐ๋ฅผ ๊พธ์ค€ํžˆ ๋งŽ์ด ๋ณด๋Š”๊ฒƒ ๊ฐ™๋‹ค. ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ๋ฅผ ํ–ˆ์„๋•Œ์—๋„ ๋Œ“๊ธ€์ด ๋งŽ์ด ๋‹ฌ๋ ค์„œ ๊ณต๊ณตapi๋ฅผ ์ด์šฉํ•˜๋ ค๋Š” ํ•™์ƒ๋ถ„๋“ค์ด ๋งŽ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค. ์ด๋ฒˆ์— ํ•™๊ต์—์„œ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐํ™œ์šฉ ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋ผ๊ณ  ํ•ด์„œ ๊ณต๊ณตapi๋ฅผ ์ด์šฉํ•˜์—ฌ ์ง€๋„์— ํ‘œ์‹œํ•˜๋Š” ์›นํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด๋ดค๋Š”๋ฐ ํ•œ๋•Œ ์—ฌ๋Ÿฌ ๋ธ”๋กœ๊ทธ๋“ค์„ ๋ณด๋ฉด์„œ ๊ณต๊ณต api ํ™œ์šฉํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๋‚˜๋ฅผ ์ƒ๊ฐํ•˜๋ฉฐ ์ด๋ฒˆ์—” ์ข€ ์ž์„ธํžˆ ํ’€์–ด๋ณด์•„์•ผ๊ฒ ๋‹ค. 3๋…„์ „์˜ ๋‚˜๋ฅผ ๊ฒฉ๋ คํ•˜๋Š” ๊ธ€์ด๋ผ๊ณ  ๋ณด๋Š”๊ฒŒ ์ข‹๊ฒ ๋‹ค. ๊ณต๊ณต ์˜คํ”ˆ api๋Š” ์‹ ์ž… ๊ฐœ๋ฐœ์ž๊ฐ€ ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋งŒ๋“ค๋•Œ ์ฐธ ํ™œ์šฉํ•˜๊ธฐ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค. ํ•œ์ฐฝ ์ฝ”๋กœ๋‚˜๊ฐ€ ์‹œ์ž‘๋ ๋•Œ์ฏค์ด์—ฌ์„œ ๋ฉด์ ‘๋„ ์•ˆ์žกํžˆ๊ณ  ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•˜๊ธฐ์—” ๋„ˆ๋ฌด๋‚˜๋„ ๋ถˆ์•ˆํ•ด์„œ ๋งˆ์Šคํฌ๋ฅผ ์‚ด์ˆ˜..

node.js 2022.10.10

UNITHON 9th ํ›„๊ธฐ

ํ•ด์ปคํ†ค : ํ•ด์ปคํ†ค(hackathon)์ด๋ž€ ํ•ดํ‚น(hacking)๊ณผ ๋งˆ๋ผํ†ค(marathon)์˜ ํ•ฉ์„ฑ์–ด๋กœ ๊ธฐํš์ž, ๊ฐœ๋ฐœ์ž, ๋””์ž์ด๋„ˆ ๋“ฑ์˜ ์ง๊ตฐ์ด ํŒ€์„ ์ด๋ฃจ์–ด ์ œํ•œ ์‹œ๊ฐ„ ๋‚ด ์ฃผ์ œ์— ๋งž๋Š” ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณต๋ชจ์ „์ด๋‹ค. ๊ต์œก์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐœ๋ฐœ, ๋˜๋Š” ๊ธฐ์กด ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐœ์„ ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด, ์šด์˜ ์ฒด์ œ, ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ, API ๋“ฑ์˜ ํŠน์ •ํ•œ ์ฃผ์ œ๋ฅผ ์ •ํ•ด ๋†“๊ณ  ์—ด๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๊ณ , ๊ทธ๋Ÿฌํ•œ ์ œํ•œ ์—†์ด ์—ด๋ฆฌ๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์ถœ์ฒ˜ : ๋‚˜๋ฌด์œ„ํ‚ค (https://namu.wiki/w/%ED%95%B4%EC%BB%A4%ED%86%A4) ๋‚˜๋Š” ๋Šฆ์€ ๋‚˜์ด์— ๊ฐœ๋ฐœ์ž๋กœ ์ž…๋ฌธํ•œ ๊ฐœ๋ฐœ์ž์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ „๊ณต ๋Œ€ํ•™์ƒ๋“ค์ด ํ•ด์ปคํ†ค์— ๋‚˜๊ฐ€๋Š” ์˜์ƒ๋“ค์„ ๋ณด๋ฉด์„œ ์ฐ๊ฐœ๋ฐœ์ž๋“ค์ด ์ €๊ธฐ์žˆ๊ตฌ๋‚˜ ... ์‹ถ์—ˆ๋Š”๋ฐ ๋‚˜๋„..

etc 2022.09.07

2022 ์ธํ”„์ฝ˜ ํ›„๊ธฐ

์ฝ”์‹œ๊ตญ์„ ๋งž์ดํ•˜๊ณ  ์˜ค๋žœ๋งŒ์— ์—ด๋ฆฌ๋Š” ์˜คํ”„๋ผ์ธ ๊ฐœ๋ฐœ ์ปจํผ๋Ÿฐ์Šค๊ฐ€ ์ฒ˜์Œ์œผ๋กœ ์—ด๋ ธ๋‹ค. ์ธํ”„๋Ÿฐ, ๋ž ๋ฆฟ์˜ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ๋Š” ์ธํ”„๋žฉ์—์„œ ๊ฐœ์ตœํ•˜๋Š” ์ธํ”„์ฝ˜ 2022 :-) ์‚ฌ์ „ ์‹ ์ฒญ์„ ๋ฐ›์•„ ๋žœ๋ค์ถ”์ฒจํ•˜์—ฌ ์ฐธ์—ฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ, ๋‹คํ–‰ํžˆ๋„ ๋‹น์ฒจํ–ˆ๋‹ค๋Š” ๋ฉ”์ผ์ด ์™”๋‹ค ์•ผํ˜ธ! ์œ ํŠœ๋ธŒ ์ฑ„๋„ ๊ฐœ๋ฐœ๋ฐ”๋‹ฅ ๊ณต๊ฐœ๋ฐฉ์†ก์—์„œ ์ธํ”„๋žฉ์˜ CTO๋‹˜๊ป˜์„œ ๋ง์”€ํ•˜์‹  ๋ฐ”๋กœ๋Š” 1๋งŒ ๋ช… ์ •๋„๊ฐ€ ์‚ฌ์ „ ์ฐธ์—ฌ์— ์‘๋ชจํ•ด์ฃผ์…จ๊ณ  1์ฒœ~1.2์ฒœ ๋ช… ์ •๋„๊ฐ€ ์ฐธ์—ฌํ•œ ํ–‰์‚ฌ๋ผ๊ณ  ํ•˜์…จ๋‹ค. ๋กœ๋˜๊ฐ€ ๊ทธ๋ ‡๊ฒŒ ์•ˆ๋˜๋”๋‹ˆ ์—ด์‹ฌํžˆ ๊ฐœ๋ฐœ์ด๋‚˜ ํ•˜๋ผ๊ณ  ์—ฌ๊ธฐ์— ์šด์„ ๋ชฐ๋นต ๋‹นํ–ˆ๋‚˜๋ณด๋‹ค. ๋ฐœํ‘œ ์„ธ์…˜์„ ๊ฒ€์ƒ‰ํ•ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ์„ธ์…˜ ์‹œ๊ฐ„ํ‘œ๊ฐ€ ์ž˜ ๋‚˜์™€์žˆ๋‹ค. ๋‚˜๋Š” ๊ฐ€๊ธฐ ์ „์— ๋ฏธ๋ฆฌ ์–ด๋–ค ์„ธ์…˜์„ ๋“ค์„์ง€ ์‹œ๊ฐ„๋งˆ๋‹ค ์ •ํ•˜๊ณ  ๋ฉ”๋ชจํ•ด๋†“๊ณ  ๊ฐ”๋‹ค. (ํ•ธ์ฆˆ์˜จ ํ–‰์‚ฌ๋Š” ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์น˜๋Š” ๊ฒƒ์ด์–ด์„œ ์‚ฌ์ „ ์‹ ์ฒญ์„ ํ•ด์•ผ ํ•œ๋‹ค.) ์˜คํ”„๋‹ ์ธํ”„๋žฉ์˜ ..

etc 2022.08.28

nestjs + serverless + lambda + apiGateway ์‚ฌ์šฉํ•˜๊ธฐ

์ด ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๋Š” nodejs ํ”„๋ ˆ์ž„์›Œํฌ์ธ nestjs์˜ ๊ท€์—ผ๋‘ฅ์ด ๋งˆ์Šค์ฝ”ํŠธ ๋กœ๊ณ ์ด๋‹ค. node๊ณ„์˜ ์Šคํ”„๋ง๋ถ€ํŠธ ๊ฐ™์€ ๋Š๋‚Œ์ธ๋ฐ ๊ธฐ์กด์˜ nodejs์˜ ๋Œ€ํ‘œ์ ์ธ ํ”„๋ ˆ์ž„์›Œํฌ์ธ express์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์˜์กด์„ฑ ์ฃผ์ž… ๊ฐœ๋…๋„ ์žˆ๊ณ  ์ด๋ฏธ ๋งˆ๋ จ๋œ ๋ฏธ๋“ค์›จ์–ด ๋“ฑ์ด ์žˆ์–ด ๊พธ์ค€ํžˆ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ๋Š” nodejs์˜ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. ๋‚˜๋Š” ๊ท€์—ฌ์šด ๊ณ ์–‘์ด๊ฐ€ ์ข‹์€ nestjs๊ฐ€ ์ฃผ์ข…๋ชฉ์ธ ๊ฐœ๋ฐœ ์ฃผ๊พธ๋ฏธ ์„œ๋ฒ„๋ฆฌ์Šค๋Š” ๋ง ๊ทธ๋Œ€๋กœ ์„œ๋ฒ„๊ฐ€ ์—†๋‹ค๋Š” ๋œป์ธ๋ฐ, ์ข€ ๋” ๊ฐœ๋ฐœ์ ์œผ๋กœ ์ ‘๊ทผํ•˜์ž๋ฉด ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋ผ๋Š” ๋Š๋‚Œ์œผ๋กœ ํ•ด์„์„ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์ข€ ๋” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ํ•˜๋Š” ๋Š๋‚Œ์œผ๋กœ ์ง„์งœ ์„œ๋ฒ„๊ฐ€ ์—†๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ทธ์ € ์„œ๋ฒ„๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๋œ์–ด๋‚ธ ์˜๋ฏธ์˜ ์„œ๋ฒ„๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ํ•ด๋‹นํ•˜๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋น ๋ฅด๊ฒŒ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด ์‚ฌ๋‹ค..

node.js 2022.08.23

nestjs swagger ๋ณด์•ˆ์„ค์ •ํ•˜๊ธฐ

main.ts const basicAuth = require('express-basic-auth'); app.use( ['/api'], basicAuth({ challenge: true, users: { [process.env.SWAGGER_USER]: process.env.SWAGGER_PASSWORD, }, }), ); ํŠน์ •ํ•œ url์— ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณด์•ˆ์„ ์„ค์ •ํ• ์ˆ˜์žˆ๋Š” ๋ชจ๋“ˆ๊ณผ ์ฝ”๋“œ ์Šค์›จ๊ฑฐ๋ฅผ ์„ค์ •ํ• ๋•Œ api๊ฐ€ ๊ธฐ๋ณธ ๊ฒฝ๋กœ๊ธฐ๋•Œ๋ฌธ์— ์ด ๊ฒฝ๋กœ์ผ๋•Œ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ณด์•ˆ์ด ๊ฑธ๋ฆฌ๊ฒŒ๋œ๋‹ค. ๋ณดํ†ต ์ด๋Š” ํ™˜๊ฒฝ๋ณ€์ˆ˜ํŒŒ์ผ์—์„œ ์„ค์ •ํ•˜์—ฌ ๋ถˆ๋Ÿฌ์™€์„œ ์‚ฌ์šฉ ํ•˜๋ฉด ๋œ๋‹ค.

node.js 2022.04.06