Skip to content

[πŸš€ 사이클2 - λ―Έμ…˜ (κΈ°λ¬Ό ν™•μž₯ + DB 적용)] λ°”λ‹ˆ λ―Έμ…˜ μ œμΆœν•©λ‹ˆλ‹€.#352

Open
frombunny wants to merge 41 commits intowoowacourse:frombunnyfrom
frombunny:frombunny
Open

[πŸš€ 사이클2 - λ―Έμ…˜ (κΈ°λ¬Ό ν™•μž₯ + DB 적용)] λ°”λ‹ˆ λ―Έμ…˜ μ œμΆœν•©λ‹ˆλ‹€.#352
frombunny wants to merge 41 commits intowoowacourse:frombunnyfrom
frombunny:frombunny

Conversation

@frombunny
Copy link
Copy Markdown

@frombunny frombunny commented Apr 10, 2026

μ•ˆλ…•ν•˜μ„Έμš”, 베루슀! λ°”λ‹ˆμž…λ‹ˆλ‹€πŸ°
레벨1의 λ§ˆμ§€λ§‰ 사이클을 λ¦¬λ·°λ“œλ¦¬κ²Œ λ˜μ—ˆλ„€μš”, λ§ˆμ§€λ§‰κΉŒμ§€ 잘 λΆ€νƒλ“œλ¦½λ‹ˆλ‹€!
λ‚˜λ¦„ 이것저것 찾아보고 μ•Œμ•„λ³΄λ©΄μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ˜€λŠ”λ°, μ œλŒ€λ‘œ λ°˜μ˜λ˜μ—ˆμ„μ§„ λͺ¨λ₯΄κ² μŠ΅λ‹ˆλ‹€πŸ˜­
λ°”μ˜μ‹  와쀑에도 λ¦¬λ·°ν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€!

체크 리슀트

  • λ―Έμ…˜μ˜ ν•„μˆ˜ μš”κ΅¬μ‚¬ν•­μ„ λͺ¨λ‘ κ΅¬ν˜„ν–ˆλ‚˜μš”?
  • Gradle testλ₯Ό μ‹€ν–‰ν–ˆμ„ λ•Œ, λͺ¨λ“  ν…ŒμŠ€νŠΈκ°€ μ •μƒμ μœΌλ‘œ ν†΅κ³Όν–ˆλ‚˜μš”?
  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ΄ μ •μƒμ μœΌλ‘œ μ‹€ν–‰λ˜λ‚˜μš”?

μ–΄λ–€ 뢀뢄에 μ§‘μ€‘ν•˜μ—¬ 리뷰해야 ν• κΉŒμš”?

1. DB ν…Œμ΄λΈ” ꡬ쑰 섀계

μž₯기판의 μƒνƒœλ₯Ό μ–΄λ–»κ²Œ μ €μž₯ν•΄μ•Ό 할지에 λŒ€ν•΄ 고민이 λ§Žμ•˜μŠ΅λ‹ˆλ‹€.
ν˜„μž¬λŠ” Boardλ₯Ό μ• κ·Έλ¦¬κ±°νŠΈ 루트둜 κ°„μ£Όν•˜κ³ , 기물의 μœ„μΉ˜μ™€ μ’…λ₯˜ 정보λ₯Ό μ€‘μ‹¬μ˜ ν…Œμ΄λΈ” ꡬ쑰λ₯Ό μ„€κ³„ν–ˆμŠ΅λ‹ˆλ‹€..!

λ‹€λ§Œ, 도메인 객체 ꡬ쑰와 DB ν…Œμ΄λΈ” ꡬ쑰λ₯Ό μ–΄λ””κΉŒμ§€ μΌμΉ˜μ‹œμΌœμ•Ό ν•˜λŠ”μ§€
μ •κ·œν™” μˆ˜μ€€μ„ μ–΄λŠ μ •λ„κΉŒμ§€ κ°€μ Έκ°€λŠ” 것이 μ μ ˆν•œμ§€μ— λŒ€ν•΄μ„œλŠ” 확신이 μ—†λŠ” μƒνƒœμž…λ‹ˆλ‹€.

