3์ฃผ์ฐจ ๋ฏธ์ : Coordinate, RentCompany https://github.com/woowacourse/java-coordinate ํ๊ธฐ ์๊ตฌ์ฌํญ๊ณผ ๊ตฌํ๋ด์ฉ์ด ๊ทธ๋๋ง ๊ฐ์ฅ ์ฝ๊ณ ๋จ์ํ ๊ตฌ์กฐ์๋ค. ์ด๋ก ์ผ๋ก๋ง ์๊ณ ์๋ ์์๊ณผ ์ธํฐํ์ด์ค๋ฅผ ์ค๋๋ง์ ์ง์ ์ฝ๋๋ก ์ ์ฉํ๋ ค๋ ์ด์ํ๋ค. ๋ด ์ฝ๋ ํผ๋๋ฐฑ ์์๋ค์ ๊ณตํต๋ถ๋ถ์ ์ต๋ํ ๋ถ๋ชจ AbstractFigure๋ก ๋์ด ์ฌ๋ ค๋ผ. ์๋ฅผ ๋ค์ด, ๋ ์ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ๋ก์ง์ ์์์์ ๋ชจ๋ ์ฌ์ฉํ๋ฏ๋ก ๋ถ๋ชจ๋ก ์ฌ๋ฆด ์ ์๋ค. List points๋ฅผ ์ฌ๋ฆฐ๊ฒ๋ ์ ํ ์ ํ. ๋ง์ฝ Line์ ์ฐ์ง์๊ณ , Triangle๊ณผ Rectangle๋ง ๊ณตํต์ผ๋ก ์ฌ์ฉํ๋ ๋ถ๋ถ์ด ์๋ค๋ฉด, ์๋ก์ด ๊ฐ์ฒด๋ฅผ ์์ฑํด ์์ํ๋ ๋ฐฉ๋ฒ๋ ๊ณ ๋ คํด๋ณผ๋ฒ. ์ฌ๊ณ ์ ๊ฐํ์ง ๋ง์. ๋น์์ ๋ด Input..
2์ฃผ์ฐจ ๋ฏธ์ : ๋ฌธ์์ด ๋ง์ ๊ณ์ฐ๊ธฐ, ์ฌ๋ค๋ฆฌ ๊ฒ์ https://github.com/woowacourse/java-ladder ํ๊ธฐ business logic์ด ๊ฝค ์ด๋ ค์ ๋ค. ์คํ๋ ค ์ดํ์ ์ขํ, ๋ก๋๊ฐ ํต์ฌ๋ก์ง์ ๋ ์ฌ์ ๋ค. ์ฝ์ง์์์ง๋ง, ๊ทธ๋งํผ ๊ทธ ๊ณผ์ ์์ ๊ณ ๋ฏผํ ๊ฒ๋ค์ด ๋ง์์ ๋์์ด ๋ง์ด ๋๊ฑฐ๊ฐ๋ค. ๋ด ์ฝ๋ ํผ๋๋ฐฑ https://www.matheus.ro/2018/01/29/clean-code-avoid-many-arguments-functions/ ์ฐ๋ฆฐ ์ธ์์ ๊ฐ์๋ฅผ max 3๊ฐ๋ก ๋ฌด์ธ์ ์ฝ์์ ํ๊ณ ์๋ค. ์ต๋ํ ์ค์ด๋๋ก ๋ ธ๋ ฅํ์. ์ ๋งํฌ๋ฅผ ๋ณด๋ฉด, ์ธ์์๋ฅผ ์ค์ด๋ 2๊ฐ์ง์ ๋์ฑ ์ด ๋ฑ์ฅํ๋ค. Extract method technique : ๋ณ๋ ๋ฉ์๋๋ก ์ถ์ถํ๋ค. Parameter Object :..
1์ฃผ์ฐจ ๋ฏธ์ : ๋ฌธ์์ด ๊ณ์ฐ๊ธฐ, ์๋์ฐจ ๊ฒฝ์ฃผ ๊ฒ์ https://github.com/woowacourse/java-racingcar ํ๊ธฐ ์๋์ฐจ ๊ฒฝ์ฃผ ํ๋ก๊ทธ๋จ์ ํ๋ฆฌ์ฝ์ค๋ ํ๋ฒ ๋ง๋ค์ด๋ด์ ์์ํ ์ค ์์์ผ๋, ํ์ดํ๋ก๊ทธ๋๋ฐ์ด ์ฒ์์ด๋ผ ์ด๋ ค์ ๋ค. ํ๋จ์ ๊ธฐ์ค์ด ๋ถ์กฑํ๋ค. ํด๋์ค๋ ์ด๋ ๊ฒ ๋ถ๋ฆฌํ๋๊ฒ์ด ๋ง๋์ง, ์ด ๋ฉ์๋๋ ์ฌ๊ธฐ์ ์์นํ๋๊ฒ์ด ๋ง๋์ง ๋ฑ, ๋ชจ๋ฅด๋ ๊ฒ์ด ์ฐธ ๋ง๊ฒ ๋๊ปด์ง๋ค. ์ด์ ์ฒซ์ฃผ๋ ์ ์ ๊ณต๋ถํ๋ฉด์ ๋์์ง๊ฒ์ผ๋ก ๊ธฐ๋ํ๋ค. ๋ด ์ฝ๋ ํผ๋๋ฐฑ ํจ์๊ฐ ํ๊ฐ์ง ์ผ๋ง ์ํ๋๋ก ์ต๋ํ ๋ฉ์๋๋ฅผ ๋ถ๋ฆฌํ๊ฒ ๊ฐ์๋๋ฐ๋, ์ฌ์ ํ ๋จ์์์๋ค. ํผ๋๋ฐฑ์ ๋ฐ๊ณ ๋ฆฌํฉํ ๋ง ์ํ Java) enum์ ํ์ฉํด if๋ฌธ ์์ ๊ธฐ (with Calculator ์์ ) View๋ฅผ ๋ถ๋ฆฌํ๋ ๊ฒ์ด ์ต์์น ์์๊ณ , ์ด๋ฒ์ฃผ์ ๊ฐ์ฅ ์ด๋ ค์ ๋ ๋ถ..
์ฐ์ํํ ํฌ์ฝ์ค๋ฅผ ์งํํ๋ฉฐ ์ ํ๊ฒ๋ Java ๊ฐ๋ฐ๊ด๋ จ ํผ๋๋ฐฑ๊ณผ ํ๋ค์ ๋ชจ์๋ณด์. ํ๋ก๊ทธ๋๋ฐ์ ๋น์ฐํ ์ ๋ต์ ์๋ค. ํ์ง๋ง ์ํฉ๋ง๋ค์ ์ต์ ์ ์์ผ๋๊น ์ด์ ๊ดํ ๋ด์ฉ๋ค์ ์์งํ์. ๋จธ๋ฆฌ์์ ๋ฌด์์์ ์ผ๋ก ์๊ธฐ๋, ์ํ์ง๊ธฐ๋ ํ๋ฏ๋ก ๋ฆฌ์คํ ํ๊ณ ๊ฐ๋ ํ๋ฒ์ฉ ์ฝ์ด๋ณด๋ฉฐ ์๊ธฐํ์. ๊ฐ๋ฐ์ด๋ฐ ์ฐ์ต์ ์ํด ๋จ์ ์ง์ด์งor๊ทน๋จ์ ์ธ ๋ช๊ฐ์ง ํญ๋ชฉ๋ค๋ ํฌํจ๋์ด ์๋ค. ๊ฐ์ฅ ์์ฃผ ๋ฃ๋ ๋ง์ด์ง๋ง, ๋น์ฐํ ์ด ๋ชจ๋ ๊ฒ๋ค์ด ์ ๋ต์ ์๋๋ค ๊ฐ๋ฐ ํผ๋๋ฐฑ โ ๊ธฐ๋ฅ ๋ชฉ๋ก์ ์ ์งํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๋ฅ๋ชฉ๋ก ๋จ์๋ณ๋ก commitํ๋ค. ๊ณ์ํด์ ์ ๋ฐ์ดํธํ๋ ์ด์์๋ ๋ฌธ์๋ฅผ ๋ง๋ค์. ๊ตฌํํ๋ค๋ณด๋ฉด ์ค๊ณ์ ๋ชฉ๋ก์ด ๊ณ์ํด์ ๋ฐ๋๋ค. ์ฒ์๋ถํฐ ์๋ฒฝํ ์์ฑํ๋ ค๋ ๋ถ๋ด์ ๊ฐ์ง๋ง์ ๋ฐ๋ผ์ ํด๋์ค์ ๋ฉ์๋ ๊ตฌ์ฑ๊น์ง ์์ธํ ์์ฑํ์ง ์๋๋ค. ์ญ์ ์์ฃผ ๋ฐ๋๊ธฐ ๋๋ฌธ. ๊ธฐ๋ฅ..
Strategy Pattern (์ ๋ต ํจํด) ํน์ ์ปจํ ์คํธ(Context)์์ ์๊ณ ๋ฆฌ์ฆ, ์ ๋ต(Strategy)์ ๋ณ๋๋ก ๋ถ๋ฆฌํ๋ ์ค๊ณ ๋ฐฉ๋ฒ ์์ ) ๊ณผ์ผ ๋งค์ฅ์ ํ ์ธ ์ ์ฑ ํ ๊ณผ์ผ ๋งค์ฅ์ ํ์ฌ 2๊ฐ์ง์ ํ ์ธ ์ ์ฑ ์ ์ด๊ณ ์๋ค. ๋งค์ฅ์ ์ฒ์์ผ๋ก ๋ค์ด์จ ์ฒซ ์๋์ ์ํ '์ฒซ ์๋ ํ ์ธ' ์ ์ฑ ์ ๋ ์๊ฐ๋ ์ ์ ๋๊ฐ ๋จ์ด์ง ๊ณผ์ผ์ ๋ํ '๋ ์ ์ ํ ๊ณผ์ผ ํ ์ธ' ์ ์ฑ ๋ฌผ๋ก ์ด 2๊ฐ์ง ์ธ์ ์ถ๊ฐ์ ์ผ๋ก ํ ์ธ ์ ์ฑ ์ด ๋ ์๊ธธ ๊ฐ๋ฅ์ฑ์ด ์๋ค. public class Calculator { public int calculate(boolean firstGuest. List items) { int sum = 0; for(Item item : items) { if(firstGuest) { sum += (int)(item.get..
Abstract Factory Pattern (์ถ์ ํฉํ ๋ฆฌ ํจํด) ๋นํ๊ธฐ๋ฅผ ์กฐ์ ํ๊ณ ๋ฏธ์ฌ์ผ์ ๋ฐ์ฌํด์ ์ ์ ๋ฏธ์ฌ์ผ๋ก ๋ง์ถ๋ ์ํ ๊ฒ์์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํ์. ๊ฒ์ ํ๋ ์ด๋ฅผ ์งํํ๋ Stage ํด๋์ค๋ ๋ช ๋จ๊ณ์ธ์ง์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ์ , ์ฅ์ ๋ฌผ, ๋ณด์ค๋ฅผ ์์ฑํด์ผ ํ๋ค. ์ด๋ฅผ ์ํ Stage ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ๋ค. ์ด ์ฝ๋์ ๋ฌธ์ ์ ์ ๋จ๊ณ๋ณ๋ก ์ , ์ฅ์ ๋ฌผ, ๋ณด์ค๋ฅผ ์์ฑํ๋ ๊ท์น์ด Stage ํด๋์ค์ ํฌํจ๋์ด ์๋ค๋ ๊ฒ์ด๋ค. ์๋ก์ด ์ class๊ฐ ์ถ๊ฐ๋๊ฑฐ๋, ๊ฐ ๋จ๊ณ์ ๋ณด์ค ์ข ๋ฅ๊ฐ ๋ฐ๋ ๋, ๋จ๊ณ๋ณ ์ ์์ฑ ๊ท์น์ด ๋ฌ๋ผ์ง ๊ฒฝ์ฐ ๋ฑ์ Stage ํด๋์ค๋ฅผ ํจ๊ป ์์ ํด์ผํ๊ณ , ์ฝ๋๋ํ ๋ณต์กํด์ง๋ค. ๋ฐ๋ผ์ Stage ํด๋์ค์์ ๊ฐ์ฒด์์ฑ ์ฑ ์์ ๋ถ๋ฆฌํ๋ค.**โ** ์ด๋ ์ฌ์ฉ๋๋ ํจํด์ด ์ถ์ ํฉํ ๋ฆฌ ํจํด์ด๋ค. Enemy..
Singleton pattern (์ฑ๊ธํด ํจํด) ์ด๋ค ํด๋์ค๊ฐ ์ต์ด ํ๋ฒ๋ง ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ (static), ๊ทธ ๋ฉ๋ชจ๋ฆฌ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๋์์ธ ํจํด ์์ฑ์๊ฐ ์ฌ๋ฌ๋ฒ ํธ์ถ๋์ด๋, ์ค์ ๋ก ์์ฑ๋๋ ๊ฐ์ฒด๋ ํ๋์ด๊ณ ์ต์ด์ ์์ฑํ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ค. ์ฆ, ๋จ ํ๋์ ์ธ์คํด์ค๋ฅผ ์์ฑํด ์ฌ์ฉํ๋ ํจํด ์ด์ , ์ฅ์ ํ๋ฒ์ new๋ก ๊ณ ์ ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ ์ ์๋ค. ์ฑ๊ธํค์ผ๋ก ๋ง๋ค์ด์ง ํด๋์ค์ ์ธ์คํด์ค๋ global์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๊ธฐ ์ฝ๋ค. DB Connection Pool (DBCP)์ฒ๋ผ ๊ณตํต๋ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํด ์ฌ์ฉํด์ผํ๋ ์ํฉ์์ ๋ง์ด ์ฌ์ฉ. ์๋๋ก์ด๋์ ๊ฒฝ์ฐ, ๊ฐ ์กํฐ๋นํฐ๋ ํด๋์ค ๋ณ๋ก ์ฃผ์ ํด๋์ค๋ฅผ ์ผ์ผํ ์ ๋ฌํ๊ธฐ ๋ฒ๊ฑฐ๋ก์ฐ๋ฏ..
- Total
- Today
- Yesterday
- ์นํดํน
- socket
- Java
- ํ๊ณ
- ๊ฐ๋ฐ์
- ํด์ธ์ฌํ
- mysql
- Android Studio
- git
- JPA
- graph
- Algorithm
- ์ฐ์ํ ํ ํฌ์ฝ์ค
- ๋ฆฌ๋ฒ์ฑ
- Stack
- OneToMany
- Vo
- Data Structure
- FRAGMENT
- dfs
- javascript
- ํ๋ก๊ทธ๋๋จธ์ค
- webhacking.kr
- brute-force
- C
- bfs
- Android
- queue
- reversing
- sort
| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |