Skip to content

dev-floor/javascript-subway-path

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿš‡ ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ & ๊ฒฝ๋กœ ์กฐํšŒ ๋ฏธ์…˜

๐Ÿš€ ์ดˆ๊ธฐ ์„ค์ • - ๊ณตํ†ต

  • ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์‹œ ์—ญ, ๋…ธ์„ , ๊ตฌ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐ ์„ค์ • ํ•ด์•ผ ํ•œ๋‹ค.
  • ๊ฑฐ๋ฆฌ์™€ ์†Œ์š” ์‹œ๊ฐ„์€ ์–‘์˜ ์ •์ˆ˜์ด๋ฉฐ ๋‹จ์œ„๋Š” km์™€ ๋ถ„์„ ์˜๋ฏธํ•œ๋‹ค.
  • ์•„๋ž˜์˜ ์‚ฌ์ „ ๋“ฑ๋ก ์ •๋ณด๋กœ ๋ฐ˜๋“œ์‹œ ์ดˆ๊ธฐ ์„ค์ •์„ ํ•œ๋‹ค.
1. ์ง€ํ•˜์ฒ ์—ญ์œผ๋กœ ๊ต๋Œ€, ๊ฐ•๋‚จ, ์—ญ์‚ผ, ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„, ์–‘์žฌ, ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ, ๋งค๋ด‰ ์—ญ ์ •๋ณด๊ฐ€ ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.
2. ์ง€ํ•˜์ฒ  ๋…ธ์„ ์œผ๋กœ 2ํ˜ธ์„ , 3ํ˜ธ์„ , ์‹ ๋ถ„๋‹น์„ ์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.
3. ๋…ธ์„ ์— ์—ญ์ด ์•„๋ž˜์™€ ๊ฐ™์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค.(์™ผ์ชฝ ๋์ด ์ƒํ–‰ ์ข…์ )
    - 2ํ˜ธ์„ : ๊ต๋Œ€ - ( 2km / 3๋ถ„ ) - ๊ฐ•๋‚จ - ( 2km / 3๋ถ„ ) - ์—ญ์‚ผ
    - 3ํ˜ธ์„ : ๊ต๋Œ€ - ( 3km / 2๋ถ„ ) - ๋‚จ๋ถ€ํ„ฐ๋ฏธ๋„ - ( 6km / 5๋ถ„ ) - ์–‘์žฌ - ( 1km / 1๋ถ„ ) - ๋งค๋ด‰
    - ์‹ ๋ถ„๋‹น์„ : ๊ฐ•๋‚จ - ( 2km / 8๋ถ„ ) - ์–‘์žฌ - ( 10km / 3๋ถ„ ) - ์–‘์žฌ์‹œ๋ฏผ์˜์ˆฒ

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

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

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

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

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

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

  • ํ•˜๋‚˜์˜ ์—ญ์€ ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋…ธ์„ ์— ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์—ญ๊ณผ ์—ญ ์‚ฌ์ด์— ์ƒˆ๋กœ์šด ์—ญ์ด ์ถ”๊ฐ€ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ตฌ๊ฐ„์€ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
    • ๊ต๋Œ€ - ๊ฐ•๋‚จ - ์—ญ์‚ผ ๊ตฌ๊ฐ„์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋‹ค๋ฉด ๊ต๋Œ€ - ์—ญ์‚ผ ๊ตฌ๊ฐ„์€ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ธฐ์กด์˜ ๊ตฌ๊ฐ„ ์‚ฌ์ด์— ์ƒˆ๋กœ์šด ๊ตฌ๊ฐ„์„ ๋“ฑ๋กํ•  ๊ฒฝ์šฐ ๊ตฌ๊ฐ„์„ ์ด์–ด์ค˜์•ผ ํ•œ๋‹ค.
    • ๊ต๋Œ€ - ์—ญ์‚ผ ๊ตฌ๊ฐ„์ด ๋“ฑ๋ก๋˜์–ด ์žˆ๋Š”๋ฐ ๊ต๋Œ€ - ๊ฐ•๋‚จ ๊ตฌ๊ฐ„์„ ๋“ฑ๋กํ•˜๋ฉด ๊ต๋Œ€ - ๊ฐ•๋‚จ - ์—ญ์‚ผ ๊ตฌ๊ฐ„์œผ๋กœ ์ˆ˜์ •๋˜์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰ ๊ฐ•๋‚จ - ์—ญ์‚ผ ๊ตฌ๊ฐ„์ด ์ž๋™์ ์œผ๋กœ ๋“ฑ๋ก๋œ๋‹ค.
    • ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€๋˜๋Š” ๊ตฌ๊ฐ„(๊ฐ•๋‚จ - ์—ญ์‚ผ)์€ ๊ฑฐ๋ฆฌ 2km, ์‹œ๊ฐ„ 3๋ถ„์œผ๋กœ ๊ณ ์ •๋˜์–ด ์ถ”๊ฐ€๋œ๋‹ค.
  • ๋…ธ์„ ์—์„œ ๊ฐˆ๋ž˜๊ธธ์€ ์ƒ๊ธธ ์ˆ˜ ์—†๋‹ค.

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

  • ๋…ธ์„ ์— ๋“ฑ๋ก๋œ ์—ญ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ข…์ ์„ ์ œ๊ฑฐํ•  ๊ฒฝ์šฐ ๋‹ค์Œ(๋˜๋Š” ์ด์ „) ์—ญ์ด ์ข…์ ์ด ๋œ๋‹ค.
  • ๋…ธ์„ ์— ํฌํ•จ๋œ ์—ญ์ด ๋‘๊ฐœ ์ดํ•˜์ผ ๋•Œ๋Š” ์—ญ์„ ์ œ๊ฑฐํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ตฌ๊ฐ„์„ ์ œ๊ฑฐํ•  ๊ฒฝ์šฐ ๊ธฐ์กด์— ๊ฑธ๋ ธ๋˜ ์‹œ๊ฐ„์„ ๊ตฌ๊ฐ„์— ์ ์šฉํ•œ๋‹ค.
    • ๊ต๋Œ€ - ( 2km / 3๋ถ„ ) - ๊ฐ•๋‚จ - ( 2km / 3๋ถ„ ) - ์—ญ์‚ผ ๊ตฌ๊ฐ„์—์„œ ๊ต๋Œ€ - ๊ฐ•๋‚จ ๊ตฌ๊ฐ„์„ ์‚ญ์ œํ•˜๋ฉด ๊ต๋Œ€ - (4km / 6๋ถ„) - ์—ญ์‚ผ ๊ตฌ๊ฐ„์œผ๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค.
  • ์ง์ ‘ ์—ฐ๊ฒฐ๋œ ๊ตฌ๊ฐ„์ด ์•„๋‹ ๊ฒฝ์šฐ(๊ตฌ๊ฐ„ ์‚ฌ์ด์— ๋‹ค๋ฅธ ์—ญ์ด ์กด์žฌํ•  ๊ฒฝ์šฐ) ์‚ญ์ œ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

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

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

๐Ÿ’ป ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๊ฒฐ๊ณผ - ๋…ธ์„ ๋„

์—ญ๊ด€๋ฆฌ

๋…ธ์„ ๊ด€๋ฆฌ

์œ„์™€ ๊ฐ™์€ ์Šคํƒ€์ผ์—์„œ ์ผ๋ถ€ ์ˆ˜์ •์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ƒํ–‰ ์ข…์ ๊ณผ ํ•˜ํ–‰ ์ข…์ , ๊ตฌ๊ฐ„ ๊ฑฐ๋ฆฌ์™€ ์†Œ์š” ์‹œ๊ฐ„๊นŒ์ง€ ์ž…๋ ฅํ•ด์„œ ๋…ธ์„ ์„ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

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

์œ„์™€ ๊ฐ™์€ ์Šคํƒ€์ผ์—์„œ ์ผ๋ถ€ ์ˆ˜์ •์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ฐ„ ๊ด€๋ฆฌ > ์ˆ˜์ •ํ•  ๋…ธ์„ ์„ ํด๋ฆญํ•˜๋ฉด ์—ญ๊ณผ ์ˆœ์„œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ์ƒํ–‰์—ญ, ํ•˜ํ–‰์—ญ, ๊ตฌ๊ฐ„ ๊ฑฐ๋ฆฌ, ์†Œ์š” ์‹œ๊ฐ„์„ ์ž…๋ ฅํ•˜์—ฌ ๋“ฑ๋กํ•ฉ๋‹ˆ๋‹ค.

