πŸƒπŸƒ‍β™‚οΈπŸƒπŸ»‍♀️

πŸƒπŸƒ‍β™‚οΈπŸƒπŸ»‍♀️

  • λΆ„λ₯˜ 전체보기 (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 ν”Όλ“œ
둜그인
λ‘œκ·Έμ•„μ›ƒ κΈ€μ“°κΈ° 관리

πŸƒπŸƒ‍β™‚οΈπŸƒπŸ»‍♀️

컨텐츠 검색

νƒœκ·Έ

CS db PostgreSQL λ°±μ—”λ“œ JPA node.js Spring OS K6 NestJS Nest.js 운영체제 λ©΄μ ‘ MySQL SQL 인덱슀 λ„€νŠΈμ›Œν¬ ν”„λ‘œμ„ΈμŠ€ TypeScript Database

μ΅œκ·ΌκΈ€

λŒ“κΈ€

곡지사항

μ•„μΉ΄μ΄λΈŒ

무쀑단 배포λ₯Ό μœ„ν•œ Mysql Online DDL 기술

μ„œλΉ„μŠ€κ°€ 컀짐에 따라 λ‹€μ–‘ν•œ κΈ°λŠ₯듀이 μΆ”κ°€λ˜κ³ , 이에 따라 μ„œλΉ„μŠ€ λ’·νŽΈμ—μ„œλŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 둜직 뿐 μ•„λ‹ˆλΌ DBκΉŒμ§€ μˆ˜λ§Žμ€ 변경점듀이 μƒκ²¨λ‚©λ‹ˆλ‹€.이 λ•Œλ§ˆλ‹€ μ„œλΉ„μŠ€ 쀑단 곡고λ₯Ό λ‚΄μ„œ μ‚¬μš©μž νŠΈλž˜ν”½μ„ μ›μ²œ μ°¨λ‹¨ν•˜κ³  패치λ₯Ό μ§„ν–‰ν•œλ‹€λ©΄ 개발자 μž…μž₯μ—μ„œλŠ” νŽΈν• μ§€ λͺ°λΌλ„, μ€‘λ‹¨λœ λ§€ μ‹œμ μ΄ μΌμ’…μ˜ μ†μ‹€λ‘œ λ³Ό 수 μžˆμ–΄ μ‰½κ²Œ 생각할 λ¬Έμ œλŠ” μ•„λ‹™λ‹ˆλ‹€.즉, μ„œλΉ„μŠ€μ˜ κ΄€μ μ—μ„œλŠ” ν”ΌμΉ˜λͺ»ν•  경우λ₯Ό μ œμ™Έν•˜λ©΄ λ¬΄μ€‘λ‹¨μœΌλ‘œ κΈ°λŠ₯이 μΆ”κ°€λ˜λŠ” 편이 더 도움이 λ˜λ¦¬λΌλŠ” 것은 자λͺ…ν•©λ‹ˆλ‹€.ν•˜μ§€λ§Œ 무쀑단 배포λ₯Ό ν•˜κ³  μ‹Άλ‹€κ³  무쑰건 ν•  수 μžˆλŠ” 것은 μ•„λ‹™λ‹ˆλ‹€. DB λ ˆμ΄μ–΄μ˜ 변경을 μ μš©ν•˜λ‹€λ³΄λ©΄ λ‹Ήμ‹œ μ‹€ν–‰λ˜κ³  있던 νŠΈλžœμž­μ…˜μ€ Blocking이 λ μˆ˜λ„, ν˜Ήμ€ μ•„μ˜ˆ λ¬Έμ œκ°€ λ°œμƒν•΄ μ’…λ£Œκ°€ 될 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 경우 μœ μ €μ˜ μ„œλΉ„μŠ€ μ΄μš©μ— λ¬Έμ œκ°€ μžˆλŠ” 것이기..

μžμ„Ένžˆλ³΄κΈ°
νŽ˜μ΄μ§€λ„€μ΄μ…˜ 방법둠 비ꡐ(Offset vs Cursor)

νŽ˜μ΄μ§€λ„€μ΄μ…˜μ΄λž€? OLTP ν™˜κ²½μ—μ„œ μ‚¬μš©μžμ—κ²Œ λ°˜ν™˜λ˜λŠ” 데이터듀은 λŒ€λΆ€λΆ„ νŠΉμ • κΈ°μ€€μœΌλ‘œ μ •λ ¬λœ 일뢀 데이터이닀. 예λ₯Ό λ“€λ©΄ μ›Ήκ°œλ°œμ˜ κ°€μž₯ ν”ν•œ μ˜ˆμ‹œμΈ κ²Œμ‹œνŒμ΄ κ·Έλ ‡λ‹€. κ²Œμ‹œνŒμ€ 일반적으둜 ν•œ νŽ˜μ΄μ§€μ— μ•½ 20개의 κ²Œμ‹œκΈ€λ“€μ„ μ΅œμ‹ μˆœμœΌλ‘œ λ…ΈμΆœμ‹œν‚€κ³ , μ‚¬μš©μžκ°€ λ‹€μŒ νŽ˜μ΄μ§€λ‘œ λ„˜μ–΄κ°€κ²Œ 되면 21 ~ 40번째 데이터가 κ·Έμ œμ„œμ•Ό μ‘°νšŒλ˜λŠ” λ°©μ‹μœΌλ‘œ κ΅¬ν˜„λœλ‹€. 이 μƒν™©μ—μ„œ μ„œλ²„λŠ” μ‚¬μš©μžμ—κ²Œ 전체 κ²Œμ‹œκΈ€ 데이터λ₯Ό μ „λ‹¬ν•˜λŠ” 것이 μ•„λ‹Œ, μ‚¬μš©μžκ°€ μœ„μΉ˜ν•œ νŽ˜μ΄μ§€μ— ν•΄λ‹Ήν•˜λŠ” λ°μ΄ν„°λ§Œμ„ λ°˜ν™˜ν•˜λ„λ‘ API 섀계가 μ΄λ£¨μ–΄μ§€λŠ”λ° 이λ₯Ό νŽ˜μ΄μ§€λ„€μ΄μ…˜ 방법둠이라고 λΆ€λ₯Έλ‹€. νŽ˜μ΄μ§€λ„€μ΄μ…˜ μ’…λ₯˜ 일반적으둜 많이 μ‚¬μš©λ˜λŠ” νŽ˜μ΄μ§€λ„€μ΄μ…˜ κΈ°λ²•μ—λŠ” Offset 기반 νŽ˜μ΄μ§€λ„€μ΄μ…˜κ³Ό Cursor(Keyset) 기반 νŽ˜μ΄μ§€λ„€μ΄μ…˜μ΄ μ‘΄μž¬ν•œλ‹€. Offset κΈ°..

μžμ„Ένžˆλ³΄κΈ°
μ‚¬μ΄λ“œ ν”„λ‘œμ νŠΈ λ‚΄ λΆ€ν•˜ν…ŒμŠ€νŠΈ & μ‹œκ°ν™” 기술 μ„ μ •κΈ° (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.

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”