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

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

  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (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 ํ”ผ๋“œ
๋กœ๊ทธ์ธ
๋กœ๊ทธ์•„์›ƒ ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ

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

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

ํƒœ๊ทธ

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

์ตœ๊ทผ๊ธ€

๋Œ“๊ธ€

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

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

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ(64)

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

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

    2024.02.17
  • 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
  • ๋น„๊ด€์  ๋ฝ์„ ํ†ตํ•œ ๊ณ„์ขŒ์ด์ฒด ๋™์‹œ์„ฑ ํ•ธ๋“ค๋ง (feat. @Transactional ํ•™์Šต ํ…Œ์ŠคํŠธ)

    JPA์˜ @Transactional ์–ด๋…ธํ…Œ์ด์…˜์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ์˜ฌ๋ฆด ๊ฒธ, ์•„๋ž˜ ๋ ˆํฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•™์Šต ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค. GitHub - One-armed-boy/transactional_test: ํ•™์Šต ํ…Œ์ŠคํŠธ of @Transactional ํ•™์Šต ํ…Œ์ŠคํŠธ of @Transactional . Contribute to One-armed-boy/transactional_test development by creating an account on GitHub. github.com ํ…Œ์ŠคํŠธ ์˜ˆ์ œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋™์‹œ์„ฑ ์˜ˆ์ œ์— ๋งŽ์ด ๋“ฑ์žฅํ•˜๋Š” ๊ณ„์ขŒ ์ด์ฒด ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. ์•„๋ž˜๋Š” ์ด๋ฅผ ์œ„ํ•œ ์‹œํ€€์Šค๋ฅผ ๋ง๋กœ์จ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ด๋‹ค. ์‚ฌ์šฉ์ž A๋ฅผ ์กฐํšŒ ์‚ฌ์šฉ์ž B๋ฅผ ์กฐํšŒ ์‚ฌ์šฉ์ž A์—๊ฒŒ ์†ก๊ธˆ ์š”์ฒญ์ด ๋“ค์–ด์˜จ X ๋งŒํผ์˜ ์ž”์•ก..

    2024.02.04
  • ์ฒ˜์Œ ๋ณธ @Transactional

    ์ „ ์ง์žฅ์—์„œ NestJS - TypeOrm์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•ด์™”๊ณ , ํ‡ด์‚ฌ ํ›„ Spring์— ํ•œ๋ฒˆ ์ž…๋ฌธํ•ด๋ณด์ž๋Š” ์ƒ๊ฐ์œผ๋กœ ๊ฐ„๋‹จํ•œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. GitHub - One-armed-boy/spring_stream_video: ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„ with Spring boot ๋น„๋””์˜ค ์ŠคํŠธ๋ฆฌ๋ฐ ์„œ๋ฒ„ with Spring boot. Contribute to One-armed-boy/spring_stream_video development by creating an account on GitHub. github.com ์ฒ˜์Œ ๊ตฌ์ƒํ–ˆ๋˜ ์•„์ฃผ ๊ธฐ์ดˆ์ ์ธ ๊ธฐ๋Šฅ๋งŒ ๊ตฌํ˜„ํ•œ ๋’ค ์ฃผ๋ณ€์— ๊ณ„์‹  ์Šคํ”„๋ง ๊ฐœ๋ฐœ์ž ๋ถ„๊ป˜ ๊ฐ„๋‹จํžˆ ์ฝ”๋“œ ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›์•˜๋Š”๋ฐ, @Transactional ์–ด๋…ธํ…Œ์ด์…˜์˜ ํ™œ์šฉ์— ๋Œ€ํ•ด ๋ฐ›์€ ๋ฆฌ๋ทฐ๊ฐ€ ํŠนํžˆ ๊ธฐ์–ต์ด ..

    2024.01.28
  • ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ์˜คํ•ด

    ๊ฐœ์ธ์ ์ธ ๊ฒฝํ—˜ ์ƒ, ์ทจ์—…์„ ์ค€๋น„ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์ง€๋ง์ƒ ๋ถ„๋“ค์ด๋‚˜ ํ˜น์€ ์‹ ์ž… ๋‚ด์ง€ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž ๋ถ„๋“ค ์‚ฌ์ด์—๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ์˜ ๊ฒ€์ƒ‰ ์„ฑ๋Šฅ์ด ๋“œ๋ผ๋งˆํ‹ฑํ•˜๊ฒŒ ๋‚˜๋น ์งˆ ๊ฒƒ์ด๋ผ๋Š” ํ†ต๋…์ด ์กด์žฌํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋‚˜ ๋˜ํ•œ ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ด์™”์—ˆ๋Š”๋ฐ ์ด๊ฒŒ ์ •๋ง ๋งž๋Š”์ง€, ์•„๋‹ˆ๋ฉด ์˜คํ•ด์ธ ๊ฒƒ์ธ์ง€ ํ™•์ธํ•ด๋ณด๋ คํ•œ๋‹ค. ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ž€? ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ž€ ๋ฉ”์ธ ์ฟผ๋ฆฌ๊ฐ€ ์กด์žฌํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋ฉ”์ธ ์ฟผ๋ฆฌ ๋‚ด์— ํฌํ•จ๋œ ๋˜ ๋‹ค๋ฅธ ์ฟผ๋ฆฌ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ์–ด๋–ค ์ ˆ์— ํฌํ•จ๋œ ์ฟผ๋ฆฌ์ธ์ง€์— ๋”ฐ๋ผ ์Šค์นผ๋ผ ์„œ๋ธŒ ์ฟผ๋ฆฌ(SELECT ๋ฌธ), ์ธ๋ผ์ธ ๋ทฐ(FROM ์ ˆ), ์„œ๋ธŒ ์ฟผ๋ฆฌ(WHERE ์ ˆ, ๊ทธ๋ƒฅ ์„œ๋ธŒ ์ฟผ๋ฆฌ๋ผ๊ณ  ํ•˜๋Š” ๋“ฏ...) ๋“ฑ์˜ ๋ช…์นญ์œผ๋กœ ๋ถˆ๋ฆฐ๋‹ค. ์•„๋ž˜๋Š” ์„œ๋ธŒ ์ฟผ๋ฆฌ์˜ ์˜ˆ์‹œ์ด๋‹ค. -- ์Šค์นผ๋ผ ์„œ๋ธŒ ์ฟผ๋ฆฌ SELECT p.id AS id, (SELECT email FROM accou..

    2024.01.21
  • SGA vs PGA (in Oracle)

    ํ˜„์žฌ DB ์Šคํ„ฐ๋””์˜ ์ผํ™˜์œผ๋กœ '์นœ์ ˆํ•œ SQL ํŠœ๋‹'์„ ํ•œ๋ฒˆ ๋” ์ฝ๊ณ  ์žˆ๋‹ค. ์ด๋ฒˆ ํŒŒํŠธ๋Š” ์†ŒํŠธ ๋จธ์ง€ ์กฐ์ธ + ํ•ด์‹œ ์กฐ์ธ ์ธ๋ฐ, ๊ฐœ์ธ์ ์œผ๋กœ ํ•ด๋‹น ์„œ์ ์„ ์ด๋ฏธ 1ํšŒ๋…ํ•œ ์ƒํ™ฉ์ด๋ผ ๋‘ ์กฐ์ธ์ด ๋Œ€๋žต์ ์œผ๋กœ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๊ณ , ์–ด๋–ค ์ƒํ™ฉ์—์„œ ํ™œ์šฉ๋˜๋Š”์ง€๋Š” ์ดํ•ดํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค๋งŒ 1ํšŒ๋… ์‹œ ์ž˜ ๋ชฐ๋ผ์„œ ๊ทธ๋ƒฅ ๋„˜์–ด๊ฐ”๋˜ ์˜ค๋ผํด์˜ PGA์™€ SGA์˜ ๊ฐœ๋…์ด ์žˆ๋Š”๋ฐ, ์ด๋ฒˆ ๊ธฐํšŒ์— ์ด๋ฅผ ๊ณต๋ถ€ํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋ฉด ์ข‹๊ฒ ๋‹ค ์‹ถ์–ด ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๋“ค์„ ๊ธฐ๋กํ•ด๋‘๊ธฐ ์œ„ํ•ด ์ด ๊ธ€์„ ์ž‘์„ฑํ•œ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ์ฑ…์—์„œ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋‹ค๋ค„์ง„ ๋ฐ์ดํ„ฐ ์กฐํšŒ ์‹œ SGA์™€ PGA ์ ‘๊ทผ์˜ ์†๋„ ์ฐจ์ด์— ์ค‘์ ์„ ๋‘๊ณ  ๋‹ค๋ค„๋ณด๋ คํ•œ๋‹ค. ๊ฐ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์— ๋Œ€ํ•œ ์†Œ๊ฐœ SGA SGA๋ž€ System Global Area์˜ ์•ฝ์ž๋กœ, DB ๋‚ด ํ•˜๋‚˜๋งŒ ์กด์žฌํ•˜๋ฉด์„œ ๋ชจ๋“  ์„ธ์…˜์ด ๊ณต์œ ํ•˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์ด๋‹ค. SG..

    2024.01.14
์ด์ „
1 2 3 4 5 6 ยทยทยท 11
๋‹ค์Œ
ํ‹ฐ์Šคํ† ๋ฆฌ
ยฉ 2018 TISTORY. All rights reserved.

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