์ƒํ–‰์—ญ ์„ ํƒ : ์—ญ ์„ ํƒ(ex. ์—ญ์‚ผ์—ญ)

ํ•˜ํ–‰์—ญ ์„ ํƒ : ์—ญ ์„ ํƒ(ex. ์ž ์‹ค์—ญ)

๊ตฌ๊ฐ„ ๊ฑฐ๋ฆฌ(km) : ๊ฑฐ๋ฆฌ ์ž…๋ ฅ(ex. 2)

์†Œ์š” ์‹œ๊ฐ„(๋ถ„) : ์‹œ๊ฐ„ ์ž…๋ ฅ(ex. 3)

์ƒํ–‰์—ญ, ํ•˜ํ–‰์—ญ ์„ ํƒ์‹œ์— ๋“œ๋กญ๋‹ค์šด ๋ฆฌ์ŠคํŠธ์˜ ํ˜•์‹์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ๊ฐ„ ๊ฑฐ๋ฆฌ, ์†Œ์š” ์‹œ๊ฐ„์˜ ๊ฒฝ์šฐ ์ˆœ์„œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ํ™”์‚ดํ‘œ๋กœ ์ˆซ์ž๋ฅผ ์กฐ์ ˆํ•˜๋Š” ํ˜•์‹์„ ๊ทธ๋Œ€๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๋…ธ์„ ๋„ ์ถœ๋ ฅ

์œ„์™€ ๊ฐ™์€ ์Šคํƒ€์ผ์—์„œ ์ผ๋ถ€ ์ˆ˜์ •์„ ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

๋…ธ์„ ์— ํ•ด๋‹นํ•˜๋Š” ๊ตฌ๊ฐ„ ์‚ฌ์ด์— ๊ตฌ๊ฐ„ ๊ฑฐ๋ฆฌ์™€ ์†Œ์š” ์‹œ๊ฐ„์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

2ํ˜ธ์„ 

  • ๊ต๋Œ€
    • 2km / 3๋ถ„
  • ๊ฐ•๋‚จ
    • 2km / 3๋ถ„
  • ์—ญ์‚ผ

๐Ÿš€ ๊ธฐ๋Šฅ ์š”๊ตฌ์‚ฌํ•ญ - ๊ฒฝ๋กœ ์กฐํšŒ

๊ฒฝ๋กœ ์กฐํšŒ ๊ธฐ๋Šฅ

  • ์ถœ๋ฐœ์—ญ๊ณผ ๋„์ฐฉ์—ญ์„ ์ž…๋ ฅ๋ฐ›์•„ ๊ฒฝ๋กœ๋ฅผ ์กฐํšŒํ•œ๋‹ค.
  • ๊ฒฝ๋กœ ์กฐํšŒ ์‹œ ์ด ๊ฑฐ๋ฆฌ, ์ด ์†Œ์š” ์‹œ๊ฐ„์„ ํ•จ๊ป˜ ์ถœ๋ ฅํ•œ๋‹ค.
  • ๊ฒฝ๋กœ ์กฐํšŒ ์‹œ ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๋˜๋Š” ์ตœ์†Œ ์‹œ๊ฐ„ ์˜ต์…˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค.

