๐Ÿƒ๐Ÿƒ‍โ™‚๏ธ๐Ÿƒ๐Ÿป‍โ™€๏ธ

๐Ÿƒ๐Ÿƒ‍โ™‚๏ธ๐Ÿƒ๐Ÿป‍โ™€๏ธ

  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (66)
    • Network (4)
      • Network ์Šคํ„ฐ๋”” (4)
    • Database (6)
      • DB ์Šคํ„ฐ๋”” (15)
    • CS (12)
      • CS ์Šคํ„ฐ๋”” (12)
    • Backend (16)
      • NestJS (6)
      • Spring (6)
    • ๋ฉด์ ‘ ์ค€๋น„ (6)
      • ๋ฉด์ ‘ ์Šคํ„ฐ๋”” (5)
    • CI, CD (1)
      • Etc (1)
    • ์–ธ์–ด (4)
      • Javascript(Node, TS...) (4)
    • ๊ฐœ๋ฐœ ์ด๋ชจ์ €๋ชจ (2)
  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก
  • Github
RSS ํ”ผ๋“œ
๋กœ๊ทธ์ธ
๋กœ๊ทธ์•„์›ƒ ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ

๐Ÿƒ๐Ÿƒ‍โ™‚๏ธ๐Ÿƒ๐Ÿป‍โ™€๏ธ

์ปจํ…์ธ  ๊ฒ€์ƒ‰

ํƒœ๊ทธ

OS ์šด์˜์ฒด์ œ SQL Spring Nest.js K6 CS MySQL ํ”„๋กœ์„ธ์Šค ๋ฐฑ์—”๋“œ ์ธ๋ฑ์Šค ๋„คํŠธ์›Œํฌ NestJS node.js JPA TypeScript ๋ฉด์ ‘ PostgreSQL db Database

์ตœ๊ทผ๊ธ€

๋Œ“๊ธ€

๊ณต์ง€์‚ฌํ•ญ

์•„์นด์ด๋ธŒ

ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐฉ๋ฒ•๋ก  ๋น„๊ต(Offset vs Cursor)

ํŽ˜์ด์ง€๋„ค์ด์…˜์ด๋ž€? OLTP ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ํŠน์ • ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌ๋œ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ์›น๊ฐœ๋ฐœ์˜ ๊ฐ€์žฅ ํ”ํ•œ ์˜ˆ์‹œ์ธ ๊ฒŒ์‹œํŒ์ด ๊ทธ๋ ‡๋‹ค. ๊ฒŒ์‹œํŒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•œ ํŽ˜์ด์ง€์— ์•ฝ 20๊ฐœ์˜ ๊ฒŒ์‹œ๊ธ€๋“ค์„ ์ตœ์‹ ์ˆœ์œผ๋กœ ๋…ธ์ถœ์‹œํ‚ค๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค์Œ ํŽ˜์ด์ง€๋กœ ๋„˜์–ด๊ฐ€๊ฒŒ ๋˜๋ฉด 21 ~ 40๋ฒˆ์งธ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ทธ์ œ์„œ์•ผ ์กฐํšŒ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋œ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „์ฒด ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ์‚ฌ์šฉ์ž๊ฐ€ ์œ„์น˜ํ•œ ํŽ˜์ด์ง€์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก API ์„ค๊ณ„๊ฐ€ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ด๋ฅผ ํŽ˜์ด์ง€๋„ค์ด์…˜ ๋ฐฉ๋ฒ•๋ก ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํŽ˜์ด์ง€๋„ค์ด์…˜ ์ข…๋ฅ˜ ์ผ๋ฐ˜์ ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํŽ˜์ด์ง€๋„ค์ด์…˜ ๊ธฐ๋ฒ•์—๋Š” Offset ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๋„ค์ด์…˜๊ณผ Cursor(Keyset) ๊ธฐ๋ฐ˜ ํŽ˜์ด์ง€๋„ค์ด์…˜์ด ์กด์žฌํ•œ๋‹ค. Offset ๊ธฐ..

์ž์„ธํžˆ๋ณด๊ธฐ
Buffer Pinning ๊ธฐ๋ฒ• (in Oracle)