janggi drawio

2. JDBC λ„μž…κ³Ό νŠΈλžœμž­μ…˜ 관리에 λŒ€ν•œ κ³ λ―Ό

이번 λ‹¨κ³„μ—μ„œ 처음으둜 DBλ₯Ό 직접 μ—°κ²°ν•˜λ©°, 기쑴에 JPAκ°€ μΆ”μƒν™”ν•΄μ£Όλ˜ μ˜μ—­(Connection, νŠΈλžœμž­μ…˜ 관리)을 직접 λ‹€λ£¨κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. JDBC λ ˆλ²¨μ—μ„œ Connectionκ³Ό νŠΈλžœμž­μ…˜μ„ 직접 닀루닀 λ³΄λ‹ˆ μ•„λž˜μ™€ 같은 μ§€μ μ—μ„œ AI의 도움을 λ°›μ•˜κ³ , 아직은 μ™„μ „νžˆ 제 κ²ƒμœΌλ‘œ μ†Œν™”ν•˜μ§€ λͺ»ν•œ μƒνƒœμž…λ‹ˆλ‹€πŸ₯Ή

ν˜„μž¬ TransactionManagerλ₯Ό 톡해 ν•΄λ‹Ή μ±…μž„μ„ λΆ„λ¦¬ν•˜λ €κ³  μ‹œλ„ν–ˆλŠ”λ°, 이 객체가 νŠΈλžœμž­μ…˜κ³Ό 컀λ„₯μ…˜μ„ ν•¨κ»˜ κ΄€λ¦¬ν•˜λŠ” ꡬ쑰가 μ μ ˆν•œμ§€ 확신이 μ—†μŠ΅λ‹ˆλ‹€. νŠΈλžœμž­μ…˜ μ±…μž„κ³Ό 컀λ„₯μ…˜ 관리 μ±…μž„μ΄ 적절히 λΆ„λ¦¬λ˜μ–΄ μžˆλŠ”μ§€, ν˜„μž¬ κ΅¬μ‘°μ—μ„œ λ°œμƒν•  수 μžˆλŠ” λ¬Έμ œμ λ“€μ— λŒ€ν•΄μ„œ λ§μ”€ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€..!

+) λ―Έμ…˜μ„ μ§„ν–‰ν•˜λ©° κ°€μž₯ μ–΄λ €μ› λ˜ 점 쀑 ν•˜λ‚˜λŠ” μ œν•œλœ μ‹œκ°„ 내에 μ–΄λ””κΉŒμ§€ ν•™μŠ΅ν•˜κ³  κ΅¬ν˜„μ— λ°˜μ˜ν•΄μ•Ό ν•˜λŠ”κ°€μ˜€μŠ΅λ‹ˆλ‹€. μΆ”κ°€ ν•™μŠ΅μ΄ ν•„μš”ν•œ κ°œλ…(순수 JDBC, νŠΈλžœμž­μ…˜μ„ 직접 κ΄€λ¦¬ν•˜λŠ” 방법 λ“±)을 λ§ˆμ£Όν–ˆμ„ λ•Œ, 원리λ₯Ό μ™„λ²½νžˆ μ΄ν•΄ν•˜κ³  μ½”λ“œλ₯Ό 짜고 μ‹Άμ—ˆμ§€λ§Œ ν˜„μ‹€μ μΈ 마감 κΈ°ν•œκ³Ό μΆ©λŒν•˜λ©° νƒ€ν˜‘ν•΄μ•Ό ν•˜λŠ” μˆœκ°„λ“€μ΄ μžˆμ—ˆμŠ΅λ‹ˆλ‹€. λͺ¨λ₯΄λŠ” 기술이 λ‚˜μ™”μ„ λ•Œ 일단 λ™μž‘ν•˜κ²Œ λ§Œλ“œλŠ” μˆ˜μ€€κ³Ό λ‚΄λΆ€ 원리λ₯Ό μ™„μ „νžˆ νŒŒν—€μΉ˜λŠ” μˆ˜μ€€ μ‚¬μ΄μ—μ„œ μ–΄λ–»κ²Œ κ· ν˜•μ„ μž‘λŠ” 것이 μ’‹μ„κΉŒμš”? λ² λ£¨μŠ€λŠ” μ΄‰λ°•ν•œ 일정 속에 μƒμ†Œν•œ 기술 μš”κ΅¬μ‚¬ν•­μ„ λ°›μœΌμ…¨μ„ λ•Œ, μ΅œμ†Œ ν•™μŠ΅ κ°€μ΄λ“œλΌμΈμ΄λ‚˜ μš°μ„ μˆœμœ„ μ„€μ • 기쀀이 μžˆμœΌμ‹ μ§€ κΆκΈˆν•©λ‹ˆλ‹€.