์˜ˆ์™ธ ์ฒ˜๋ฆฌ

  • ์ถœ๋ฐœ์—ญ๊ณผ ๋„์ฐฉ์—ญ์€ 2๊ธ€์ž ์ด์ƒ์ด์–ด์•ผ ํ•œ๋‹ค.
  • ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์—ญ์„ ์ถœ๋ฐœ์—ญ ๋˜๋Š” ๋„์ฐฉ์—ญ์œผ๋กœ ์ž…๋ ฅํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ฒฝ๋กœ ์กฐํšŒ ์‹œ ์ถœ๋ฐœ์—ญ๊ณผ ๋„์ฐฉ์—ญ์ด ๊ฐ™์„ ์ˆ˜ ์—†๋‹ค.
  • ๊ฒฝ๋กœ ์กฐํšŒ ์‹œ ์ถœ๋ฐœ์—ญ๊ณผ ๋„์ฐฉ์—ญ์ด ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์œผ๋ฉด ๊ฒฝ๋กœ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ทธ ์™ธ ์ •์ƒ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜ํ–‰๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ alert์œผ๋กœ ์—๋Ÿฌ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

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

๊ฒฝ๋กœ ์กฐํšŒ

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

๋ฉ”๋‰ด ๋ฒ„ํŠผ

  • ์—ญ ๊ด€๋ฆฌ button ํƒœ๊ทธ๋Š” #station-manager-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ๋…ธ์„  ๊ด€๋ฆฌ button ํƒœ๊ทธ๋Š” #line-manager-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ๊ตฌ๊ฐ„ ๊ด€๋ฆฌ button ํƒœ๊ทธ๋Š” #section-manager-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ ๊ด€๋ฆฌ button ํƒœ๊ทธ๋Š” #map-print-manager-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

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

  • ์ง€ํ•˜์ฒ  ์—ญ์„ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ๋Š” #station-name-input id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ์—ญ์„ ์ถ”๊ฐ€ํ•˜๋Š” button ํƒœ๊ทธ๋Š” #station-add-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ์—ญ์„ ์‚ญ์ œํ•˜๋Š” button ํƒœ๊ทธ๋Š” .station-delete-button class๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

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

  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ๋Š” #line-name-input id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์˜ ์ƒํ–‰ ์ข…์ ์„ ์„ ํƒํ•˜๋Š” select ํƒœ๊ทธ๋Š” #line-start-station-selector id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์˜ ํ•˜ํ–‰ ์ข…์ ์„ ์„ ํƒํ•˜๋Š” select ํƒœ๊ทธ๋Š” #line-end-station-selector id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์„ ์ถ”๊ฐ€ํ•˜๋Š” button ํƒœ๊ทธ๋Š” #line-add-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์„ ์‚ญ์ œํ•˜๋Š” button ํƒœ๊ทธ๋Š” .line-delete-button class๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

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

  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ์„ ์„ ํƒํ•˜๋Š” button ํƒœ๊ทธ๋Š” .section-line-menu-button class๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„์„ ์„ค์ •ํ•  ์—ญ select ํƒœ๊ทธ๋Š” #section-station-selector id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„์˜ ์ˆœ์„œ๋ฅผ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ๋Š” #section-order-input id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„์„ ๋“ฑ๋กํ•˜๋Š” button ํƒœ๊ทธ๋Š” #section-add-button id๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ง€ํ•˜์ฒ  ๊ตฌ๊ฐ„์„ ์ œ๊ฑฐํ•˜๋Š” button ํƒœ๊ทธ๋Š” .section-delete-button class๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

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

  • ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ ์ถœ๋ ฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด <div class="map"></div> ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ํƒœ๊ทธ ๋‚ด๋ถ€์— ๋…ธ์„ ๋„๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

โœ… ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”๊ตฌ์‚ฌํ•ญ - ๊ฒฝ๋กœ ์กฐํšŒ

๊ธธ์ฐพ๊ธฐ ๊ด€๋ จ ๊ธฐ๋Šฅ

  • ์ถœ๋ฐœ์—ญ์„ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ๋Š” departure-station-name-input id ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ๋„์ฐฉ์—ญ์„ ์ž…๋ ฅํ•˜๋Š” input ํƒœ๊ทธ๋Š” arrival-station-name-input id ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ์ตœ๋‹จ๊ฑฐ๋ฆฌ, ์ตœ์†Œ์‹œ๊ฐ„์„ ์„ ํƒํ•˜๋Š” radio๋Š” search-type name ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
    • radio option์˜ default ๊ฐ’์€ ์ตœ๋‹จ๊ฑฐ๋ฆฌ์ด๋‹ค.
  • ๊ธธ์ฐพ๊ธฐ ๋ฒ„ํŠผ์€ search-button id ์†์„ฑ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.
  • ๐Ÿ“ ๊ฒฐ๊ณผ๋Š” table์„ ์ด์šฉํ•˜์—ฌ ๋ณด์—ฌ์ค€๋‹ค.

โ—๏ธํžŒํŠธ

๋ฐ์ดํ„ฐ ์ดˆ๊ธฐํ™”

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘์— ํ•˜๋‚˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด data๋ฅผ exportํ•˜๊ณ , importํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

export const users = [
  {
    name: 'Alt'
  },
  {
    name: 'Jamie'
  },
  {
    name: 'Sony'
  }
]

export const courses = [
  {
    name: 'frontend',
  },
  {
    name: 'backend',
  },
  {
    name: 'iOS',
  },
  {
    name: 'Android',
  }
]

์œ„์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ exportํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋ฐ์ดํ„ฐ๋ฅผ import ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

import { users, courses } from './data.js'

function App() {
  this.users = users
  this.courses = courses
}

์ตœ๋‹จ ๊ฒฝ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • utils/Dijkstra.js ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๊ฐ„ํŽธํ•˜๊ฒŒ ์ตœ๋‹จ๊ฑฐ๋ฆฌ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ •์ (Vertex)๊ณผ ๊ฐ„์„ (Edge), ๊ทธ๋ฆฌ๊ณ  ๊ฐ€์ค‘์น˜ ๊ฐœ๋…์„ ์ด์šฉ
    • ์ •์ : ์ง€ํ•˜์ฒ ์—ญ
    • ๊ฐ„์„ : ์ง€ํ•˜์ฒ ์—ญ ์—ฐ๊ฒฐ์ •๋ณด
    • ๊ฐ€์ค‘์น˜: ๊ฑฐ๋ฆฌ or ์†Œ์š” ์‹œ๊ฐ„
  • ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ๊ธฐ์ค€ ์กฐํšŒ ์‹œ ๊ฐ€์ค‘์น˜๋ฅผ ๊ฑฐ๋ฆฌ๋กœ ์„ค์ •
  • ์ตœ์†Œ ์‹œ๊ฐ„ ๊ธฐ์ค€ ์กฐํšŒ ์‹œ ๊ฐ€์ค‘์น˜๋ฅผ ์‹œ๊ฐ„์œผ๋กœ ์„ค์ •
import Dijkstra from "./utils/Dijkstra.js";
const dijkstra = new Dijkstra()

//dijkstra.addEdge("์ถœ๋ฐœ์—ญ", "๋„์ฐฉ์—ญ", ๊ฑฐ๋ฆฌ ๋˜๋Š” ์‹œ๊ฐ„);
dijkstra.addEdge("V1", "V2", 2);
dijkstra.addEdge("V2", "V3", 2);
dijkstra.addEdge("V1", "V3", 100);

const result = dijkstra.findShortestPath("V1", "V3");
// result = ["V1", "V2", "V3"] 

ํ…Œ์ŠคํŠธ์„ค๋ช…

  • ์—ญ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ V1->V3 ๊ฒฝ๋กœ๊ฐ€ ์ตœ๋‹จ ๊ฒฝ๋กœ
  • ์—ญ ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ ๋ คํ•  ๊ฒฝ์šฐ V1->V3 ๊ฒฝ๋กœ์˜ ๊ฑฐ๋ฆฌ๋Š” 100km, V1->V2->V3 ๊ฒฝ๋กœ์˜ ๊ฑฐ๋ฆฌ๋Š” 4km์ด๋ฏ€๋กœ ์ตœ๋‹จ ๊ฒฝ๋กœ๋Š” V1->V2->V3

