[๐ ์ฌ์ดํด2 - ๋ฏธ์ (๊ธฐ๋ฌผ ํ์ฅ + DB ์ ์ฉ)] ๋ฌ์ ๋ฏธ์ ์ ์ถํฉ๋๋ค.#348
Conversation
- ์ ์ ์์ฑ ์ ์์ธ ํ ์คํธ ์ถ๊ฐ - ์ ์ ๋น๊ต ํ ์คํธ ์ถ๊ฐ - ์ ์ ํฉ์ฐ ํ ์คํธ ์ถ๊ฐ
- ์ ์ ๋น๊ต, ํฉ์ฐ ์ถ๋ผ
- Piece ๋ด๋ถ ๊ธฐ๋ฌผ ์ด๋ฆ ์ถ์ ๋ฉ์๋ ์ญ์ - PieceName ๊ฐ์ฒด ์ถ๊ฐ ํ ์ด๋ฆ ํ๋จ ๋ฉ์๋ ์ถ๊ฐ - Score ์ธ์คํด์ค ๋ณ์, ๋ฉ์๋ ์ถ๊ฐ
- Position Map ์บ์ ์ญ์ - Row, Column List ์บ์ ์ถ๊ฐ - Row, Column ์กฐํฉ์ผ๋ก Position ์์ฑ
- ๋ฐฉํฅ ํ์ธ ํ ์คํธ ์ถ๊ฐ
- ์, ์๋ ๋ฐฉํฅ ํ์ธ ๋ฉ์๋ ์ถ๊ฐ - ๋๊ฐ๋ฐฉํฅ ๋ฆฌ์คํธ ์ถ๊ฐ
- ํฌ์ง์ ์ด ๊ถ์ฑ์ ์กด์ฌํ๋์ง ํ ์คํธ ์ถ๊ฐ - ๊ถ์ฑ ์์น์ ๋ฐ๋ฅธ ๋ฐํ๊ฐ ํ ์คํธ์ถ๊ฐ
- ํฌ์ง์ ์ด ๊ถ์ฑ์ ์กด์ฌํ๋์ง ํ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ - ํฌ์ง์ ์์น์ ๋ฐ๋ฅธ ๋ฐฉํฅ ๊ฐ ๋ฐํ ๊ธฐ๋ฅ ์ถ๊ฐ
- ํ ์คํธ ๋ถ๋ฆฌ
- ๊ธฐ๋ฌผ์ด ์ฃผ์ํ ๊ธฐ๋ฌผ์ธ์ง ํ ์คํธ
- ๊ธฐ๋ฌผ์ด ์ฃผ์ํ ๊ธฐ๋ฌผ์ธ์ง ํ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ
- ์์ธ์ง ํ์ธ ํ ์คํธ ์ถ๊ฐ
- ์ ์ * ๋ฐฐ์จ ํ ์คํธ ์ถ๊ฐ
- ์ ์ ํ๋จ ํ ์คํธ ์ถ๊ฐ
- ๊ฒ์ ์ถ๊ฐ, ์ญ์ , ์กฐํ ์ถ๊ฐ - ํผ์ค ์ถ๊ฐ, ์ญ์ , ์กฐํ, ์ ๋ฐ์ดํธ ์ถ๊ฐ
Arachneee
left a comment
There was a problem hiding this comment.
์๋ ํ์ธ์ ๋ฌ์๋!
๋ฆฌ๋ทฐ์ด ๋ฐฑํธ์ ๋๋ค. ๐
์ฌ์ดํด 2๋ ์ ํด์ฃผ์ จ๋ค์. ๊น๋ํ๊ฒ ์ ํ์ ๊ฒ ๊ฐ์์. ๊ณ ์ํ์ จ์ต๋๋ค.
์ฝ๋ฉํธ ๋จ๊ฒผ์ผ๋ ํ์ธํด์ฃผ์ธ์~
- ๊ฐ์ฒด ์ค๊ณ ๋ฐ ๋๋ฉ์ธ ๋ชจ๋ธ๋ง (Domain & Object Design)
Q. Score๋ฅผ ํ๋(State)๋ก ์ ์งํ ์ง ๋ฉ์๋(Behavior)๋ก ๊ณ์ฐํ ์ง ์ฌ๋ถ
์ง๋ฌธ: ํ์ฌ ๊ธฐ๋ฌผ ๊ฐ์ฒด ๋ด๋ถ์ ์ ์๋ฅผ ์ธ์คํด์ค ๋ณ์๋ก ๊ฐ์ง๋๋ก ๊ตฌํํ์ต๋๋ค. ํ์ง๋ง ์ ์๋ ๊ฒ์ ์ข ๋ฃ ์์ ์ด๋ ์ ์ ํ์ธ ์์ ์๋ง ์ฌ์ฉ๋๋๋ฐ, ์ด๋ฅผ ์์ ๋ณ์๋ก ๋ค๊ณ ์๋ ๊ฒ์ด ๋ง์๊น์?
์ธ๋ถ ๋ด์ฉ: ์ธ์คํด์ค ๋ณ์๋ฅผ ์ค์ฌ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ณ๊ฒ ์ ์งํ๊ณ ์ถ์์ต๋๋ค. ์ ์ ์ถ๋ ฅ ์์ ์๋ง ํธ์ถ๋์ด ์์๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋ ๋ฐฉ์์ด ๊ฐ์ฒด์ ์์จ์ฑ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์ ๋ ๋์ ์ค๊ณ๊ฐ ๋ ์ ์์์ง ๋ฆฌ๋ทฐ ๋ถํ๋๋ฆฝ๋๋ค.
score๋ฅผ ์ธ์คํด์ค ๋ณ์๋ก ๊ฐ์ง์ง ์์ผ๋ฉด Piece์ score ๋ฉ์๋๋ฅผ ์ถ์ ๋ฉ์๋๋ก ๋ง๋ค๊ณ ๋ชจ๋ Piece ๊ตฌํ์ฒด์์ ํด๋น ๋ฉ์๋๋ฅผ ๊ตฌํํ๊ฒ ํด์ผํ ๊ฒ ๊ฐ๋ค์. ์ด๊ฑฐ๋ Piece์ ์ ์๊ฐ ๊ตฌํ์ฒด๋ง๋ค ๊ณ ์ ์ธ์ง ์๋์ง์ ๋ฐ๋ผ์ ์ ํํ๋ ๊ฒ์ด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๋ฉ๋ชจ๋ฆฌ ์ธก๋ฉด์์๋ ๋ณ ์ฐจ์ด๊ฐ ์์ ๊ฒ ๊ฐ์์.
Q. ๊ธฐ๋ฌผ ์ด๋ ๊ฐ์ฒด์ ์ง์ ๋ฒ์ (๊ถ์ฑ ์์น ์ธ์ง)
์ง๋ฌธ: ๊ธฐ๋ฌผ์ ์ด๋ ๋ก์ง์ ๋ด๋นํ๋ ๊ฐ์ฒด๊ฐ '๊ถ์ฑ(Palace)'์ ์์น ์ ๋ณด๋ฅผ ์ง์ ์๊ณ ์์ด๋ ๋ ๊น์?
์ธ๋ถ ๋ด์ฉ: Position ์์ฒด๊ฐ '๊ถ์ฑ ์ฌ๋ถ'๋ฅผ ์์ฑ์ผ๋ก ๊ฐ์ง๋ ๊ฒ๊ณผ, ์ด๋ ๋ก์ง ๊ฐ์ฒด๊ฐ ๊ถ์ฑ ์ขํ ๋ฒ์๋ฅผ ์์๋ก ๋ค๊ณ ๊ด๋ฆฌํ๋ ๊ฒ ์ค ์ด๋ ์ชฝ์ด ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ์์ง๋๋ฅผ ๋์ด๋ ๋ฐ ์ ๋ฆฌํ ๊น์?
๊ถ์ฑ ๋ด๋ถ์์์ ์์ง์์ด๋๊น ์ง๊ธ์ฒ๋ผ ๊ถ์ฑ ๋ด๋ถ ์์ง์ด๋ ์ ๋ต์ ์ถ์ํํ๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ์์! ๐ Palace -> Position์ ๋ํ ์์กด์ ๋ถ๊ฐํผํ ๊ฒ ๊ฐ์์. ๊ทธ๋ฐ๋ฐ Position์ '๊ถ์ฑ ์ฌ๋ถ' ์์ฑ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ Position -> Palace์ ๋ํ ๊ฐ์ ์์กด์ด ์๊ธฐ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํด์. ๊ทธ๋์ ์ง๊ธ ๊ตฌ์กฐ๊ฐ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค!
- ํจํด ์ ์ฉ ๋ฐ ์ค๊ณ ์์น (Design Patterns)
Q. ๋ฐ์ฝ๋ ์ดํฐ ํจํด ๋์ ๋ณด๋ฅ์ ํด๋์ค ํญ๋ฐ ๋ฌธ์
์ง๋ฌธ: ๊ธฐ๋ฌผ ์ด๋ ๊ท์น ํ์ฅ์ ์ํด ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ๊ฒํ ํ์ผ๋, ๋ชจ๋ ํจํด๋ง๋ค ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํด์ผ ํ๋ 'ํด๋์ค ํญ๋ฐ' ์ฐ๋ ค๋ก ๋ณด๋ฅํ์ต๋๋ค.
์ธ๋ถ ๋ด์ฉ: ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ด ์ ๋ต ํจํด(Strategy)์ด๋ ์์๋ณด๋ค ์ค์ง์ ์ธ ์ด๋์ ์ฃผ๋ ์์ ์ด ๊ตฌ์ฒด์ ์ผ๋ก ์ธ์ ์ผ์ง ๊ถ๊ธํฉ๋๋ค.
์ ๋ต ํจํด์ด๋ ์์์ ํ๋์ ์ ๋ต์ด ๋ฐํ์์ ๊ณ ์ ๋์ง๋ง ๋ฐ์ฝ๋ ์ดํฐ ํจํด์ ์ฌ์ฉํ๋ฉด ๋ฐํ์์ ์ฌ๋ฌ ๊ฒน์ ๋์ ์ผ๋ก ์์ ์ ์๋ ์ฅ์ ์ด ์๋ค๊ณ ์๊ฐํด์. ๋ํ ํต์ฌ ๋ก์ง์ด๋ ๋ถ๊ฐ ๋ก์ง๋ค์ ๋ถ๋ฆฌํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ ์ ์์ฃ . ์ง๊ธ ์์ค์์๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ ์ ํ ์ ํ์ด์๋ ๊ฒ ๊ฐ์์.
- ์์์ฑ ๊ณ์ธต ๋ฐ ์ ์ฅ ์ ๋ต (Persistence & Infrastructure)
Q. ์ ์ฒด ์ญ์ ํ ์ฝ์ ์ ๋ฐ์ดํธ ์ ๋ต
์ง๋ฌธ: ๊ธฐ๋ฌผ ์ด๋ ์ ๊ฐ๋ณ id๋ฅผ ์ถ์ ํด UPDATE ํ์ง ์๊ณ , ํด๋น ๊ฒ์์ ๊ธฐ๋ฌผ์ ๋ชจ๋ ์ง์ด ๋ค(DELETE) ํ์ฌ ๋๋ฉ์ธ ์ํ๋ฅผ ๋ค์ ๋ฃ๋(INSERT) ๋ฐฉ์์ ํํ์ต๋๋ค.
์ธ๋ถ ๋ด์ฉ: ๋๋ฉ์ธ ๋ชจ๋ธ์ด DB ์๋ณ์(id)๋ฅผ ๋ชฐ๋ผ๋ ๋๊ฒ๋ ํ์ฌ '๋๋ฉ์ธ ์์์ฑ'์ ์ง์ผฐ์ต๋๋ค. ๋ค๋ง, ์ด๋ฌํ ๋ฐฉ์์ด ์ค๋ฌด ํ๊ฒฝ์ ์ฑ๋ฅ์ด๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ธก๋ฉด์์ ์ด๋ ์ ๋๊น์ง ํ์ฉ๋ ์ ์๋ ์ค๊ณ์ธ์ง ๊ถ๊ธํฉ๋๋ค.
๋๋ฉ์ธ์ด DB ์๋ณ์๋ฅผ ์์ง ๋ชปํ๊ฒ ํ๊ธฐ ์ํด์ DELETE, INSERT ์ ๋ต์ ์ ํํ์ ๊ฑธ๊น์? ๋๋ฉ์ธ์ด id๋ฅผ ๊ฐ์ง๋ฉด ๋๋ฉ์ธ ์์์ฑ์ด ๊นจ์ง๋ ๊ฑธ๊น์?
Q. ์ ์ฅ ์์ : ๋งค ์๋ง๋ค ์ ์ฅ vs ์ผ๊ด ์ ์ฅ
์ง๋ฌธ: ํ์ฌ๋ ๋งค ํ์ฐจ(play)๋ง๋ค DB์ ๋๊ธฐํํ๊ณ ์์ต๋๋ค.
์ธ๋ถ ๋ด์ฉ: ์ฅ์ ๋ณต๊ตฌ์๋ ์ ๋ฆฌํ์ง๋ง DB I/O๊ฐ ๋น๋ฒํฉ๋๋ค. ์๋น์ค ๊ท๋ชจ์ ์ฅ๊ธฐ ๊ฒ์์ ํน์ฑ์ ๊ณ ๋ คํ์ ๋ ์ด ๋ฐฉ์์ด ํฉ๋ฆฌ์ ์ธ์ง, ์๋๋ฉด ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ ํ ํน์ ์์ ์ ์ ์ฅํ๋ ๋ฐฉ์์ด ๊ถ์ฅ๋๋์ง ์๊ฒฌ ๋ถํ๋๋ฆฝ๋๋ค.
๋งค ํ์ฐจ๊ฐ ๋ช์ด ๋จ์๋ก ์งํ ๋ ํ ๋ฐ DB I/O ์๋ํ ์ฑ๋ฅ์ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋์ง ์์๊น์?
- ์๋น์ค ๋ ์ด์ด ๋ฐ ๋ฐ์ดํฐ ์ ๋ฌ (Architecture & Flow)
Q. ์กฐ์ธ(Join) ๋์ ๋ค์ค ์ฟผ๋ฆฌ ์คํ์ ์ ์ ์ฑ
์ง๋ฌธ: ๊ฒ์ ๋ฉํ ์ ๋ณด์ ๊ธฐ๋ฌผ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ฌ ๋ JOIN์ ์ฐ์ง ์๊ณ ๊ฐ๊ฐ์ DAO๋ฅผ ํธ์ถํ์ต๋๋ค.
์ธ๋ถ ๋ด์ฉ: DAO ๊ฐ์ ์ฑ ์์ ๋ช ํํ ๋ถ๋ฆฌํ๊ณ ์ฟผ๋ฆฌ๋ฅผ ๋จ์ํ๊ฒ ์ ์งํ๊ธฐ ์ํจ์ ๋๋ค. ์ฑ๋ฅ์ ํฐ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ฉด ์ด ๊ตฌ์กฐ๋ฅผ ์ ์งํด๋ ๊ด์ฐฎ์๊น์?
์ฑ๋ฅ ์ ๋ฌธ์ ๊ฐ ๋์ง ์๋๋ค๋ฉด ๊ด์ฐฎ๋ค๊ณ ์๊ฐํด์.
Q. ์๋น์ค์ ๋๋ฉ์ธ ๊ฐ์ ์ ๋ณด ์ ๋ฌ ๋ฒ์ ๋ฐ Mapper์ ์์น
์ง๋ฌธ: ์๋น์ค๊ฐ DAO๋ก๋ถํฐ ๋ฐ์ ์ ๋ณด๋ฅผ ๋๋ฉ์ธ์๊ฒ ์ด๋ ์ ๋๊น์ง ์ ๋ฌํด์ผ ํ ๊น์? ๋ํ ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๋งคํผ๋ฅผ ์์ ํ๊ณ ๋ณํํ๋ ๊ตฌ์กฐ๊ฐ ์ ์ ํ ๊น์?
์ธ๋ถ ๋ด์ฉ: ํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ์์ ๋งคํผ๋ฅผ ํตํด ์ํฐํฐ๋ค์ ํฉ์น๊ณ ๋๋ฉ์ธ ๊ฐ์ฒด๋ก ๋ณํํ์ฌ ์๋น์ค์ ๋๊ฒจ์ค๋๋ค. ๋๋ฉ์ธ์ด id๋ฅผ ์ ํ ๋ชจ๋ฅด๋ ํ์ฌ์ ๊ตฌ์กฐ๊ฐ ์ฅ๊ธฐ์ ์ผ๋ก ํ์ฅ์ฑ์ ๋์์ด ๋ ์ง ๋ฆฌ๋ทฐ ๋ถํ๋๋ฆฝ๋๋ค.
DAO, ๋๋ฉ์ธ, ์ํฐํฐ, ๋ ํฌ์งํ ๋ฆฌ ์ ๋ถ ์ด๋ป๊ฒ ๋ค๋ฅธ ์ญํ ์ ๊ฐ์ง๊ณ ์๊ณ ์ ์กด์ฌํ๋์? ๋๋ฉ์ธ์ด id๋ฅผ ๋ชฐ๋ผ์ผํ๋ ์ด์ ๋ ๋ญ๊น์?
- ํ ์คํธ ๋ฐ ์์ธ ์ฒ๋ฆฌ (Testing & Exception)
Q. TDD ์งํ ์์์ ์ ๋ต
์ง๋ฌธ: DB์ ์ฐ๋๋๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ ๋, ๋ฐ์ดํฐ ๊ฒฐ๊ณผ๋ฌผ์ ๊ฒ์ฆํ๋ DB ํ ์คํธ๋ฅผ ๋จผ์ ์ง์ผ ํ๋์ง, ์๋๋ฉด ์๋น์ค ๋ก์ง์ ๋จผ์ ์ง์ผ ํ๋์ง ๊ธฐ์ค์ด ๊ถ๊ธํฉ๋๋ค.
์ธ๋ถ ๋ด์ฉ: ์๋น์ค ๋ ์ด์ด์ ํ ์คํธ๋ ์ค์ DB๋ฅผ ์ฐ๋ํ์ฌ ํตํฉ ํ ์คํธ๋ก ์งํํด์ผ ํ๋์ง, ํน์ ๋ชจํน์ ํตํด ๋๋ฉ์ธ ๋ก์ง๋ง ๊ฒ์ฆํ๋ ๊ฒ์ด ๋ง๋์ง ๊ถ๊ธํฉ๋๋ค.
๋ฌด์์ ํ ์คํธํ๊ณ ์ถ์์ง์ ๋ฐ๋ผ ๋ค๋ฅผ ๊ฒ ๊ฐ์์. ๋๋ฉ์ธ ๋ก์ง์ ๊ฒ์ฆํ๊ณ ์ถ์ผ๋ฉด ๋ชจํน์ ํ๋ฉด ๋๊ณ DB ์ฐ๋๊น์ง ํ ์คํธํ๊ณ ์ถ์ผ๋ฉด ํตํฉ ํ ์คํธ๋ฅผ ํ๋ฉด ๋ฉ๋๋ค. ์ ๋ผ๋ฉด DB ๊ด๋ จ ๋ก์ง์ด ๋ณต์กํ๋๊น DB ํ ์คํธ ๋จผ์ ์งํํ์ ๊ฒ ๊ฐ์์. ์๋๋ฉด ์๋น์ค ๋ ์ด์ด๋ ๋จ์ํ๋๊น DB๋ฅผ ๋ชจํนํ๋ ๊ฒ์ ์๋ฏธ๊ฐ ์๋ค๊ณ ์๊ฐํ๊ณ ํตํฉํ ์คํธ๋ฅผ ํ์ ๊ฒ ๊ฐ์ต๋๋ค.
Q. JDBC ์์ธ ์ฒ๋ฆฌ ๋ฐ ์ค์ ํ์ผ ์์น
์ง๋ฌธ: DAO์์ ๋ฐ์ํ๋ SQLException์ ์๋น์ค ๊ณ์ธต์์ ์ปค์คํ ์์ธ๋ก ๋ณํํ๊ณ ์์ต๋๋ค. ์ด ๊ธฐ์ ์ ์์ธ๋ฅผ ์ด๋๊น์ง ์จ๊ฒจ์ผ ํ๋ฉฐ, ์ฌ์ฉ์์๊ฒ ๋ฉ์์ง๋ฅผ ์ ๋ฌํ๋ ๊ฐ์ฅ ์ ์ ํ ๋ฐฉ์์ ๋ฌด์์ผ๊น์?
์์ธ๋ฅผ catchํ ์ ๋ ์๊ณ ๊ทธ๋๋ก ์ ํ ํ ์ ๋ ์๋๋ฐ ์ธ์ catchํ๊ณ ์ธ์ ์ ํํ๋ ๊ฒ์ด ์ข์์ง ์๊ฐํด๋ณด๋ฉด ์ข์ ๊ฒ ๊ฐ์์.
Q. DB ์ค์ ํด๋์ค ์์น
์ง๋ฌธ : ์ถ๊ฐ๋ก DB ์ฐ๊ฒฐ์ ์ค์ ํ๋ Config ํด๋์ค๋ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ์ด๋ ์์น(ํจํค์ง)์ ๋๋ ๊ฒ์ด ๊ฐ์ฅ ๊ด๋ฆฌํ๊ธฐ ํธํ ๊น์?
์ค์ ํ์ผ์ด๋๊น config ํจํค์ง๊ฐ ์ด์ธ๋ฆฌ๋ ๊ฒ ๊ฐ์์.
- ์๋น์ค, ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ฒ๋ฆฌํ๋๋ก ์ฟผ๋ฆฌ๋ฌธ ์ถ๊ฐ
- ํ ์ฌ์ด์ฆ: 5 - ์กฐํ์ ์์ ,์ถ๊ฐ,์ญ์ ๊ฐ ๋ค๋ฅด๊ฒ ์๋
- FakeDao๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌํฌ์งํ ๋ฆฌ ํ ์คํธ ์ถ๊ฐ - Dao ํ ์คํธ ์ถ๊ฐ - H2 ๋ฉ๋ชจ๋ฆฌ db ์ฌ์ฉ
Q. DELETE + INSERT ์ ๋ต
Q. ๋งค ์๋ง๋ค ์ ์ฅ vs ์ผ๊ด ์ ์ฅ
Q. JDBC ์์ธ ์ฒ๋ฆฌ
Q. ๊ฐ์ ์ ์ญํ
|
|
์ด๋ฒ์ ์ปค๋ฅ์ ํ, ํธ๋์ญ์ ๊ด๋ฆฌ, Fake ํ ์คํธ ๊ตฌ์กฐ๋ฅผ ์ก์ผ๋ฉด์ ๋งํ๋ ๋ถ๋ถ์ด ๋ง์ AI์ ๋์์ ์ ๊ทน์ ์ผ๋ก ๋ฐ์์ต๋๋ค! ์์ง 100% ์ ์ง์์ผ๋ก ์ฒดํํ์ง ๋ชปํด์ ์์ฌ์์ ๋จ์ง๋ง, ํํธ๋ฅผ ์ป์ด ๋ผ๋๋ฅผ ์ก์ ์ ์์์ต๋๋ค. ํผ๋๋ฐฑ ์ฃผ์ ๋ถ๋ถ๋ค ๋ฐํ์ผ๋ก ๊ณ์ ๋ค๋ฌ์ด๊ฐ ๋ณด๊ฒ ์ต๋๋ค! |
Arachneee
left a comment
There was a problem hiding this comment.
์๋ ํ์ธ์ ๋ฌ์sla!
์ฝ๋ฉํธ ์ ๋ฐ์ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ๐
์ฝ๋ฉํธ ์กฐ๊ธ ๋จ๊ฒจ๋จ๋๋ฐ ์๊ตฌ ์ฌํญ ๋ชจ๋ ์ถฉ์กฑํด์ ๋จธ์งํด๋ ๋ ๊ฒ ๊ฐ์์. ํน์ ์กฐ๊ธ ๋ ์์ ํ๊ณ ์ถ์ ๋ถ๋ถ์ด ์์๊น๋ด ํ๋ฒ ๋ ๋ฆฌ๋ทฐ ์์ฒญ์ฃผ์๋ฉด ๋จธ์งํ๊ฒ ์ต๋๋ค.
Turn enum ์ ๊ฑฐ, Entity์์ Camp ์ง์ ์ฌ์ฉ PositionRequest์ toPosition() ๋ณํ ๋ฉ์๋ ์ถ๊ฐ 1:1๋ก ๋์ํ๋ ๋๋ฉ์ธ ๊ฐ์ฒด์์ ๋ถํ์ํ ์ค๊ฐ ๋ณํ ๊ฐ์ฒด ์ ๊ฑฐ
|
๋ ๊ฐ์ ํ๊ณ ์ถ์ ๋ถ๋ถ์ด ์์ง๋ง, ์ฌ๊ธฐ์ ๋ง๋ฌด๋ฆฌํ๊ณ ๋ค๋ฅธ ๊ณต๋ถ๋ฅผ ์ด์ด๊ฐ๊ฒ ์ต๋๋ค. ํน์ ์ด๋ฒ ์ฝ๋์์ ์ถ๊ฐ๋ก ์์ฌ์ ๋ ๋ถ๋ถ์ด ์์ผ์๋ฉด ๋ง์ํด์ฃผ์๋ฉด ๋ค์์ ์ฐธ๊ณ ํ๊ฒ ์ต๋๋ค. ์ด๋ฒ ๋ฆฌ๋ทฐ๋ฅผ ํตํด ๋ง์ด ๋ฐฐ์ ์ต๋๋ค. ์ข์ ๋ฆฌ๋ทฐ ๊ฐ์ฌํ์ต๋๋ค. |
์ฒดํฌ ๋ฆฌ์คํธ
test๋ฅผ ์คํํ์ ๋, ๋ชจ๋ ํ ์คํธ๊ฐ ์ ์์ ์ผ๋ก ํต๊ณผํ๋์?์ด๋ค ๋ถ๋ถ์ ์ง์คํ์ฌ ๋ฆฌ๋ทฐํด์ผ ํ ๊น์?
์ฅ๊ธฐ ํ๋ก์ ํธ ์์์ฑ ๊ณ์ธต ๋ฐ ๋๋ฉ์ธ ์ค๊ณ ๋ฆฌ๋ทฐ ์์ฒญ
1. ๊ฐ์ฒด ์ค๊ณ ๋ฐ ๋๋ฉ์ธ ๋ชจ๋ธ๋ง (Domain & Object Design)
Q. Score๋ฅผ ํ๋(State)๋ก ์ ์งํ ์ง ๋ฉ์๋(Behavior)๋ก ๊ณ์ฐํ ์ง ์ฌ๋ถ
Q. ๊ธฐ๋ฌผ ์ด๋ ๊ฐ์ฒด์ ์ง์ ๋ฒ์ (๊ถ์ฑ ์์น ์ธ์ง)
2. ํจํด ์ ์ฉ ๋ฐ ์ค๊ณ ์์น (Design Patterns)
Q. ๋ฐ์ฝ๋ ์ดํฐ ํจํด ๋์ ๋ณด๋ฅ์ ํด๋์ค ํญ๋ฐ ๋ฌธ์
3. ์์์ฑ ๊ณ์ธต ๋ฐ ์ ์ฅ ์ ๋ต (Persistence & Infrastructure)
Q. ์ ์ฒด ์ญ์ ํ ์ฝ์ ์ ๋ฐ์ดํธ ์ ๋ต
Q. ์ ์ฅ ์์ : ๋งค ์๋ง๋ค ์ ์ฅ vs ์ผ๊ด ์ ์ฅ
4. ์๋น์ค ๋ ์ด์ด ๋ฐ ๋ฐ์ดํฐ ์ ๋ฌ (Architecture & Flow)
Q. ์กฐ์ธ(Join) ๋์ ๋ค์ค ์ฟผ๋ฆฌ ์คํ์ ์ ์ ์ฑ
Q. ์๋น์ค์ ๋๋ฉ์ธ ๊ฐ์ ์ ๋ณด ์ ๋ฌ ๋ฒ์ ๋ฐ Mapper์ ์์น
5. ํ ์คํธ ๋ฐ ์์ธ ์ฒ๋ฆฌ (Testing & Exception)
Q. TDD ์งํ ์์์ ์ ๋ต
Q. JDBC ์์ธ ์ฒ๋ฆฌ ๋ฐ ์ค์ ํ์ผ ์์น
Q. DB ์ค์ ํด๋์ค ์์น
์ง๋ฌธ : ์ถ๊ฐ๋ก DB ์ฐ๊ฒฐ์ ์ค์ ํ๋ Config ํด๋์ค๋ ํ๋ก์ ํธ ๊ตฌ์กฐ์ ์ด๋ ์์น(ํจํค์ง)์ ๋๋ ๊ฒ์ด ๊ฐ์ฅ ๊ด๋ฆฌํ๊ธฐ ํธํ ๊น์?