๐Ÿ’•
ํ›„์›
๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ „์ฒด ๊ธ€113

[BOJ] 15647. ๋กœ์ŠคํŒ…ํ•˜๋Š” ์— ๋งˆ๋„ ๋ฐ”๋ฆฌ์Šคํƒ€์ž…๋‹ˆ๋‹ค https://www.acmicpc.net/problem/15647ํŠธ๋ฆฌ์˜ ๊ฐ ๋…ธ๋“œ์—์„œ ๋‹ค๋ฅธ ๋ชจ๋“  ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ์ตœ๋‹จ ๊ฒฝ๋กœ๋“ค์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.๊ฐ„๋‹จํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์„œ ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๊ฐˆ ๋•Œ ๋ฌด์กฐ๊ฑด ๋ฃจํŠธ ๋…ธ๋“œ๋ฅผ ๊ฑฐ์นœ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๊ณ„์‚ฐํ•œ ํ›„ ํ•„์š”์—†๋Š” ๊ฐ„์„ ์„ ๋นผ์ฃผ๋ฉด ๋  ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค.len_to_root = [0 for _ in range(N + 1)] # ๋ฃจํŠธ ๋…ธ๋“œ์—์„œ ๊ฐ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฑฐ๋ฆฌlen_to_parent = [0 for _ in range(N + 1)] # ๋ถ€๋ชจ ๋…ธ๋“œ๋กœ ๊ฐ€๋Š” ๊ฑฐ๋ฆฌparents = [0 for _ in range(N + 1)] # ๋ถ€๋ชจ ๋…ธ๋“œsubtree = [0 for _ in range(N + 1)] # ์„œ๋ธŒํŠธ๋ฆฌ ๊ฐœ์ˆ˜def dfs(now, parent, length): .. 2024. 6. 26.
[React] [๋ฒˆ์—ญ] ๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ, ์ž์‹ ์ปดํฌ๋„ŒํŠธ, ๋ถ€๋ชจ ์ปดํฌ๋„ŒํŠธ ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ๋ Œ๋”๋ง์— ๊ด€ํ•œ ๋ฏธ์Šคํ„ฐ๋ฆฌ ์›๋ฌธ: https://www.developerway.com/posts/react-elements-children-parents by Nadia Makarevich The mystery of React Element, children, parents and re-rendersLooking into what is React Element, exploring various children vs parents relationship in React, and how they affect re-renderswww.developerway.com๋ฆฌ์•กํŠธ ์—˜๋ฆฌ๋จผํŠธ๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด๊ณ , ๋ฆฌ์•กํŠธ์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„์— ๋Œ€ํ•ด ํƒ๊ตฌํ•ด๋ณด๊ณ , ๋ฆฌ๋ Œ๋”์— ์–ด๋–ค ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š”์ง€ ์•Œ์•„๋ด…์‹œ๋‹ค.๋ฆฌ์•กํŠธ ์ปดํฌ์ง€์…˜(ํ•ฉ์„ฑ)์— ๊ด€ํ•œ ์ด์ „ ๊ธ€์—์„œ, .. 2024. 6. 22.
[๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ] ๋š๋”ฑ๋š๋”ฑ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“œ๋Š” ์ผ๊ธฐ ์ด๋ฒˆ ํ•™๊ธฐ์— ๋™์•„๋ฆฌ์—์„œ ์ฐฌํœ˜์˜ '๋‚˜๋งŒ์˜ ์ž‘๊ณ  ์†Œ์ค‘ํ•œ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋งŒ๋“ค๊ธฐ' ์„ธ์…˜์„ ๋“ค์œผ๋ฉฐ UI ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด๋ณผ ๊ธฐํšŒ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ „๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด๋ณด๊ณ  ์‹ถ๋‹ค๊ณ ๋Š” ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ ํ‚น๊ฐ“์ฐฌํœ˜๊ฐ€ ๋– ๋จน์—ฌ์ค€๋‹ค? ๋‹น์žฅ ๋‹ฌ๋ ค๊ฐ”์Šต๋‹ˆ๋‹ค.์ผ๋‹จ ์ฃผ ๋ชฉ์ ์€ ๋‚ด๊ฐ€ ์“ธ ๊ฒƒ์„ ๋งŒ๋“ค๊ธฐ์˜€์Šต๋‹ˆ๋‹ค.๋ฒˆ๋“ค๋Ÿฌ, UI ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ๋„๊ตฌ ์„ ํƒ๊ณผ ์„ธํŒ…์šฐ์„  ๋ฒˆ๋“ค๋Ÿฌ๋Š” ์šฐ๋ฆฌ๊ฐ€ js, jsx๋‚˜ ts, tsx ๋“ฑ์œผ๋กœ ์ž‘์„ฑํ•œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ฝ”๋“œ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜ ๋˜๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋ฌธ์ž๋ฅผ ์••์ถ•ํ•ด์„œ ์ฝ”๋“œ ํŒŒ์ผ์˜ ์šฉ๋Ÿ‰์„ ์ค„์—ฌ์ฃผ๊ธฐ๋„ ํ•˜๊ณ  ํŠธ๋ฆฌ ์…ฐ์ดํ‚น์„ ํ†ตํ•ด ์•ˆ ์“ฐ๋Š” ๋ถ€๋ถ„์„ ์—†์• ์ฃผ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ์œ ๋ช…ํ•œ ์›น ๋ฒˆ๋“ค๋Ÿฌ๋Š” ์•„๋ฌด๋ž˜๋„ Webpack์ผํ…๋ฐ์š”. ์›นํŒฉ์˜ ๊ฐ€์žฅ ํฐ ์œ ์šฉํ•œ ์  ์ค‘ ํ•˜๋‚˜๋Š” Hot Module Replacement์ž…๋‹ˆ๋‹ค... 2024. 6. 4.
[NCP] ์„œ๋ฒ„ ๋งŒ๋“ค๊ณ  ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•˜๊ธฐ VPC์™€ ์„œ๋ธŒ๋„ท ๋งŒ๋“ค๊ธฐ์„œ๋ฒ„๋ฅผ ๋„์šฐ๋ ค๋ฉด ์šฐ์„  VPC๋ฅผ ๋งŒ๋“ค์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.VPC๋Š” ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ์ธ๋ฐ์š”, ํด๋ผ์šฐ๋“œ ํ™˜๊ฒฝ ๋‚ด์—์„œ ๊ฐ€์ƒ ๋„คํŠธ์›Œํฌ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” IP ์ฃผ์†Œ๋ฅผ ์จ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.  CIDR ํ‘œ๊ธฐ๋ฒ•์—์„œ ์Šฌ๋ž˜์‹œ(/) ๋’ค์— ์˜ค๋Š” ์ˆซ์ž๋Š” ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ ๋ถ€๋ถ„์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, /16์€ ์•ž์˜ 16๋น„ํŠธ๊ฐ€ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ๋‚˜๋จธ์ง€ ๋น„ํŠธ๋Š” ํ˜ธ์ŠคํŠธ ์ฃผ์†Œ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ์ˆซ์ž๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์„œ๋ธŒ๋„ท์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง‘๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๋„คํŠธ์›Œํฌ์—์„œ ์‚ฌ์šฉ๋˜๋Š” IP ์ฃผ์†Œ ๋ฒ”์œ„๋ฅผ /16(๋„“์€ ๋ฒ”์œ„)์—์„œ /28(๋‚ฎ์€ ๋ฒ”์œ„) ๋‚ด์—์„œ ์„ค์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.์ €๋Š” ํ…Œ์ŠคํŠธ์šฉ์œผ๋กœ 10.0.0.0/16์œผ๋กœ ์„ค์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์ด์ œ VPC๋ฅผ ๋งŒ๋“ค์—ˆ์œผ๋‹ˆ ์„œ๋ธŒ๋„ท์„ ๋งŒ๋“ค์–ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.์„œ๋ธŒ๋„ท์€ VPC ๋‚ด์—์„œ ๋” ์ž‘.. 2024. 5. 28.
[Next.js] 1์‹œ๊ฐ„๋งŒ์— OpenAI๋กœ ์˜์–ด ํšŒํ™” ๋„์šฐ๋ฏธ ๋งŒ๋“ค๊ธฐ ์ „ํ™”์˜์–ด์ฒ˜๋Ÿผ ์Œ์„ฑ์œผ๋กœ ์˜์–ดํšŒํ™”๋ฅผ ํ•˜๊ณ , ๋‚ด ํšŒํ™”์—์„œ ๊ณ ์น  ์ ์„ AI๊ฐ€ ์•Œ๋ ค์ฃผ๋ฉด ์ข‹๊ฒ ๋‹ค.. ๋ผ๋Š” ์ƒ๊ฐ์œผ๋กœ ๋š๋”ฑ ๋งŒ๋“ค์–ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ๋ณ„๋กœ ์–ด๋ ต์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค! ์šฐ์„  ChatGPT๋ฅผ ํ™œ์šฉํ•ด์„œ ๋Œ€ํ™” ์ฃผ์ œ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฃผ์ œ์— ๋งž๊ฒŒ ๋Œ€ํ™”๋ฅผ ์ง„ํ–‰ํ•  ๊ฑฐ์˜ˆ์š”. ํ”„๋กฌํ”„ํŠธ๋„ ChatGPTํ•œํ…Œ ์จ๋‹ฌ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋š๋”ฑ์ด์ฃ . Next.js์˜ API ๋ผ์šฐํ„ฐ์—์„œ OpenAI์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๊ฒ๋‹ˆ๋‹ค. ์šฐ์„  ์œ„์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ํ™œ์šฉํ•ด์„œ, AI๊ฐ€ ๋‚ด ๋ฐœํ™”์˜ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๋ฅผ ๊ณ ์ณ์ฃผ๋Š” ๋ผ์šฐํŠธ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. import { CONCEPT_PROMPT, PROMPT } from "@/app/constants/prompt"; import OpenAI from "openai"; const openai = new OpenAI({ apiKey:.. 2024. 4. 7.
[๋ฆฌ๋ทฐ] SKYST HACKATHON 2 ํ›„๊ธฐ - ํ”„๋ก ํŠธ์—”๋“œ ํŒ€์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ, ํ’€์Šคํƒ ํŒ€์ด์—ˆ์Šต๋‹ˆ๋‹ค ํ”„๋ก ํŠธ์—”๋“œ๊ฐ€ ์ฃผ ๋ถ„์•ผ์ธ ์‚ฌ๋žŒ 5๋ช…(์ €, ์ฐฌํœ˜, ์šฉ์ค€, ์˜ํ—Œ, ์ง€์ˆ˜)์ด์„œ ํŒ€์„ ๊พธ๋ ค ์ถœ์ „ํ•œ ์Šค์นด์ด์ŠคํŠธ ํ•ด์ปคํ†ค. ์ •์‹ ์ฐจ๋ ค๋ณด๋‹ˆ ์ฐฌํœ˜๐Ÿฆˆ๋Š” ๋””์ž์ธ์„ ์ „๋ถ€ ๋งก์•˜๊ณ , ๊ธฐํš ํ•˜๊ณ  ์‹ถ์–ดํ–ˆ๋˜ ์ง€์ˆ˜๐Ÿ‘ผ๋Š” ๊ฐ๊ธฐ ๊ฑธ๋ ค์„œ ๋ถˆ์ฐธํ•ด๋ฒ„๋ ธ๊ณ , ์šฉ์ค€โš”๏ธ์€ ๋ฒ„๊ทธ ์‚ฌ๋ƒฅ๊พผ์ด ๋˜์–ด ์žฅ์žฅ 4์‹œ๊ฐ„์˜ ์‚ฝ์งˆ์„ ๋๋‚ด๋ฒ„๋ ธ๊ณ , ์˜ํ—Œ๐Ÿฆ์€ ํ”„๋กฌํ”„ํŠธ ์—”์ง€๋‹ˆ์–ด๋กœ ๊ฑฐ๋“ญ๋‚˜๊ณ , ์ €๐Ÿฐ๋Š”.... ๋ฐฑ์—”๋“œ๋ฅผ ํ–ˆ์Šต๋‹ˆ๋‹ค. SKYST๋Š” ์„œ์šธ๋Œ€, ์—ฐ์„ธ๋Œ€, ๊ณ ๋ ค๋Œ€, KAIST ์—ฐํ•ฉ ๋‹จ์ฒด์ž…๋‹ˆ๋‹ค.. ์ž‘๋…„์—๋Š” SKYCC์˜€๋Š”๋ฐ, ์นด์ด์ŠคํŠธ๋„ ํ•จ๊ป˜ ํ•˜๊ฒŒ ๋˜์–ด์„œ SKYST๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋„ค์š”. ์ €ํฌ ํŒ€์€ ๋ชจ๋‘ KUCC ํšŒ์›๋“ค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๋ฐ์š”. ์ง€์ˆ˜๊ฐ€ ๋“œ๋ž˜๊ณค๋ณผ์„ ์—ด์‹ฌํžˆ ๋ชจ์•„์„œ ํŒ€์„ ๊พธ๋ ธ์Šต๋‹ˆ๋‹ค. ํŒ€์žฅ์ธ ์ฐฌํœ˜๊ฐ€ ์ง€์€ ์ €ํฌ ํŒ€๋ช…์€ ๋ฉ‹์ง„์˜ˆ๊ธˆ. ๋Œ€ํšŒ ๊ณต์‹์ ์œผ๋กœ ๊ณต์ง€ ๋ฐ ์งˆ๋ฌธ ๋“ฑ ์†Œํ†ต์€ Slack์„ ํ™œ์šฉํ–ˆ๋Š”๋ฐ.. 2024. 3. 27.
[ํฌ์Šคํ„ฐ] KUCC ํฌ์Šคํ„ฐ ๋ชจ์Œ ๊ฒฐ๊ตญ ์™ผ์ชฝ์œผ๋กœ ํ–ˆ์—ˆ๋Š”๋ฐ, ์˜ค๋ฅธ์ชฝ ๋””์ž์ธ๋„ ๋งˆ์Œ์— ๋“ค์–ด์„œ ๋ฆฌํฌ๋ฃจํŒ… ํ™๋ณด ํŽ˜์ด์ง€ ๋งŒ๋“ค ๋•Œ ๋””์ž์ธ์„ ํ™œ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ,, ์ด๊ฒƒ๋„ ๋‘˜ ์ค‘์— ๊ณ ๋ฏผํ•˜๋‹ค๊ฐ€ ํˆฌํ‘œ๋กœ ํ•˜์–€ ๋ฐฐ๊ฒฝ์ด ์ฑ„ํƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค,, ๊ทธ๋ฆฌ๊ณ  ๋งˆ์Œ์— ๋“ค์—ˆ์œผ๋‚˜ ์ฑ„ํƒ๋˜์ง€ ๋ชปํ•œ ์•„์ด๋“ค,,,์ž…๋‹ˆ๋‹ค,,, ์ƒ๋‹นํžˆ ๋ง˜์— ๋“œ๋Š” ๋™์•„๋ฆฌ ํšŒ์ง€ ํ‘œ์ง€ ๋””์ž์ธ.. ์ง„์งœ ๊ฐ์ด ์•ˆ ์žกํ˜€์„œ ๋™๋™๊ฑฐ๋ฆฌ๊ณ  ์žˆ๋Š”๋ฐ ํ•œ ๋Œ€ํ•™์›์ƒ์ด ์ง€๋‚˜๊ฐ€๋ฉด์„œ ๋™์•„๋ฆฌ๋ฐฉ ๋ฒฝ์— ๊ฑธ๋ฆฐ ์‚ฌ์ง„๋“ค ํ™œ์šฉํ•ด๋ณด๋ฉด ์–ด๋•Œ? ํ•˜๋Š” ๋ง์— ์˜๊ฐ์ด ๋– ์˜ฌ๋ผ์„œ ๋งŒ๋“ค์—ˆ์—ˆ๋„ค์š”... ๋””์ž์ธ ํ•œ๊ฒƒ๋“ค ์ข€ ๋ธ”๋กœ๊ทธ์— ์ข…์ข… ์˜ฌ๋ ค์•ผ๊ฒ ์Šต๋‹ˆ๋‹ค.. ใ…Žใ…Ž 2024. 3. 10.
[Python] ํ•ญ์ƒ ํ™”๋ฉด ์œ„์— ๋– ์žˆ๋Š” ChatGPT Widget ๋งŒ๋“ค๊ธฐ ์ „์ฒด ์ฝ”๋“œ๋Š” github์—์„œ ํ™•์ธํ•˜์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. GitHub - r-4bb1t/chatgpt-widget Contribute to r-4bb1t/chatgpt-widget development by creating an account on GitHub. github.com ๋ธŒ๋ผ์šฐ์ €์— 20+๊ฐœ์˜ ํƒญ์„ ์ผœ๋†“๊ณ  ์‚ฌ๋Š” ํ˜„๋Œ€์ธ๋“ค... (์ €๋งŒ ๊ทธ๋Ÿฐ๊ฐ€์š”?) ChatGPT๋ฅผ ์“ธ ์ผ์ด ๋งŽ์€๋ฐ, ์—ด์–ด๋†“์€ ํƒญ ์ค‘ ChatGPT๋ฅผ ์ฐพ๊ธฐ๋„ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ํ™”๋ฉด์„ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ๋„ ๋ฒˆ๊ฑฐ๋กœ์› ์Šต๋‹ˆ๋‹ค. ๋ชจ๋‹ˆํ„ฐ๋ฅผ ํ•˜๋‚˜๋งŒ ์“ฐ๋Š” ๋žฉํƒ‘ ์œ ์ €์˜ ์Šฌํ””์ด๊ธฐ๋„ ํ•˜์ฃ . ํ™”๋ฉด ์œ„์— ํ•ญ์ƒ ChatGPT๊ฐ€ ๋„์›Œ์ ธ ์žˆ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์—, ์ง์ ‘ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ์„  ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์„ฑ์€ figma๋กœ ์œ„์™€ ๊ฐ™์ด ์žก์•„๋ณด๊ณ , PyQT5๋กœ GUI๋ฅผ ๊ตฌ์„ฑํ•ด์„œ ๋งŒ๋“ค์–ด๋ณด๊ธฐ๋กœ.. 2024. 2. 21.
[๋ฆฌ๋ทฐ] SPARCS Service Hackathon 2024 ์ฐธ๊ฐ€ ํ›„๊ธฐ - ์ตœ์šฐ์ˆ˜์ƒ ์ˆ˜์ƒ! ์ด๋ฒˆ 2์›” 14์ผ๋ถ€ํ„ฐ 16์ผ๊นŒ์ง€, ๋Œ€์ „๊ด‘์—ญ์‹œ ๋ฐ KAIST์—์„œ ์ฃผ๊ด€ํ•˜๊ณ  KAIST ์‚ฐํ•˜ ๊ฐœ๋ฐœ์ž์น˜๋‹จ์ฒด์ด์ž KAIST ํ•™๋ถ€ ์ดํ•™์ƒํšŒ ์‚ฐํ•˜ ํŠน๋ณ„๊ธฐ๊ตฌ์ธ SPARCS์—์„œ ์ฃผ๊ด€ํ•œ SPARCS Service Hackathon 2024์— ์ฐธ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค! ์ด๋ฒˆ ์ŠคํŒ์Šค ํ•ด์ปคํ†ค์€ ๊ฐœ์ธ ํ˜น์€ 2์ธ ์ง€์›์ด ๊ฐ€๋Šฅํ•ด์„œ, ๋™์•„๋ฆฌ ์นœ๊ตฌ์ธ KUCC ๊ณต์‹ ์นดํ”ผ๋ฐ”๋ผ ๋ฏผ๋ด๋ฆฌ๋‹˜๊ณผ ํ•จ๊ป˜ ์‹ ์ฒญ์„œ๋ฅผ ์ œ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ํŒ€์€ ์ด 4๋ช…์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ์ €ํฌ ํŒ€์€ ์ €์™€ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž ์ฟผ์นด, ๊ทธ๋ฆฌ๊ณ  ์„œ์šธ๋Œ€ํ•™๊ต ๊ณผ ๋™๊ธฐ ์‚ฌ์ด์ธ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž ํ•˜๋‚˜์™€ ๊ธฐํš์ž ๋™๊ฒฝ์ด๋กœ ๊ตฌ์„ฑ๋˜์—ˆ์–ด์š”. ํ–‰์‚ฌ ์ „ ๊ณต์ง€๋ฅผ ํ†ตํ•ด ๊ณต๊ฐœ๋œ ํ•ด์ปคํ†ค์˜ ํ…Œ๋งˆ๋Š” ์ง€์—ญ ์‚ฌํšŒ ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ์˜€์Šต๋‹ˆ๋‹ค. ๊ณต์‹์ ์œผ๋กœ ๋Œ€ํšŒ 1์ผ์ฐจ์—๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋ฐ ์‹œ๊ฐํ™” ๋ฏธ์…˜์ด ์ง„ํ–‰๋˜๋Š”๋ฐ, ์ด ๋ฏธ์…˜์—์„œ๋Š” ๋Œ€์ „๊ด‘์—ญ์‹œ์˜ ํŠน์ง•์ด๋‚˜ .. 2024. 2. 18.
[Next.js] API route์™€ firebase๋กœ ์ธ์ฆ๊ณผ ๊ธ€ ์“ฐ๊ธฐ ๊ตฌํ˜„ํ•˜๊ธฐ ํŒŒ์ด์–ด๋ฒ ์ด์Šค Auth ์„ธํŒ… ์šฐ์„  ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ๋กœ๊ทธ์ธ ์ œ๊ณต์—…์ฒด๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. github์œผ๋กœ ์ง„ํ–‰ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. github์— ์ ‘์†ํ•˜์—ฌ, Settings / Developer Settings / OAuth Apps์—์„œ New OAuth App์„ ๋งŒ๋“ค๊ณ  Client ID์™€ Client secrets๋ฅผ ๋ณต์‚ฌํ•ด๋‘ก๋‹ˆ๋‹ค. ๋ณต์‚ฌํ•ด๋‘” ID์™€ secret์„ ์ž…๋ ฅํ•˜๊ณ , callback URL๋„ ๋ณต๋ถ™ํ•ด ๊นƒํ—ˆ๋ธŒ์— ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค. Next.js ์„ค์ • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋กœ firebase์™€ firebase-admin์„ ์„ค์น˜ํ•ด์ค๋‹ˆ๋‹ค. pnpm add firebase firebase-admin ๋‹ค์Œ๊ณผ ๊ฐ™์ด .env๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก ์ฝ”๋“œ(route.ts ๋“ฑ)์—์„œ๋Š” firebase-admin SDK๋ฅผ ์ด์šฉํ•ด์„œ ์ ‘๊ทผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. NEX.. 2024. 1. 21.
[ํšŒ๊ณ ] ์ปดํ“จํ„ฐ ๋™์•„๋ฆฌ, ํšŒ์žฅ ์„ธ ๋ฒˆ ํ•œ ์‚ฌ๋žŒ ์—ฌ๊ธฐ์— ์‹ค์กดํ•˜๋‹ค KUCC์— ๋“ค์–ด์˜ค๊ธฐ๊นŒ์ง€ ์ €๋Š” ๋Œ€๋žต 2011๋…„, ์ดˆ๋“ฑํ•™๊ต 5ํ•™๋…„ ๋•Œ๋ถ€ํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•ด์™”๊ณ , ๊ทธ ๋•Œ๋ถ€ํ„ฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์ง„๋กœ๋ฅผ ์ƒ๊ฐํ•ด๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ํ•™์ฐฝ ์‹œ์ ˆ์—๋„ ์†”์งํžˆ ๋งํ•˜๋ฉด ๊ณต๋ถ€๋ณด๋‹ค๋Š” ๊ฐœ๋ฐœ์ด๋‚˜ ์ข‹์•„ํ•˜๋Š” ๊ฒƒ์— ์ข€ ๋” ์ง‘์ค‘ํ•˜๋Š” ํ•™์ƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ์ €๋Š”, ์ž…์‹œ๊ฐ€ ๋๋‚˜๊ณ  20์‚ด์ด ๋œ ํ•ด 2019๋…„์— ๋Œ€ํ•™์— ์ž…ํ•™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜๋Šฅ ์„ฑ์ ์ด ์›ํ•˜๋Š” ๋งŒํผ ๋‚˜์˜ค์ง€ ์•Š์•„ ๊ฐ€๊ณ  ์‹ถ์€ ๊ณผ๊ฐ€ ์•„๋‹Œ ์ ์„ฑ์— ๋งž์ง€ ์•Š๋Š” ๊ณผ๋ฅผ ์„ ํƒํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ ์•„๋ฒ„์ง€์˜ ๋ชจ๊ต๋ผ๋Š” ์ด์œ ๋งŒ์œผ๋กœ ์›์„œ๋ฅผ ์“ฐ๊ณ , ์˜ค๊ฒŒ ๋œ ๊ณ ๋ ค๋Œ€ํ•™๊ต์—์„œ, ํ•™๊ณผ ๊ณต๋ถ€๋ณด๋‹ค๋Š” ์ œ ์ง„๋กœ์— ๋„์›€์ด ๋˜๊ณ  ์ œ๊ฐ€ ์žฌ๋ฏธ๋ฅผ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ํ™œ๋™์„ ํ•˜๊ณ  ์‹ถ์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์ž…ํ•™ํ•˜์ž๋งˆ์ž ํ•™๊ต ์ปค๋ฎค๋‹ˆํ‹ฐ ๋“ฑ์— ‘์ปดํ“จํ„ฐ’๋ผ๋Š” ํ‚ค์›Œ๋“œ๋กœ ๊ฒ€์ƒ‰์„ ํ•ด KUCC๋ฅผ ์•Œ๊ฒŒ ๋˜๊ณ , ๊ณง๋ฐ”๋กœ ์ง€์›์„œ๋ฅผ ์ œ์ถœํ•˜์˜€์Šต๋‹ˆ.. 2023. 11. 29.
[Web] ์ดˆ๋ณด ์›น ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฐฑ์—”๋“œ์™€ ํ†ต์‹ ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋‚œ๋‹ค๋ฉด? ์ผ๋‹จ ๋„คํŠธ์›Œํฌ ํƒญ์„ ๋œฏ์–ด๋ณด๋ฉด ๋Œ€๋žต์ ์ธ ํŒŒ์•…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์˜๋„ํ•œ ๋Œ€๋กœ ๋ณด๋‚ด์กŒ๋Š”์ง€, ๋งž๋Š” ๋ฉ”์†Œ๋“œ๋กœ ๋งž๋Š” ์ฃผ์†Œ์— ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด๋ฉด ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ์— ์˜คํƒ€๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋„คํŠธ์›Œํฌ ํƒญ์„ ๊นŒ๋ด…๋‹ˆ๋‹ค. ์š”์ฒญ Payload, ์š”์ฒญ์„ ๋ณด๋‚ธ API ์ฃผ์†Œ, ๋ฉ”์†Œ๋“œ์™€ ํ—ค๋”๋ฅผ ํŒŒ์•…ํ•ด ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. Postman์—์„œ๋Š” ์ž˜ ๋˜๋Š”์ง€ ํ™•์ธํ•ด๋ด…๋‹ˆ๋‹ค. (Postman์—์„œ๋Š” ์ž˜ ๋œ๋‹ค๋ฉด, ํด๋ผ์ด์–ธํŠธ ์ชฝ ๋ฌธ์ œ์ผ ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๊ฒ ์ฃ ?) ์œ„์˜ ์ •๋ณด์™€ ์‘๋‹ต๊ฐ’์„ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ณ  ํ™•์ธ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ํ”ํžˆ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋“ค์ด๋ผ์„œ ์ •๋ฆฌํ•ด๋ดค์Šต๋‹ˆ๋‹ค. Q. CORS ์—๋Ÿฌ๊ฐ€ ๋‚˜์š”. A. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ CORS๋ฅผ ๋šซ์–ด๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. Q. Method Not Allowed ์˜ค๋ฅ˜๊ฐ€ ๋– ์š”. A. PO.. 2023. 11. 22.