๊ธฐ์กด ์š”๊ตฌ์‚ฌํ•ญ

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž˜๋ชป๋œ ์ž…๋ ฅ ๊ฐ’์„ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ alert์„ ์ด์šฉํ•ด ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๊ณ , ์žฌ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.
  • ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(jQuery, Lodash ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ , ์ˆœ์ˆ˜ Vanilla JS๋กœ๋งŒ ๊ตฌํ˜„ํ•œ๋‹ค.
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ ์ปจ๋ฒค์…˜์„ ์ง€ํ‚ค๋ฉด์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•œ๋‹ค
  • indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ 3์ด ๋„˜์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค. 2๊นŒ์ง€๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด while๋ฌธ ์•ˆ์— if๋ฌธ์ด ์žˆ์œผ๋ฉด ๋“ค์—ฌ์“ฐ๊ธฐ๋Š” 2์ด๋‹ค.
    • ํžŒํŠธ: indent(์ธ๋ดํŠธ, ๋“ค์—ฌ์“ฐ๊ธฐ) depth๋ฅผ ์ค„์ด๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์€ ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๋ฅผ ๋ถ„๋ฆฌํ•˜๋ฉด ๋œ๋‹ค.
  • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)์˜ ๊ธธ์ด๊ฐ€ 15๋ผ์ธ์„ ๋„˜์–ด๊ฐ€์ง€ ์•Š๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
    • ํ•จ์ˆ˜(๋˜๋Š” ๋ฉ”์†Œ๋“œ)๊ฐ€ ํ•œ ๊ฐ€์ง€ ์ผ๋งŒ ์ž˜ ํ•˜๋„๋ก ๊ตฌํ˜„ํ•œ๋‹ค.
  • ๋ณ€์ˆ˜ ์„ ์–ธ์‹œ var ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค. const ์™€ let ์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • import ๋ฌธ์„ ์ด์šฉํ•ด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค.
  • template literal์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ์™€ html string์„ ๊ฐ€๋…์„ฑ ์ข‹๊ฒŒ ํ‘œํ˜„ํ•œ๋‹ค.

์ถ”๊ฐ€๋œ ์š”๊ตฌ์‚ฌํ•ญ

  • data์†์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ html ํƒœ๊ทธ์— ์—ญ, ๋…ธ์„ , ๊ตฌ๊ฐ„์˜ ์œ ์ผํ•œ ๋ฐ์ดํ„ฐ ๊ฐ’๋“ค์„ ๊ด€๋ฆฌํ•œ๋‹ค.
  • localStorage๋ฅผ ์ด์šฉํ•˜์—ฌ, ์ƒˆ๋กœ๊ณ ์นจํ•˜๋”๋ผ๋„ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์ž‘์—…ํ•œ ์ •๋ณด๋“ค์„ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

๐Ÿ“ ๋ฏธ์…˜ ์ €์žฅ์†Œ ๋ฐ ์ง„ํ–‰ ์š”๊ตฌ์‚ฌํ•ญ

  • ๋ฏธ์…˜์€ javascript-subway-path ์ €์žฅ์†Œ ๋ฅผ fork/cloneํ•ด ์‹œ์ž‘ํ•œ๋‹ค.
  • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์ „์— javascript-subway-path/docs/README.md ํŒŒ์ผ์— ๊ตฌํ˜„ํ•  ๊ธฐ๋Šฅ ๋ชฉ๋ก์„ ์ •๋ฆฌํ•ด ์ถ”๊ฐ€ํ•œ๋‹ค.
  • git์˜ commit ๋‹จ์œ„๋Š” ์•ž ๋‹จ๊ณ„์—์„œ README.md ํŒŒ์ผ์— ์ •๋ฆฌํ•œ ๊ธฐ๋Šฅ ๋ชฉ๋ก ๋‹จ์œ„๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค.
  • ํ”„๋ฆฌ์ฝ”์Šค ๊ณผ์ œ ์ œ์ถœ ๋ฌธ์„œ ์ ˆ์ฐจ๋ฅผ ๋”ฐ๋ผ ๋ฏธ์…˜์„ ์ œ์ถœํ•œ๋‹ค.

About

๐Ÿš‡ ์ง€ํ•˜์ฒ  ๋…ธ์„ ๋„ & ๊ฒฝ๋กœ ์กฐํšŒ ๋ฏธ์…˜์„ JavaScript๋กœ ์ง„ํ–‰ํ•˜๋Š” Repository

Topics

Resources

Stars

Watchers

Forks