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

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

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

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

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

ํƒœ๊ทธ

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

์ตœ๊ทผ๊ธ€

๋Œ“๊ธ€

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

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

MySQL(4)

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

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

    2025.03.16
  • MVCC in Mysql(with ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€)

    ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” MVCC์˜ ๊ฐœ๋…๊ณผ ์–ด๋–ป๊ฒŒ ๋™์ž‘ํ•˜๋Š” ๊ฒƒ์ธ์ง€, ๊ทธ๋ฆฌ๊ณ  ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์„ ๊ตฌํ˜„ํ•  ๋•Œ ์ด๋ฅผ ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ•˜๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ค‘ ํ•˜๋‚˜์ธ Mysql์„ ํ†ตํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ๋“ค์–ด๊ฐ€๊ธฐ ์•ž์„œ ์ด๋ฒˆ ๊ธ€์—์„œ ์ค‘์ ์ ์œผ๋กœ ๋‹ค๋ฃจ๊ฒŒ ๋  MVCC ์ฃผ์ œ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, ๋จผ์ € ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ์ง€์‹์ด ํ•„์š”ํ•˜๋‹ค. ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์—์„œ ํŠธ๋žœ์žญ์…˜๋“ค์ด ๋™์‹œ๋‹ค๋ฐœ์ ์œผ๋กœ ์‹คํ–‰๋  ๋•Œ ํ•ด๋‹น ํŠธ๋žœ์žญ์…˜์˜ ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์— ์–ผ๋งˆ๋‚˜ ์˜ํ–ฅ์„ ๋ฐ›๊ฒŒํ• ์ง€์— ๋Œ€ํ•œ ์ˆ˜์ค€์„ ์˜๋ฏธํ•œ๋‹ค. READ UNCOMMITED, READ COMMITED, REPEATABLE READ, SERIALIZABLE์˜ ์ด 4๊ฐ€์ง€ ์ˆ˜์ค€์œผ๋กœ ๊ตฌ์„ฑ๋˜๊ณ  ์–ธ๊ธ‰ํ•œ ์ˆœ์„œ์˜ ์—ญ์ˆœ์œผ๋กœ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๋†’์•„์ง„๋‹ค. (READ ..

    2024.02.25
  • Exists ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด์„œ (SQL)

    ๊ฐœ์ธ์ ์œผ๋กœ SQL์˜ Exists ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ์ดํ•ด๋„๊ฐ€ ๋‚ฎ์•˜๊ณ  ์ด๋กœ ์ธํ•ด ์‹ค์ œ๋กœ ํ™œ์šฉ์„ ๊ฑฐ์˜ ๋ชปํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, DB ์Šคํ„ฐ๋””๋ฅผ ์œ„ํ•ด ์ฑ…์„ ์ฝ๋Š” ๋„์ค‘ ํ•ด๋‹น ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด ๋“ฑ์žฅํ•ด์„œ ์ด ๊ธฐํšŒ์— ์ด๋ฅผ ํ™•์‹คํžˆ ์ •๋ฆฌํ•˜๊ณ  ๋„˜์–ด๊ฐ€๊ณ ์ž ํ•œ๋‹ค. Exists ์—ฐ์‚ฐ์ž๋ž€? Exists ์—ฐ์‚ฐ์ž๋Š” ์—ฐ์‚ฐ์ž ์ดํ›„์— ๋“ฑ์žฅํ•˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•  ๊ฒฝ์šฐ True, ๊ทธ๋ ‡์ง€ ์•Š์„ ๊ฒฝ์šฐ False๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ง๋กœ๋งŒ ์„ค๋ช…ํ•˜๋ฉด ์ดํ•ด๊ฐ€ ์–ด๋ ค์šฐ๋‹ˆ ์‹ค์ œ ์˜ˆ์‹œ๋ฅผ ๋“ค์–ด๋ณด๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. SELECT post.id, post.name FROM post WHERE post.user_id = 10 AND EXISTS ( SELECT 1 FROM comment WHERE comment.post_id = post.id AND..

    2024.02.12
  • Slow Query ํ™•์ธ๋ฒ• (in Mysql, Postgresql)

    ๋А๋ฆฐ ์ฟผ๋ฆฌ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ์šฉ์ž์˜ ์ž…์žฅ์—์„œ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ DB ๋ ˆ๋ฒจ์˜ ํšจ์œจ์  ์ž์›๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋„ ๊ผญ ํ•„์š”ํ•œ ์ผ์ด๋‹ค. ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ์‹œ๊ฐ„๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์„๊นŒ? ์ง์ ‘ ์ผ์ผ์ด ์‹คํ–‰์‹œ์ผœ๋ณด๋ฉด์„œ ์‹œ๊ฐ„์„ ์žฌ์•ผ ํ•˜๋‚˜? ๋‹คํ–‰ํžˆ๋„ ์ผ๋ถ€ DB๋“ค์€ ๊ทธ๋“ค ์„œ๋ฒ„์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ์ฟผ๋ฆฌ ์ค‘ ์„œ๋ฒ„์— ์•…์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ๋Š” Slow Query(์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ)๋“ค์„ ๋”ฐ๋กœ ์ €์žฅํ•ด๋‘๊ณ , ์ด๋ฅผ ๊ฐœ๋ฐœ์ž๋“ค์ด ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๊ณ  ์žˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ์˜ ํ™•์ธ์ด ์šฉ์ดํ•œ ๋‘ DB, Mysql๊ณผ Postgresql์—์„œ ์ด๋ฅผ ์„ค์ •ํ•˜๊ณ  ํ™•์ธํ•˜๋Š” ๋ฒ•์„ ๋‹ค๋ฃจ๋ ค๊ณ  ํ•œ๋‹ค. Mysql ์„ค์ •๋ฒ• Mysql์—์„œ๋Š” ์•„๋ž˜ ๋‚ด์šฉ์„ my.cnf์— ์ถ”๊ฐ€ํ•˜๋ฉด 1์ดˆ ์ด์ƒ ๊ฑธ๋ฆฌ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์Šฌ๋กœ์šฐ ์ฟผ๋ฆฌ๋กœ ์ƒ์ •ํ•˜๊ณ  ์ด์— ๋Œ€ํ•œ ์ˆ˜์ง‘์ด ์‹œ์ž‘๋œ๋‹ค. ๋ฌผ๋ก  ์„ค์ • ํŒŒ์ผ์„ ์ˆ˜์ •ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ..

    2023.12.13
์ด์ „
1
๋‹ค์Œ
ํ‹ฐ์Šคํ† ๋ฆฌ
ยฉ 2018 TISTORY. All rights reserved.

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