profile
[โš™๏ธ + ๐Ÿ’ก] ํšจ์œจ ์†์—์„œ ์ฐฝ์˜์„ฑ์„ ์‹คํ—˜ํ•ฉ๋‹ˆ๋‹ค.
post-thumbnail

์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๋Œ€๋Š” ๋๋‚ฌ๋‹ค โ€” Harness Engineering ๊ฐœ๋…๋ถ€ํ„ฐ ์‹ค์ „ ์ ์šฉ๊นŒ์ง€

OpenAI๊ฐ€ 5๊ฐœ์›” ๋งŒ์— 100๋งŒ ์ค„์„ 0์ค„์˜ ์ˆ˜๋™ ์ฝ”๋“œ๋กœ ๋งŒ๋“  ๋น„๊ฒฐ, Harness Engineering. ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ž˜ ์“ฐ๋Š” ์‹œ๋Œ€๋Š” ๋๋‚ฌ๋‹ค. ์ด์ œ๋Š” AI๊ฐ€ ์‹ค์ˆ˜ํ•  ์ˆ˜ ์—†๋Š” ํ™˜๊ฒฝ์„ ์„ค๊ณ„ํ•˜๋Š” ์‹œ๋Œ€๋‹ค. ๊ฐœ๋…๋ถ€ํ„ฐ Flutter+Next.js ์‹ค์ „ ์ ์šฉ๊นŒ์ง€.

2026๋…„ 3์›” 3์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๋Œ€๋Š” ๋๋‚ฌ๋‹ค โ€” OpenAI์˜ Harness Engineering์ด ๋ฐ”๊ฟ”๋†“์€ ๊ฒƒ๋“ค

AI๊ฐ€ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ์‹œ๋Œ€, ๊ฐœ๋ฐœ์ž์˜ ์—ญํ• ์€ '์ฝ”๋“œ ์ž‘์„ฑ์ž'์—์„œ 'AI๊ฐ€ ์•ˆ์ „ํ•˜๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ ์„ค๊ณ„์ž'๋กœ ๋ฐ”๋€๋‹ค. OpenAI๊ฐ€ ๊ณต๊ฐœํ•œ Harness Engineering โ€” ์ œ์•ฝ, ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„, ์ž๋™ ํ’ˆ์งˆ ๊ด€๋ฆฌ๋กœ ๊ตฌ์„ฑ๋œ AI ์—์ด์ „ํŠธ ์šด์šฉ ๋ฐฉ๋ฒ•๋ก 

2026๋…„ 2์›” 28์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

์˜ˆ์•ฝ ์‹œ์Šคํ…œ์—์„œ ๋™์‹œ์„ฑ ๋ฒ„๊ทธ๋ฅผ ์žก๊ธฐ๊นŒ์ง€ โ€” ๋น„๊ด€์  ๋ฝ์ด ์‹คํŒจํ•œ ์ด์œ ์™€ 3์ค‘ ๋ฐฉ์–ด์˜ ํƒ„์ƒ

์˜ˆ์•ฝ ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋น„๊ด€์  ๋ฝ์„ ๋„์ž…ํ–ˆ์œผ๋‚˜, ์ฒซ ์˜ˆ์•ฝ ์‹œ '๋นˆ ํ–‰(Empty Row)'์„ ์ž ๊ทธ์ง€ ๋ชปํ•˜๋Š” ํ•œ๊ณ„์— ๋ถ€๋”ชํ˜”์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด DB Unique ์ œ์•ฝ์กฐ๊ฑด๊ณผ saveAndFlush()๋ฅผ ํ™œ์šฉํ•œ 3์ค‘ ๋ฐฉ์–ด์„ ์„ ๊ตฌ์ถ•

2026๋…„ 2์›” 25์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

CRUD ์งœ๋ฉด์„œ ์ด๋Ÿฐ ๊ณ ๋ฏผ๊นŒ์ง€ ํ•ด์•ผ ๋ผ? (feat. JVM, GC, ThreadLocal)

๋‹จ์ˆœ CRUD๋ฅผ ์งœ๋ฉด์„œ ๋ฐœ๊ฒฌํ•œ ๊ฒƒ๋“ค. ์‹ฑ๊ธ€ํ†ค Service์˜ ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ, Entity ์กฐํšŒ์˜ GC ๋น„์šฉ, @Transactional ๋’ค์˜ ThreadLocal ๋ฉ”์ปค๋‹ˆ์ฆ˜๊นŒ์ง€ โ€” ์ฝ”๋“œ์˜ ๊นŠ์ด๋Š” ๊ธฐ๋Šฅ์˜ ๋ณต์žก๋„๊ฐ€ ์•„๋‹ˆ๋ผ ์›๋ฆฌ์˜ ์ดํ•ด์—์„œ ๋‚˜์˜จ๋‹ค.

2026๋…„ 2์›” 24์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ญ˜ ์–ด๋–ป๊ฒŒ ์งœ์•ผ ํ•˜๋Š” ๊ฑด๋ฐ?

ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ ์งœ๋ณด๋ฉด์„œ ๋ฐฐ์šด ๊ฒƒ๋“ค. Entity/Repository/Service ํ…Œ์ŠคํŠธ์˜ ์ฐจ์ด, given/when/then ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ์งœ๋‹ค๊ฐ€ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ์˜ ์„ค๊ณ„ ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ•œ ์ด์•ผ๊ธฐ.

2026๋…„ 2์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท
post-thumbnail

API์„ค๊ณ„ํ•˜๋ฉด์„œ ๋ถ€๋”ชํžŒ 3๊ฐ€์ง€ โ€” URL ์„ค๊ณ„, ๊ฒ€์ฆ ๊ฒฝ๊ณ„, ํฌ๋กœ์Šค ๋„๋ฉ”์ธ ์˜์กด

API ์„ค๊ณ„ํ•˜๋ฉด์„œ ๋ถ€๋”ชํžŒ 3๊ฐ€์ง€. /me ํŒจํ„ด์˜ REST ์›์น™ ์œ„๋ฐฐ, ํ”„๋ก ํŠธ vs ๋ฐฑ์—”๋“œ ๊ฒ€์ฆ ๊ฒฝ๊ณ„, ํฌ๋กœ์Šค ๋„๋ฉ”์ธ ์˜์กด ๋ฌธ์ œ๋ฅผ ์‹ค์ œ ์ฝ”๋“œ์™€ ํŠธ๋ ˆ์ด๋“œ์˜คํ”„์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ–ˆ๋‹ค.

2026๋…„ 2์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Firebase + ์†Œ์…œ ๋กœ๊ทธ์ธ ์™„์ „ ์ •๋ณต (๊ตฌ๊ธ€, ์• ํ”Œ, ์นด์นด์˜ค) ๐Ÿ”ฅ

๐Ÿ†• 2025๋…„ ์ตœ์‹  ๋ฒ„์ „ ์™„๋ฒฝ ๋Œ€์‘! ๊ฐœ์š” ๐Ÿ“ Flutter ์•ฑ์—์„œ Firebase Authentication๊ณผ ํ•จ๊ป˜ ๊ตฌ๊ธ€, ์• ํ”Œ, ์นด์นด์˜ค ๋กœ๊ทธ์ธ์„ ๋ชจ๋‘ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜์„ ์ •๋ฆฌํ–ˆ๋‹ค. ๊ฐ ํ”Œ๋žซํผ๋ณ„ ํŠน์ง•๊ณผ ์ฃผ์˜์‚ฌํ•ญ, ๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ๊ตฌํ˜„ ๊ณผ์ •์—์„œ ๋งˆ์ฃผํ•œ ๋ฌธ์ œ์ ๋“ค๊นŒ์ง€ ๊ธฐ๋กํ•ด

2025๋…„ 8์›” 8์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Flutter Android์—์„œ Pretendard Variable ํฐํŠธ ํ๋ฆผ ํ˜„์ƒ ํ•ด๊ฒฐํ•˜๊ธฐ

Flutter ์•ฑ์—์„œ Pretendard Variable ํฐํŠธ๊ฐ€ Android์—์„œ๋งŒ ํ…์ŠคํŠธ๊ฐ€ ํ๋ฆฟํ•˜๊ฒŒ ๋ Œ๋”๋ง๋˜๋Š” ๋ฌธ์ œ

2025๋…„ 8์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Flutter Android ๋ฐฐํฌ ์ค€๋น„์˜ ํ•ต์‹ฌ: key.properties, keystore, ๊ทธ๋ฆฌ๊ณ  ์„œ๋ช…์˜ ๋ชจ๋“  ๊ฒƒ

Flutter ์•ฑ์„ Android๋กœ ๋ฐฐํฌํ•˜๋ ค๊ณ  ํ•˜๋ฉด, ๋ฐ˜๋“œ์‹œ ๊ฑฐ์น˜๋Š” ๋‹จ๊ณ„๊ฐ€ ์žˆ๋‹ค. ๋ฐ”๋กœ key.properties ์„ค์ •๊ณผ keystore๋ฅผ ํ†ตํ•œ ์•ฑ ์„œ๋ช…(Signing) ๊ณผ์ •์ด๋‹ค. ๋งŽ์€ ํŠœํ† ๋ฆฌ์–ผ์ด "๊ทธ๋ƒฅ ์ด๋Œ€๋กœ ๋”ฐ๋ผํ•˜์„ธ์š”"๋ผ๊ณ  ํ•˜์ง€๋งŒ, ๋‚˜๋Š” ์ด๋ฒˆ์— ๋ฐฐํฌํ•˜๋ฉด์„œ ์™œ ์ด

2025๋…„ 8์›” 7์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

์ผ์„ ๋‚˜๋ˆ„๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ, ์‹œ์•ผ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ!

10๋…„ ๋™์•ˆ ๊ฐœ๋ฐœ์ด๋ผ๋Š” ์ผ์„ ํ–ˆ๋‹ค. ๋ˆ„๊ฐ€ ๋ณด๋ฉด ๊ธด ์‹œ๊ฐ„์ผ ์ˆ˜๋„ ์žˆ๊ฒ ์ง€๋งŒ, ๋‚˜๋Š” ๊ทธ ์‹œ๊ฐ„์„ ๋„ˆ๋ฌด ๋‹น์—ฐํ•˜๊ฒŒ ํ†ต๊ณผํ•ด์˜จ ๊ฒƒ ๊ฐ™๋‹ค. ์–ธ์ œ๋ถ€ํ„ด๊ฐ€ ๋ญ”๊ฐ€๋ฅผ ๋งŒ๋“ค๋ฉด์„œ๋„, โ€˜์™œ ์ด๋ ‡๊ฒŒ ํ•˜๋Š” ๊ฑธ๊นŒ?โ€˜ ๋ผ๋Š” ์งˆ๋ฌธ์„ ๋†“์น˜๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค

2025๋…„ 7์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

Flutter๋กœ ์ฒซ ์•ฑ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๐Ÿ’ก

Flutter๋กœ ์•ฑ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€?๋ฐ”๋กœ flutter create ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.์ด ๊ธ€์—์„œ๋Š” ์ด ๋ช…๋ น์–ด์˜ ์›๋ฆฌ์™€ ์˜ต์…˜๋“ค์„ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์ •๋ฆฌํ•ด๋ณธ๋‹ค โœ๏ธ

2025๋…„ 7์›” 16์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท

HTTP ์š”์ฒญ ํ—ค๋”๋กœ ๋””๋ฐ”์ด์Šค ์ •๋ณด ๊ตฌ๋ถ„ํ•˜๊ธฐ

โ€œ์„œ๋ฒ„๋Š” ์–ด๋–ป๊ฒŒ ์š”์ฒญ์ด ์•ฑ์—์„œ ์™”๋Š”์ง€, ์›น์—์„œ ์™”๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ์„๊นŒ?โ€

2025๋…„ 5์›” 22์ผ
ยท
0๊ฐœ์˜ ๋Œ“๊ธ€
ยท