3. TDD μ§„ν–‰μ˜ 어렀움

DB μ—°κ²° 둜직이 μΆ”κ°€λ˜λ©΄μ„œ ν…ŒμŠ€νŠΈ ν™˜κ²½μ„ μ–΄λ–»κ²Œ ꡬ좕해야 ν• μ§€, μ‹€μ œ DBμ™€μ˜ μ˜μ‘΄μ„±μ„ μ–΄λ–»κ²Œ 뢄리해야 ν• μ§€ νŒλ‹¨μ΄ μ„œμ§€ μ•Šμ•„ 이번 λ‹¨κ³„μ—μ„œλŠ” TDDλ₯Ό μ›ν™œν•˜κ²Œ μˆ˜ν–‰ν•˜μ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€πŸ˜­ DBμ—μ„œ 무엇을 ν…ŒμŠ€νŠΈν•΄μ•Ό ν•˜λŠ”κ°€μ— λŒ€ν•œ 막막함이 μ»ΈλŠ”λ°, 이런 μƒν™©μ—μ„œ λ² λ£¨μŠ€λŠ” μ–΄λ–€ μ‹μœΌλ‘œ ν…ŒμŠ€νŠΈ 리듬을 μœ μ§€ν•˜μ‹œλŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€..!

4. κΈ°λ¬Ό μ „λž΅ ꡬ쑰 λ³€κ²½

기쑴의 λ³΅μž‘ν–ˆλ˜ 이동 μ „λž΅ ꡬ쑰λ₯Ό 가독성과 μž¬μ‚¬μš©μ„± μ€‘μ‹¬μœΌλ‘œ λ¦¬νŒ©ν„°λ§ν–ˆμŠ΅λ‹ˆλ‹€.
기물은 μžμ‹ μ˜ 이동 κ·œμΉ™μ—λ§Œ μ§‘μ€‘ν•˜λ„λ‘ ν•˜κ³ , μ’Œν‘œ 계산 및 경둜 μž₯μ• λ¬Ό 검증 λ‘œμ§μ€ PathGenerator와 BlockingPieceValidator둜 λΆ„λ¦¬ν–ˆμŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ±…μž„μ„ λΆ„λ¦¬ν•˜κ³  쀑볡을 μ€„μ΄κ³ μž ν–ˆμŠ΅λ‹ˆλ‹€.

λ‹€λ§Œ, static μœ ν‹Έλ¦¬ν‹°λ‘œ λΆ„λ¦¬ν•œ 것이 μ μ ˆν•œ 선택인지, ν˜„μž¬ ꡬ쑰가 객체 κ°„ ν˜‘λ ₯ κ΄€μ μ—μ„œ μžμ—°μŠ€λŸ¬μš΄μ§€
에 λŒ€ν•΄μ„œλŠ” 확신이 μ—†λŠ” μƒνƒœμž…λ‹ˆλ‹€.

μˆ˜μ •ν•œ κ΅¬μ‘°λŠ” μ–΄λ–€μ§€ ν”Όλ“œλ°±ν•΄μ£Όμ‹œλ©΄ κ°μ‚¬ν•˜κ² μŠ΅λ‹ˆλ‹€!

frombunny added 30 commits April 7, 2026 12:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant