/java-subway-map-precourse

๐Ÿš‡ 3๊ธฐ ํ”„๋ฆฌ์ฝ”์Šค - ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋Š” Repository

Primary LanguageJavaMIT LicenseMIT

์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ๋ฏธ์…˜

  • ์ง€ํ•˜์ฒ  ์—ญ๊ณผ ๋…ธ์„ ์„ ๊ด€๋ฆฌํ•˜๋Š” ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.

๐Ÿš€ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ

์ดˆ๊ธฐ ์„ค์ •

  • ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ์—ญ, ๋…ธ์„  ๋“ฑ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๋ฏธ๋ฆฌ ์…‹ํŒ…ํ•  ์ˆ˜ ์žˆ๋‹ค.

์•„๋ž˜์˜ ์‚ฌ์ „ ๋“ฑ๋ก ์ •๋ณด๋กœ ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐ ์„ค์ •์„ ํ•˜๊ธฐ

 1. ์ง€ํ•˜์ฒ ์—ญ์œผ๋กœ ๊ต๋Œ€์—ญ, ๊ฐ•๋‚จ์—ญ, ์—ญ์‚ผ์—ญ, ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„์—ญ, ์–‘์žฌ์—ญ, ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ์—ญ, ๋งค๋ด‰์—ญ์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.
 2. ์ง€ํ•˜์ฒ  ๋…ธ์„ ์œผ๋กœ 2ํ˜ธ์„ , 3ํ˜ธ์„ , ์‹ ๋ถ„๋‹น์„ ์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.
 3. ๋…ธ์„ ์— ์—ญ์ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.(์™ผ์ชฝ ๋์ด ์ƒํ–‰ ์ข…์ )
   - 2ํ˜ธ์„ : ๊ต๋Œ€์—ญ - ๊ฐ•๋‚จ์—ญ - ์—ญ์‚ผ์—ญ
   - 3ํ˜ธ์„ : ๊ต๋Œ€์—ญ - ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„์—ญ - ์–‘์žฌ์—ญ - ๋งค๋ด‰์—ญ
   - ์‹ ๋ถ„๋‹น์„ : ๊ฐ•๋‚จ์—ญ - ์–‘์žฌ์—ญ - ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ์—ญ

์ง€ํ•˜์ฒ  ์—ญ ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์ง€ํ•˜์ฒ  ์—ญ์„ ๋“ฑ๋กํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค. (๋‹จ, ๋…ธ์„ ์— ๋“ฑ๋ก๋œ ์—ญ์€ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค)
  • ์ค‘๋ณต๋œ ์ง€ํ•˜์ฒ  ์—ญ ์ด๋ฆ„์ด ๋“ฑ๋ก๋  ์ˆ˜ ์—†๋‹ค.
  • ์ง€ํ•˜์ฒ  ์—ญ ์ด๋ฆ„์€ 2๊ธ€์ž ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
  • ์ง€ํ•˜์ฒ  ์—ญ์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง€ํ•˜์ฒ  ๋…ธ์„  ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์„ ๋“ฑ๋กํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ค‘๋ณต๋œ ์ง€ํ•˜์ฒ  ๋…ธ์„  ์ด๋ฆ„์ด ๋“ฑ๋ก๋  ์ˆ˜ ์—†๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„  ์ด๋ฆ„์€ 2๊ธ€์ž ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
  • ๋…ธ์„  ๋“ฑ๋ก ์‹œ ์ƒํ–‰ ์ข…์ ์—ญ๊ณผ ํ•˜ํ–‰ ์ข…์ ์—ญ์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ

  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์— ๊ตฌ๊ฐ„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋…ธ์„ ์— ์—ญ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์—ญ๊ณผ ์—ญ์‚ฌ์ด๋ฅผ ๊ตฌ๊ฐ„์ด๋ผ ํ•˜๊ณ  ์ด ๊ตฌ๊ฐ„๋“ค์˜ ๋ชจ์Œ์ด ๋…ธ์„ ์ด๋‹ค.
  • ํ•˜๋‚˜์˜ ์—ญ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ธ์„ ์— ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์—ญ๊ณผ ์—ญ ์‚ฌ์ด์— ์ƒˆ๋กœ์šด ์—ญ์ด ์ถ”๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ๋…ธ์„ ์—์„œ ๊ฐˆ๋ž˜๊ธธ์€ ์ƒ๊ธธ ์ˆ˜ ์—†๋‹ค.

์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„ ์‚ญ์ œ ๊ธฐ๋Šฅ

  • ๋…ธ์„ ์— ๋“ฑ๋ก๋œ ์—ญ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ข…์ ์„ ์ œ๊ฑฐํ•  ๊ฒฝ์šฐ ๋‹ค์Œ ์—ญ์ด ์ข…์ ์ด ๋œ๋‹ค.
  • ๋…ธ์„ ์— ํฌํ•จ๋œ ์—ญ์ด ๋‘๊ฐœ ์ดํ•˜์ผ ๋•Œ๋Š” ์—ญ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค.

์ง€ํ•˜์ฒ  ๋…ธ์„ ์— ๋“ฑ๋ก๋œ ์—ญ ์กฐํšŒ ๊ธฐ๋Šฅ

  • ๋…ธ์„ ์˜ ์ƒํ–‰ ์ข…์ ๋ถ€ํ„ฐ ํ•˜ํ–‰ ์ข…์ ๊นŒ์ง€ ์—ฐ๊ฒฐ๋œ ์ˆœ์„œ๋Œ€๋กœ ์—ญ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.

โœ๐Ÿป ์ž…์ถœ๋ ฅ ์š”๊ตฌ์‚ฌํ•ญ

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ ์˜ˆ์‹œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ž…์ถœ๋ ฅ์„ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ๊ธฐ๋Œ€ํ•˜๋Š” ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋Š” [INFO]๋ฅผ ๋ถ™์—ฌ์„œ ์ถœ๋ ฅํ•œ๋‹ค. ์ถœ๋ ฅ๊ฐ’์˜ ํ˜•์‹์€ ์˜ˆ์‹œ์™€ ๋™์ผํ•˜๊ฒŒ ํ•œ๋‹ค.
  • ์—๋Ÿฌ ๋ฐœ์ƒ ์‹œ [ERROR]๋ฅผ ๋ถ™์—ฌ์„œ ์ถœ๋ ฅํ•œ๋‹ค. (์—๋Ÿฌ์˜ ๋ฌธ๊ตฌ๋Š” ์ž์œ ๋กญ๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค.)

๐Ÿ’ป ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์‹คํ–‰ ๊ฒฐ๊ณผ

์—ญ ๊ด€๋ฆฌ

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ์—ญ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ์—ญ ๋“ฑ๋ก
2. ์—ญ ์‚ญ์ œ
3. ์—ญ ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ๋“ฑ๋กํ•  ์—ญ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
์ž ์‹ค์—ญ

[INFO] ์ง€ํ•˜์ฒ  ์—ญ์ด ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ์—ญ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ์—ญ ๋“ฑ๋ก
2. ์—ญ ์‚ญ์ œ
3. ์—ญ ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
3

## ์—ญ ๋ชฉ๋ก
[INFO] ๊ต๋Œ€์—ญ 
[INFO] ๊ฐ•๋‚จ์—ญ
[INFO] ์—ญ์‚ผ์—ญ
[INFO] ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„์—ญ
[INFO] ์–‘์žฌ์—ญ
[INFO] ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ์—ญ
[INFO] ๋งค๋ด‰์—ญ
[INFO] ์ž ์‹ค์—ญ

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ์—ญ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ์—ญ ๋“ฑ๋ก
2. ์—ญ ์‚ญ์ œ
3. ์—ญ ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ์‚ญ์ œํ•  ์—ญ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
์ž ์‹ค์—ญ

[INFO] ์ง€ํ•˜์ฒ  ์—ญ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

...

๋…ธ์„  ๊ด€๋ฆฌ


...

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ๋…ธ์„  ๊ด€๋ฆฌ ํ™”๋ฉด
1. ๋…ธ์„  ๋“ฑ๋ก
2. ๋…ธ์„  ์‚ญ์ œ
3. ๋…ธ์„  ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ๋“ฑ๋กํ•  ๋…ธ์„  ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
1ํ˜ธ์„ 

## ๋“ฑ๋กํ•  ๋…ธ์„ ์˜ ์ƒํ–‰ ์ข…์ ์—ญ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
๊ฐ•๋‚จ์—ญ

## ๋“ฑ๋กํ•  ๋…ธ์„ ์˜ ํ•˜ํ–‰ ์ข…์ ์—ญ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
์ž ์‹ค์—ญ

[INFO] ์ง€ํ•˜์ฒ  ๋…ธ์„ ์ด ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ๋…ธ์„  ๊ด€๋ฆฌ ํ™”๋ฉด
1. ๋…ธ์„  ๋“ฑ๋ก
2. ๋…ธ์„  ์‚ญ์ œ
3. ๋…ธ์„  ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
3

## ๋…ธ์„  ๋ชฉ๋ก
[INFO] 2ํ˜ธ์„ 
[INFO] 3ํ˜ธ์„ 
[INFO] ์‹ ๋ถ„๋‹น์„ 
[INFO] 1ํ˜ธ์„ 

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ๋…ธ์„  ๊ด€๋ฆฌ ํ™”๋ฉด
1. ๋…ธ์„  ๋“ฑ๋ก
2. ๋…ธ์„  ์‚ญ์ œ
3. ๋…ธ์„  ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ์‚ญ์ œํ•  ๋…ธ์„  ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
1ํ˜ธ์„ 

[INFO] ์ง€ํ•˜์ฒ  ๋…ธ์„ ์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

...

๊ตฌ๊ฐ„ ๊ด€๋ฆฌ

  • ์ˆœ์„œ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
...

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
3

## ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ๊ตฌ๊ฐ„ ๋“ฑ๋ก
2. ๊ตฌ๊ฐ„ ์‚ญ์ œ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ๋…ธ์„ ์„ ์ž…๋ ฅํ•˜์„ธ์š”.
2ํ˜ธ์„ 

## ์—ญ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
์ž ์‹ค์—ญ

## ์ˆœ์„œ๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”.
2

[INFO] ๊ตฌ๊ฐ„์ด ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
3

## ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ๊ตฌ๊ฐ„ ๋“ฑ๋ก
2. ๊ตฌ๊ฐ„ ์‚ญ์ œ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
2

## ์‚ญ์ œํ•  ๊ตฌ๊ฐ„์˜ ๋…ธ์„ ์„ ์ž…๋ ฅํ•˜์„ธ์š”.
2ํ˜ธ์„ 

## ์‚ญ์ œํ•  ๊ตฌ๊ฐ„์˜ ์—ญ์„ ์ž…๋ ฅํ•˜์„ธ์š”.
์ž ์‹ค์—ญ

[INFO] ๊ตฌ๊ฐ„์ด ์‚ญ์ œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

...

์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
4

## ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„
[INFO] 2ํ˜ธ์„ 
[INFO] ---
[INFO] ๊ต๋Œ€์—ญ
[INFO] ๊ฐ•๋‚จ์—ญ
[INFO] ์—ญ์‚ผ์—ญ

[INFO] 3ํ˜ธ์„ 
[INFO] ---
[INFO] ๊ต๋Œ€์—ญ
[INFO] ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„์—ญ
[INFO] ์–‘์žฌ์—ญ
[INFO] ๋งค๋ด‰์—ญ

[INFO] ์‹ ๋ถ„๋‹น์„ 
[INFO] ---
[INFO] ๊ฐ•๋‚จ์—ญ
[INFO] ์–‘์žฌ์—ญ
[INFO] ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ์—ญ

์—๋Ÿฌ ์ถœ๋ ฅ ์˜ˆ์‹œ

## ๋ฉ”์ธ ํ™”๋ฉด
1. ์—ญ ๊ด€๋ฆฌ
2. ๋…ธ์„  ๊ด€๋ฆฌ
3. ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ
4. ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ
Q. ์ข…๋ฃŒ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
5

[ERROR] ์„ ํƒํ•  ์ˆ˜ ์—†๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ์—ญ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ์—ญ ๋“ฑ๋ก
2. ์—ญ ์‚ญ์ œ
3. ์—ญ ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.
1

## ๋“ฑ๋กํ•  ์—ญ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜์„ธ์š”.
๊ฐ•๋‚จ์—ญ

[ERROR] ์ด๋ฏธ ๋“ฑ๋ก๋œ ์—ญ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค. 

## ์—ญ ๊ด€๋ฆฌ ํ™”๋ฉด
1. ์—ญ ๋“ฑ๋ก
2. ์—ญ ์‚ญ์ œ
3. ์—ญ ์กฐํšŒ
B. ๋Œ์•„๊ฐ€๊ธฐ

## ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์„ ํƒํ•˜์„ธ์š”.

...


๐ŸŽฑ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ

  • ์ž๋ฐ” ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€ํ‚ค๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•œ๋‹ค.
    • ๊ธฐ๋ณธ์ ์œผ๋กœ Google Java Style Guide์„ ์›์น™์œผ๋กœ ํ•œ๋‹ค.
    • ๋‹จ, ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” '2 spaces'๊ฐ€ ์•„๋‹Œ '4 spaces'๋กœ ํ•œ๋‹ค.
  • indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค.
    • ํžŒํŠธ: indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.
  • 3ํ•ญ ์—ฐ์‚ฐ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
  • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
    • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
  • else ์˜ˆ์•ฝ์–ด๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
    • ํžŒํŠธ: if ์กฐ๊ฑด์ ˆ์—์„œ ๊ฐ’์„ returnํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ํ•˜๋ฉด else๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค.
    • else๋ฅผ ์“ฐ์ง€ ๋ง๋ผ๊ณ  ํ•˜๋‹ˆ switch/case๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ switch/case๋„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ์—์„œ ๋ณ„๋„๋กœ ๋ณ€๊ฒฝ ๋ถˆ๊ฐ€ ์•ˆ๋‚ด๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ํŒŒ์ผ ์ˆ˜์ •๊ณผ ํŒจํ‚ค์ง€ ์ด๋™์„ ์ž์œ ๋กญ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์˜ˆ์™ธ ์ƒํ™ฉ ์‹œ ์—๋Ÿฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•œ๋‹ค. ๋‹จ, ์—๋Ÿฌ ๋ฌธ๊ตฌ๋Š” [ERROR] ๋กœ ์‹œ์ž‘ํ•ด์•ผ ํ•œ๋‹ค.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - Application

  • Application ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
  • Application์˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.
public class Application {
    public static void main(String[] args) {
        ...
    }
}

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - Station, Line

  • Station, Line ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ง€ํ•˜์ฒ ์—ญ๊ณผ ๋…ธ์„ ์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ œ๊ณตํ•˜๋Š” ๊ฐ ํด๋ž˜์Šค์˜ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์—†๋‹ค.
  • ํ•„๋“œ(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜)์ธ name์˜ ์ ‘๊ทผ ์ œ์–ด์ž private์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ฐ€๋Šฅํ•˜๋ฉด setter ๋ฉ”์†Œ๋“œ(ex. setXXX)๋ฅผ ์ถ”๊ฐ€ํ•˜์ง€ ์•Š๊ณ  ๊ตฌํ˜„ํ•œ๋‹ค.
public class Station {
    private String name;

    public Station(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    // ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„
}

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - StationRepository, LineRepository

  • Station๊ณผ Line์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” StationRepository, LineRepository๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ํ•„์š” ์‹œ StationRepository, LineRepository ์ด ์™ธ ์ถ”๊ฐ€๋กœ Repository๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ์ถ”๊ฐ€๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฐ์ฒด์— ๋Œ€ํ•ด์„œ XXXRepository ๋„ค์ด๋ฐ์œผ๋กœ ์ €์žฅ ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด๋“ค์˜ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ XXXRepository ํด๋ž˜์Šค๋ฅผ ํ™œ์šฉํ•ด ์ €์žฅ ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
  • ํ•„์š”์— ๋”ฐ๋ผ ์ž์œ ๋กญ๊ฒŒ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
public class StationRepository {
    private static final List<Station> stations = new ArrayList<>();

    public static List<Station> stations() {
        return Collections.unmodifiableList(stations);
    }

    public static void addStation(Station station) {
        stations.add(station);
    }

    public static boolean deleteStation(String name) {
        return stations.removeIf(station -> Objects.equals(station.getName(), name));
    }
}

๐Ÿ“ˆ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ


๐Ÿ“ License

This project is MIT licensed.