์ผ๋ฐ˜์ ์œผ๋กœ Index Scan์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ์šฐ๋Š” ๊ธฐ๋ฒ•๋“ค(Index Range Scan, Index Unique Scan ๋“ฑ)์€ Single Block IO๋ฅผ ํ™œ์šฉํ•œ๋‹ค. (ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋ถ€์กฑํ•˜๋‹ค๋ฉด ์ด์ „ ๊ธ€ ์ฐธ์กฐ -> ํ…Œ์ด๋ธ” ์Šค์บ” ๋ฐฉ์‹์— ๋”ฐ๋ฅธ DB Block IO ์ „๋žต) ๋’ค์— ์„ค๋ช…ํ•˜๊ฒ ์ง€๋งŒ, ์ฝ์–ด์•ผ ํ•  ๋ธ”๋ก์ด ๋ฒ„ํผ์— ์กด์žฌํ•œ๋‹ค๊ณ  ํ•ด๋„ ํ•ด๋‹น ๋ธ”๋ก์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์˜ ํฌ์ธํ„ฐ๋ฅผ ํš๋“ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ๋”ฐ๋ผ์„œ ์ฝ์–ด์•ผ ํ•  ์ธ๋ฑ์Šค ๋ ˆ์ฝ”๋“œ๊ฐ€ ๋งŽ์€ ๊ฒฝ์šฐ์—”, ๊ทธ ์ˆ˜ ๋งŒํผ ๋…ผ๋ฆฌ์  IO๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๊ณ  ๋งค๋ฒˆ ํฌ์ธํ„ฐ๋ฅผ ์ƒˆ๋กญ๊ฒŒ ํš๋“ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ ์ธ๋ฑ์Šค ๋ฆฌํ”„ ๋…ธ๋“œ์—์„œ ์ฝ์–ด๋‚ธ ํ…Œ์ด๋ธ” ROWID๊ฐ€ ๋Œ€๋ถ€๋ถ„ ๋™์ผํ•œ ๋ธ”๋ก์„ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋‹ค๋ฉด? ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ธ๋ฑ์Šค ๋ ˆ์ฝ”๋“œ ์ˆ˜ ๋งŒํผ ํฌ์ธํ„ฐ ํš๋“ ๊ณผ์ •..

์ž์„ธํžˆ๋ณด๊ธฐ
์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋‚ด ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ & ์‹œ๊ฐํ™” ๊ธฐ์ˆ  ์„ ์ •๊ธฐ (with k6, nGrinder, Grafana)

ํ˜„์žฌ ์ง€์ธ ๋ถ„๋“ค๊ณผ ํ‹ฐ์ผ€ํŒ… ์‚ฌ์ดํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. GitHub - Tiketeer/Tiketeer-BE Contribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub. github.com ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”์ธ ์ฃผ์ œ๋Š” ๋ฐ”๋กœ '๋™์‹œ์„ฑ ์ด์Šˆ ํ•ธ๋“ค๋ง'์ธ๋ฐ, ์ด๋ฅผ ์œ„ํ•ด ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๊ณ„ํš์ด ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ํˆด ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ์ง€ ๊ณ ๋ฏผํ•œ ๊ณผ์ •๊ณผ ์ตœ์ข…์ ์œผ๋กœ ์„ ํƒํ•˜๊ฒŒ ๋œ ํˆด์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ…Œ์ŠคํŒ… ํˆด ์„ ์ • ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ ๋จผ์ € ํ…Œ์ŠคํŒ… ํˆด ์„ ์ • ์‹œ ๊ณ ๋ คํ•œ ์‚ฌํ•ญ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ ๊ฐ€๋Šฅ์„ฑ ์„ฑ๋Šฅ (์ถฉ๋ถ„ํ•œ ๋ถ€ํ•˜๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€) Docker(Com..

์ž์„ธํžˆ๋ณด๊ธฐ

  • ๊ฐœ๋ฐœ์˜ ์‹œ๊ณต๊ฐ„ ์ œ์•ฝ์ด ์•ฝํ•ด์ง€๊ณ  ์žˆ๋‹ค. (feat. ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ)

    ์š”์ฆ˜ ์ €๋Š” ์‚ฌ์ด๋“œ๋กœ ํŠธ๋ ˆ์ด๋”ฉ ๋ด‡์„ ๋งŒ๋“ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.๊ฒ‰์œผ๋กœ ๋ณด๋ฉด ์ž๋™ ๋งค๋งค ํ”„๋กœ์ ํŠธ ํ•˜๋‚˜๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์ผ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. LLM ์—์ด์ „ํŠธ๊ฐ€ ๋ถ™์–ด ์žˆ๊ณ , OpenClaw๋ฅผ ํ†ตํ•ด ์ž‘์—…์„ ์ด์–ด๊ฐ€๊ณ  ์žˆ์œผ๋ฉฐ, ๋ฌธ์„œ์™€ ์ƒํƒœ ํŒŒ์ผ์ด ๊ฝค ๋งŽ์€ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค.๊ทธ๋Ÿฐ๋ฐ ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐ€์žฅ ํฌ๊ฒŒ ๋А๋‚€ ๋ณ€ํ™”๋Š”, ๋‹จ์ˆœํžˆ ์—์ด์ „ํŠธ๋ฅผ ๋ถ™์—ฌ์„œ ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ๋นจ๋ผ์กŒ๋‹ค๋Š” ์ˆ˜์ค€์˜ ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค.์˜คํžˆ๋ ค ๋” ๊ทผ๋ณธ์ ์ธ ๊ฐ๊ฐ์— ๊ฐ€๊นŒ์› ์Šต๋‹ˆ๋‹ค.์ €๋Š” ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉด์„œ, ๊ฐœ๋ฐœ์„ ์›๋ž˜ ์•„์ฃผ ๊ฐ•ํ•˜๊ฒŒ ๋ฌถ๊ณ  ์žˆ๋˜ ๋‘ ๊ฐ€์ง€ ์ œ์•ฝ์ด ์‹ค์ œ๋กœ ์•ฝํ•ด์ง€๋Š” ๊ฒฝํ—˜์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.๊ณต๊ฐ„์˜ ์ œ์•ฝ์‹œ๊ฐ„์˜ ์ œ์•ฝ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ณ€ํ™”๋Š” ์ƒ๊ฐ๋ณด๋‹ค ๋‹จ์ˆœํ•œ ์›๋ฆฌ์—์„œ ๋‚˜์™”์Šต๋‹ˆ๋‹ค.๋ฌธ์„œ๋ฅผ ๋ ˆํฌ ์•ˆ์— ๋ฌด๊ฒ๊ฒŒ ๋‘๋Š” ๊ฒƒ์‹คํ–‰ ์ƒํƒœ์™€ ํŒ๋‹จ ๊ทผ๊ฑฐ๋ฅผ ํŒŒ์ผ๋กœ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์—์ด์ „ํŠธ๊ฐ€ ์ฑ„ํŒ… ๋Œ€ํ™”๋ณด๋‹ค ์ €์žฅ์†Œ๋ฅผ ์ฝ๊ณ  ์›€์ง..

    2026.03.23 21:57
  • Conductor์™€ Git Worktree๋กœ ๊ตฌ์ถ•ํ•œ ๋ณ‘๋ ฌ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

    ์„œ๋ก ์ง€๊ธˆ ์ œ ์ปดํ“จํ„ฐ์—์„œ๋Š” 12๊ฐœ์˜ AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ๊ฐ€ ๋™์‹œ์— ์ž‘์—… ์ค‘์ž…๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ํด๋ผ์šฐ๋“œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„, ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” ๋ฉ€ํ‹ฐํ…Œ๋„Œ์‹œ ๊ตฌํ˜„์„, ๋˜ ๋‹ค๋ฅธ ํ•˜๋‚˜๋Š” CSV ํŒŒ์‹ฑ ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ์—์„œ, ์„œ๋กœ ์ถฉ๋Œ ์—†์ด, ์™„์ „ํžˆ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ์—์„œ ๋ณ‘๋ ฌ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ ๊ฐ€๋Šฅํ• ๊นŒ์š”? ๋‹ต์€ Git Worktree๋ผ๋Š” Git์˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ๊ณผ, ์ด๋ฅผ ํ™œ์šฉํ•˜๋Š” Conductor๋ผ๋Š” ๋„๊ตฌ์— ์žˆ์Šต๋‹ˆ๋‹ค.์ด ๊ธ€์—์„œ๋Š” Conductor๊ฐ€ ๋ฌด์—‡์ธ์ง€, ๊ทธ ๊ธฐ๋ฐ˜์ด ๋˜๋Š” Git Worktree๋Š” ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€, ๊ทธ๋ฆฌ๊ณ  ์ œ๊ฐ€ ์‹ค์ „์—์„œ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๊ณต์œ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.1. Conductor๋ž€ํ•ต์‹ฌ ๊ฐœ๋…Conductor๋Š” Melty Labs(YC)๊ฐ€ ๋งŒ๋“  Mac ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ž…๋‹ˆ๋‹ค. ..

    2026.02.07 15:12
  • TypeORM ํŒจํ‚ค์ง€ ๋ชฝํ‚คํŒจ์นญ์„ ํ†ตํ•œ ์ปค๋„ฅ์…˜ ๋ˆ„์ˆ˜ ๋ชจ๋‹ˆํ„ฐ๋ง ๊ตฌ์ถ•

    ์„œ๋ฒ„ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•  ๋•Œ ์ปค๋„ฅ์…˜ ๋ˆ„์ˆ˜ ๊ด€๋ จํ•ด์„œ ์ด์Šˆ๊ฐ€ ์žˆ์—ˆ๋˜ ์ ์ด ์žˆ๋‹ค.TypeORM์—์„œ ํŠธ๋žœ์žญ์…˜์„ ๋‹ค๋ฃจ๋Š” ๋ฐฉ์‹ ์ค‘์—๋Š” ์ง์ ‘ startTransaction, commitTransaction, rollbackTransaction, release ๋“ฑ์„ ํ˜ธ์ถœํ•˜๊ฒŒ๋” ํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ๊ณ  ์ด ๊ฒฝ์šฐ ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ค์ˆ˜๋กœ ํŠน์ • ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๊ณง๋ฐ”๋กœ ๋ฌธ์ œ๊ฐ€ ๋œ๋‹ค.์šฐ๋ฆฌ์˜ ๊ฒฝ์šฐ์—” QueryRunner์˜ release ํ•จ์ˆ˜๋ฅผ ๋ˆ„๋ฝํ•œ ๋ฌธ์ œ์˜€๋Š”๋ฐ, ๋ฌธ์ œ๊ฐ€ ๋˜๋˜ ๋ถ€๋ถ„์€ ๋ฐ”๋กœ ํ•ด๊ฒฐํ–ˆ์ง€๋งŒ ์„œ๋น„์Šค ์˜ํ–ฅ๋„๊ฐ€ ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ ๋ฏธ๋ฆฌ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ์ผ์ด์—ˆ๋‹ค.์žฌ๋ฐœ ๋ฐฉ์ง€๋ฅผ ํ•˜๋Š” ๋ฒ•์€ ์–ด๋ ต์ง€ ์•Š๋‹ค.LLM ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ”Œ๋กœ์šฐ์—์„œ ๋ฌธ์ œ๊ฐ€ ๋˜๋Š” ํ•ด๋‹น ํŒจํ„ด์— ๋Œ€ํ•œ ๋ช…์‹œ๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. (release ๋ˆ„๋ฝ)์•ž์œผ๋กœ๋Š” quer..

    2025.12.02 09:34
  • ๋ฌด์ค‘๋‹จ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ Mysql Online DDL ๊ธฐ์ˆ 

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

    2025.03.16 15:10
  • AWS SQS๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ๋„ŒํŠธ ๋ณ„ ๋น„๋™๊ธฐ ์ž‘์—… ์ค„์„ธ์šฐ๊ธฐ

    ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์—์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.์„œ๋น„์Šค ๋‚ด์—๋Š” ์ˆ˜ ๋งŽ์€ ํ…Œ๋„ŒํŠธ๊ฐ€ ์กด์žฌ๊ฐ ํ…Œ๋„ŒํŠธ ๋‚ด์—์„œ๋Š” ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ์ด๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์›Œ์ปค ๋กœ์ง์ด ํ•„์š” (ํ•œ๋ฒˆ ์‹คํ–‰์— 500ms ~ 5s, ํ…Œ๋„ŒํŠธ ๋‚ด ๋ฐ์ดํ„ฐ ์–‘์— ๋น„๋ก€)์ด๋ฒคํŠธ ๋ฐœ์ƒ ๋นˆ๋„๋Š” ๋†’์ง€ ์•Š์Œ์ด ๋•Œ ์ด๋“ค ์›Œ์ปค ๋กœ์ง์€ ํ…Œ๋„ŒํŠธ ๋ณ„๋กœ ์˜ค๋กœ์ง€ ํ•˜๋‚˜์”ฉ๋งŒ ๋™์ž‘ํ•ด์•ผ ํ•จ. (ํ…Œ๋„ŒํŠธ ๋‚ด ๋™์‹œ์„ฑ X)ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์ด ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ๋‹ค๋ค„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์ตœ์ดˆ ๊ตฌํ˜„์ดˆ๊ธฐ์—๋Š” ์ด ์š”๊ตฌ์‚ฌํ•ญ์„ ๋งŒ์กฑ์‹œํ‚ค๊ธฐ ์œ„ํ•ด, ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉํ–ฅ์„ฑ์œผ๋กœ ์ž‘์—…์„ ์ง„ํ–‰ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ตฌ์กฐ์— ๋Œ€ํ•œ ์„ค๋ช…์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์œ ์ €์˜ ํŠน์ • ํ–‰๋™์— ๋”ฐ๋ผ ์ด๋ฒคํŠธ๋ฅผ ๋ฐœํ–‰ํ•˜์—ฌ SQS๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.์ „๋‹ฌ๋œ ์ด๋ฒคํŠธ๋Š” ์‚ฌ์ „์— ๋“ฑ๋ก๋œ AWS ๋žŒ๋‹ค..

    2025.02.02 16:47
  • ๋ ˆ์ฝ”๋“œ ๋žœ๋ค ์กฐํšŒ๋ฅผ ํ†ตํ•œ ๋‚™๊ด€์  ๋ฝ ์„ฑ๋Šฅ ๊ฐœ์„ ๊ธฐ (with ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ)

    ์„œ๋ก ย TiketeerTiketeer has 5 repositories available. Follow their code on GitHub.github.comํ˜„์žฌ ์ €๋Š” ์ง€์ธ 3๋ถ„๊ณผ ํ•จ๊ป˜ ๊ฐ„๋‹จํ•œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ธ๋ฐ, ๊ทธ ๊ณณ์—์„œ ์ง„ํ–‰ ์ค‘์ธ โ€˜ํ‹ฐ์ผ€ํŒ… ์„œ๋น„์Šคโ€™ ํ”„๋กœ์ ํŠธ์—์„œ ํ•œ์ˆœ๊ฐ„ ๋ถ€ํ•˜๊ฐ€ ๋ชฐ๋ฆฌ๋Š” ํ‹ฐ์ผ€ํŒ… ํ™˜๊ฒฝ์—์„œ๋„ ๊ตฌ๋งค์˜ ์ •ํ•ฉ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์„ฑ๋Šฅ์ ์ธ ๊ฐœ์„ ๋„ ์ด๋ฃจ์–ด๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ ๋…ผ์˜๋“ค์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์„ฑ๋Šฅ ๊ฐœ์„ ์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ํ‹ฐ์ผ“ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ฝ์–ด์˜ค๋Š” ๋ฐฉ์‹์„ ๊ฐœ์„ ํ•˜๊ณ  ๊ธฐ์กด ๋ฐฉ์‹๊ณผ ์„ฑ๋Šฅ์ ์œผ๋กœ ๋น„๊ตํ•œ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๊ณ , ์ตœ์ข…์ ์œผ๋กœ๋Š” ์ด๋ฅผ ํ†ตํ•ด ์ €ํฌ ์„œ๋น„์Šค์— ๋ฏธ์นœ ์˜ํ–ฅ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.ย ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ๋ณธ๊ฒฉ์ ์ธ ์„ฑ๋Šฅ ๋น„๊ต์— ์•ž์„œ ํ˜„์žฌ ํ”„๋กœ..

    2024.05.02 15:48
  • [Spring] ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ํŒจํ„ด์„ ํ†ตํ•œ ๋™์‹œ์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋™์‹œ์„ฑ ๊ด€๋ จ ๋กœ์ง ๊ฐ„์˜ ๊ด€์‹ฌ์‚ฌ ๋ถ„๋ฆฌํ•˜๊ธฐ

    ๊ฐœ์š”ํ˜„์žฌ ์ง€์ธ 3๋ถ„๊ณผ ํ•จ๊ป˜ ๋™์‹œ์„ฑ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ์Œ“๊ธฐ ์œ„ํ•ด ํ‹ฐ์ผ€ํŒ… ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.ย GitHub - Tiketeer/Tiketeer-BEContribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub.github.comํ•ด๋‹น ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ•˜๋ฉด์„œ ๋‹ฌ์„ฑํ•˜๊ณ ์ž ํ–ˆ๋˜ ํ•ต์‹ฌ ๋ชฉํ‘œ ์ค‘ ํ•˜๋‚˜๋Š”, ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ์ง์ ‘ ๊ฒช์–ด๋ณด๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์— ๋Œ€ํ•œ ํ•™์Šต๊ณผ ์ด๋ฅผ ์‹ค์ œ๋กœ ํ•ด๊ฒฐํ•ด๋ณธ ๊ฒฝํ—˜์„ ๊ฐ–๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.์ €ํฌ ํ”„๋กœ์ ํŠธ ๋‚ด์—์„œ ๋™์‹œ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ง€์ ์€ ๋ฐ”๋กœ ํ‹ฐ์ผ€ํŒ…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋กœ์ง์ž…๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ƒ์—๋Š” ํ•œ์ •๋œ ์ˆ˜์˜ ํ‹ฐ์ผ“์ด ์กด์žฌํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด์— ๋Œ€ํ•ด ํ‹ฐ์ผ“๋ณด๋‹ค ๋” ๋งŽ์€ ๊ณ ๊ฐ์ด ๋™์‹œ๋‹ค๋ฐœ์ ..

    2024.04.22 18:57
  • [Spring] ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ํ•ด๋ด„์งํ•œ Hibernate Logging ์˜ต์…˜ ์ •๋ฆฌ

    ํ˜„์žฌ ์ง€์ธ 3๋ถ„๊ณผ ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋‹ค. GitHub - Tiketeer/Tiketeer-BE Contribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub. github.com ํ”„๋กœ์ ํŠธ ์ดˆ์ฐฝ๊ธฐ ์„ธํŒ… ์‹œ ํ•˜์ด๋ฒ„๋„ค์ดํŠธ ๋กœ๊ทธ ์˜ต์…˜์„ ์•„๋ž˜์ฒ˜๋Ÿผ ๊ฐ„๋‹จํ•˜๊ฒŒ๋งŒ ์คฌ์—ˆ๋Š”๋ฐ, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ํ•จ์— ์žˆ์–ด ๋””๋ฒ„๊น… ๋ชฉ์ ์œผ๋กœ DB ์ธก ๋กœ๊ทธ๋ฅผ ๊นŒ๋’ค์ง‘์„ ๋•Œ ๋‚˜๋‚˜ ํŒ€์›๋“ค์˜ ๋กœ๊ทธ ์ •๋ณด์— ๋Œ€ํ•œ ๋งŒ์กฑ๋„๊ฐ€ ๊ทธ๋ฆฌ ๋†’์ง€ ์•Š์•˜๋‹ค. (์ •์ž‘ ํ•„์š”ํ•œ ๋กœ๊ทธ๊ฐ€ ์—†๋‹ค, ๋กœ๊ทธ๋“ค์ด ๋ˆˆ์— ์•ˆ๋“ค์–ด์˜จ๋‹ค, ๋กœ๊ทธ๋“ค์ด ๋„ˆ๋ฌด ๋งŽ์ด ์ฐํžŒ๋‹ค... ๋“ฑ) # ๊ธฐ์กด application.yml spring.jpa.show-sql: true spring.jpa.properties.h..

    2024.04.12 18:51
  • ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด k6 + Prometheus + Grafana ์ž๋™ ํ™˜๊ฒฝ ๊ตฌ์„ฑํ•˜๊ธฐ (with Docker-compose)

    k6๋ฅผ ํ†ตํ•˜๋ฉด ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ๋ฅผ js ๊ธฐ๋ฐ˜ ์Šคํฌ๋ฆฝํŠธ๋กœ ์†์‰ฝ๊ฒŒ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‹ค๋งŒ k6๋Š” ๋‹จ์ˆœ ํ…Œ์ŠคํŠธ ๋งŒ์„ ์ˆ˜ํ–‰ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ์ถ”๊ฐ€์ ์ธ ์‹œ๊ฐํ™” ๊ตฌ์„ฑ์„ ์ง„ํ–‰ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๊ตฌ๊ธ€๋ง์„ ํ•ด๋ณด๋ฉด, ๋Œ€๋ถ€๋ถ„์˜ ๋ ˆํผ๋Ÿฐ์Šค์—์„œ ์ˆ˜๋™์œผ๋กœ ์ด๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค. (Grafana UI์— ์ ‘์†ํ•ด์„œ Datasource, Dashboard๋ฅผ ์ง์ ‘ ๋“ฑ๋กํ•˜๋Š” ์‹) ๋”ฐ๋ผ์„œ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ชจ๋‘๊ฐ€ ๋ฐฉ๋ฒ•์„ ์ˆ™์ง€ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ธ๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ ์ด๋Š” ๋น„ํšจ์œจ์ ์ด๋ผ ์ƒ๊ฐํ•˜์—ฌ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ + ์‹œ๊ฐํ™”๋ฅผ ํ•œ๋ฒˆ์— ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜๊ณ ์ž ํ•œ๋‹ค. ๊ฐœ์ธ์ ์œผ๋กœ ๋กœ์ปฌ PC์— ์ด๊ฒƒ์ €๊ฒƒ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์„ ์„ ํ˜ธํ•˜์ง€ ์•Š์•„์„œ, ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ docker-compose ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•˜์˜€๋‹ค. Docker-compose.yml vers..

    2024.04.02 16:43
  • ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ ๋‚ด ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ & ์‹œ๊ฐํ™” ๊ธฐ์ˆ  ์„ ์ •๊ธฐ (with k6, nGrinder, Grafana)

    ํ˜„์žฌ ์ง€์ธ ๋ถ„๋“ค๊ณผ ํ‹ฐ์ผ€ํŒ… ์‚ฌ์ดํŠธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ด๋‹ค. GitHub - Tiketeer/Tiketeer-BE Contribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub. github.com ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์˜ ๋ฉ”์ธ ์ฃผ์ œ๋Š” ๋ฐ”๋กœ '๋™์‹œ์„ฑ ์ด์Šˆ ํ•ธ๋“ค๋ง'์ธ๋ฐ, ์ด๋ฅผ ์œ„ํ•ด ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๊ณ„ํš์ด ์žˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด, ํ•ด๋‹น ๊ธ€์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋ถ€ํ•˜ ํ…Œ์ŠคํŠธ ํˆด ์ค‘ ์–ด๋–ค ๊ฒƒ์„ ์„ ํƒํ• ์ง€ ๊ณ ๋ฏผํ•œ ๊ณผ์ •๊ณผ ์ตœ์ข…์ ์œผ๋กœ ์„ ํƒํ•˜๊ฒŒ ๋œ ํˆด์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•œ๋‹ค. ํ…Œ์ŠคํŒ… ํˆด ์„ ์ • ์‹œ ๊ณ ๋ ค ์‚ฌํ•ญ ๋จผ์ € ํ…Œ์ŠคํŒ… ํˆด ์„ ์ • ์‹œ ๊ณ ๋ คํ•œ ์‚ฌํ•ญ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. ๊ธฐ๋ณธ์ ์ธ ๋ถ€ํ•˜ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž‘์„ฑ ๊ฐ€๋Šฅ์„ฑ ์„ฑ๋Šฅ (์ถฉ๋ถ„ํ•œ ๋ถ€ํ•˜๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋Š”๊ฐ€) Docker(Com..

    2024.04.02 01:33
  • [Spring Security] OncePerRequestFilter.shouldNotFilter ๋ฉ”์„œ๋“œ ํšจ์œจ์ ์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•˜๊ธฐ

    ์ด๋‹ฌ ์ดˆ๋ถ€ํ„ฐ ์ง€์ธ 3๋ถ„๊ณผ ํ•จ๊ป˜ ์Šคํ”„๋ง ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. GitHub - Tiketeer/Tiketeer-BE Contribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub. github.com ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ๋Š” ์—”๋“œํฌ์ธํŠธ ๋ณดํ˜ธ ์ž‘์—…์„ ์œ„ํ•ด Spring Security์™€ JWT๋ฅผ ์ด์šฉ ์ค‘์ธ๋ฐ, ์ด๋ฅผ ์œ„ํ•ด Spring Security์˜ OncePerRequestFilter๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” JwtAuthFilter๋ฅผ ์•„๋ž˜์ฒ˜๋Ÿผ ๋”ฐ๋กœ ์ž‘์„ฑํ•ด์ค€ ๋’ค ํ•„ํ„ฐ ์ฒด์ธ์— ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค. @Component public class JwtAuthenticationFilter extends OncePerRequestFilter { @Overr..

    2024.03.23 23:00
  • Database PK ์ƒ์„ฑ ์ „๋žต (without DB, Mysql)

    ๊ฐ€์žฅ ์†์‰ฝ๊ฒŒ ํ…Œ์ด๋ธ”์—์„œ ์‚ฌ์šฉํ•  PK๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•  ๋•Œ PK๊ฐ€ ๋  ์ˆ˜์น˜ ์นผ๋Ÿผ์— AUTO_INCREMENT(MySql ๊ธฐ์ค€)๋ฅผ ๊ฑธ์–ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ PK ์นผ๋Ÿผ์„ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†์œผ๋ฉฐ DB๊ฐ€ ์•Œ์•„์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ์ฆ๊ฐ€์‹œํ‚จ ๊ฐ’์ด ๋ ˆ์ฝ”๋“œ์— ํฌํ•จ๋˜๊ฒŒ ๋œ๋‹ค. ์ธ๋ฑ์Šค๋Š” ๊ฒฐ๊ตญ DB์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋…์ด๊ณ , ๊ทธ ๊ฐ’์„ DB๊ฐ€ ์ง์ ‘ ์ƒ์„ฑํ•ด์ฃผ์–ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๋‹ค๋ฉด ๊ทธ๊ฑธ๋กœ ๋œ ๊ฒƒ ์•„๋‹Œ๊ฐ€? ๋ผ๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์—๋„ ๊ฒฐ๊ตญ ํŠน์ • ๊ด€์ ์—์„œ๋Š” ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ์ด ํ•œ๊ณ„๋“ค์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ณ  ์ด๋ฅผ ๊ทน๋ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋˜๋‹ค๋ฅธ ๋ฐฉ์‹๋“ค์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๊ฒ ๋‹ค. DB๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•˜๋Š” PK์˜ ๋ฌธ์ œ์  1. ๋ถ„์‚ฐ์ฒ˜๋ฆฌ ํ™˜๊ฒฝ์—์„œ PK ๊ฐ’ ์ฑ„๋ฒˆ์˜ ์–ด๋ ค์›€ ์ตœ๊ทผ์—๋Š” ๋Œ€๊ทœ๋ชจ..

    2024.03.17 21:49
ํ‹ฐ์Šคํ† ๋ฆฌ
ยฉ 2018 TISTORY. All rights reserved.

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”