๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP)

[OOP]๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

728x90

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

1. ์—ญ์‚ฌ

  • ๊ฐ์ฒด์ง€ํ–ฅ(OO, Object-Oriented) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ง€๋ฐฐ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์ž๋ฆฌ์žก๊ธฐ ์ด์ „์— ๋„๋ฆฌ ์‚ฌ์šฉ๋œ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” FORTRAN, COBOL ๋“ฑ์ด๋‹ค. C ์–ธ์–ด๋Š” 1972๋…„์— Bell Labs์˜ Dennis Ritchie๊ฐ€ ๊ฐœ ๋ฐœํ•œ ๋ฒ”์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด๋‹ค. C ํ‘œ์ค€์€ 1983๋…„์— ์‹œ์ž‘๋˜์–ด 1988๋…„์— ์ฒ˜์Œ์œผ๋กœ ํ‘œ์ค€ํ™”๋˜์—ˆ์œผ๋ฉฐ, ์ด๋ฅผ ANSI C ๋˜๋Š” ISO C๋ผ ํ•œ๋‹ค. ๊ทธ ์ดํ›„ C99, C11์œผ๋กœ ํ‘œ์ค€์ด ์ผ๋ถ€ ๊ฐœ์„ ๋˜์—ˆ๋‹ค. C ์–ธ์–ด๋Š” ์šด์˜์ฒด์ œ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด๋กœ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด์ง€๋งŒ ํ•˜๋“œ์›จ์–ด์™€ ๋ฐ€์ ‘ํ•œ ์ˆ˜์ค€์˜ ์š”์†Œ๋„ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. ๋˜ํ•œ ๋‹น์‹œ ๊ณ ๊ธ‰ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๋Š” ์‘์šฉ์ด ๋งค์šฐ ์ œํ•œ์ ์ด์—ˆ๋‹ค. ์ง€๊ธˆ์˜ 4์ฐจ ์‚ฐ์—…ํ˜๋ช…, ๋น…๋ฐ์ดํ„ฐ, ์ธ๊ณต์ง€๋Šฅ, ์‚ฌ๋ฌผ์ธํ„ฐ๋„ท(IoT, Internet of Things) ์‹œ๋Œ€์™€๋Š” ๋น„๊ตํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค. ์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ํŠน์„ฑ์€ ๊ทธ ์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ ๋ชฉ์ ๊ณผ ๊ฐœ๋ฐœ ์‹œ์ ์˜ ์ปดํ“จํŒ… ํ™˜๊ฒฝ์— ๋งŽ์€ ์˜ํ–ฅ์„ ๋ฐ›์„ ์ˆ˜๋ฐ–์— ์—†๋‹ค.
  • ์ •๋ณดํ™” ์‹œ๋Œ€์˜ ๋ฐœ์ „์— ๋”ฐ๋ผ ํ•จ์ˆ˜๊ฐ€ ์ค‘์‹ฌ์ด ๋˜๋Š” ๋ชจ๋“ˆํ™” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ๊ทธ ์ดํ›„ ์š”๊ตฌ๋œ ๋‹ค์–‘ํ•œ ์‘์šฉ์„ ๊ฐœ ๋ฐœํ•˜๋Š”๋ฐ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ๋˜ํ•œ ์ธ๊ฐ„์ด ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ์„ ๊ทธ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์—†์—ˆ๊ณ , ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ž์‹ ์˜ ๋จธ๋ฆฌ์†์— ์žˆ๋Š” ์ƒ๊ฐ์„ ์ปดํ“จํ„ฐ์˜ ์‹œ๊ฐ์œผ๋กœ ์ „ํ™˜ํ•ด์•ผ ํ•˜๋Š” ์–ด๋ ค์›€๋„ ์žˆ์—ˆ๋‹ค. ์ด์— ๋ณดํ†ต ์‚ฌ๋žŒ์ด ์ƒ๊ฐํ•˜๋Š” ์‹œ๊ฐ ์„ ๊ทธ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ง€๋ฐฐ์ ์ธ ๊ฐœ๋ฐœ ํŒจ๋Ÿฌ๋‹ค์ž„์ด ๋˜์—ˆ๋‹ค. 90๋…„๋Œ€ ์ดˆ๋ฐ˜ ๋งˆ์ดํฌ๋กœ์†Œํ”„ ์œˆ๋„์šฐ ์‘์šฉ์˜ ๊ฐœ๋ฐœ ๋ถ๊ณผ ํ•จ๊ป˜ ๋‘๊ฐ์„ ๋‚˜ํƒ€๋‚ด๊ธฐ ์‹œ์ž‘ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ์ง€๋งŒ 30๋…„์ด ์ง€๋‚œ ์ง€๊ธˆ๋„ ๋†€๋ž๊ฒŒ ๋ฐœ์ „ํ•œ IT ํ™˜๊ฒฝ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ์ง€๋ฐฐ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„์œผ๋กœ ์ž๋ฆฌ ์žก๊ณ  ์žˆ๋‹ค.

2. ๊ฐ์ฒด์ง€ํ–ฅ ํŠน์ง•

์šฐ๋ฆฌ๋Š” ์–ด๋–ค ์‚ฌ๋ฌผ์„ ์ธ์‹ํ•  ๋•Œ ๊ทธ ์‚ฌ๋ฌผ์˜ ํŠน์„ฑ๊ณผ ๊ทธ ์‚ฌ๋ฌผ์„ ๊ฐ€์ง€๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ํŒŒ์•…ํ•˜๊ฒŒ ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋ฌธ(door)์ด ์žˆ์œผ๋ฉด ๋ฌธ์˜ ํฌ๊ธฐ, ๋ฌธ์˜ ์œ„์น˜, ๋ฌธ์˜ ํ˜„์žฌ ์ƒํƒœ์™€ ๊ฐ™์€ ํŠน์„ฑ๊ณผ ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ ์—ด๊ธฐ, ๋ฌธ ๋‹ซ๊ธฐ์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ธ์‹ํ•˜๊ฒŒ ๋œ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋ฌธ์˜ ํŠน์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์šฐ๋ฆฌ๊ฐ€ ์‹ค์ œ ์ธ์‹ํ•˜๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๊ฒŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

2.1 ๊ฐ์ฒด์™€ ํด๋ž˜์Šค

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ์€ ๊ฐ์ฒด(object)์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์–ด๋–ค ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด์ง€ํ–ฅ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•  ๊ฒฝ์šฐ ์ด ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋ชจ๋ธ๋งํ•ด์•ผ ํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์ฐพ์•„์•ผ ํ•˜๋ฉฐ, ์ด๋“ค ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ž˜ ๊ตฌ์กฐํ™”ํ•˜์—ฌ์•ผ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์€ ์ด๋“ค ๊ฐ์ฒด๋ฅผ ํ•„์š”ํ•œ ์‹œ์ ์— ์ƒ์„ฑํ•˜์—ฌ ์„œ๋กœ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๋™์ž‘๋˜๋„๋ก ํ•ด์•ผ ํ•œ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ๊ฐœ๋…์—์„œ ๊ฐ์ฒด๋Š” ์ƒํƒœ, ํ–‰์œ„, ์‹๋ณ„์ž, 3๊ฐ€์ง€ ์š”์†Œ๋ฅผ ๊ฐ€์ง„๋‹ค. ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์ƒํƒœ์ด๋‹ค. ๋™์ผํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ฐ ๊ฐ์ฒด์˜ ์ƒํƒœ๋Š” ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฌ๋Ÿฌ ๊ฐ•์•„์ง€๊ฐ€ ์žˆ์œผ๋ฉด ์–ด๋–ค ๊ฐ•์•„์ง€๋Š” ๋ฐฐ๊ฐ€ ๊ณ ํ”Œ ์ˆ˜ ์žˆ๊ณ , ์–ด๋–ค ๊ฐ•์•„์ง€๋Š” ํ˜„์žฌ ์กธ๋ฆด ์ˆ˜ ์žˆ๋‹ค.
๊ฐ์ฒด๋Š” ํ˜„์žฌ ์ƒํƒœ์— ๋”ฐ๋ผ ํ–‰์œ„์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ด์ „ ์„ค๋ช…์—์„œ ๊ฐ•์•„์ง€์—๊ฒŒ ๊ฐ„์‹์„ ์ฃผ๋”๋ผ๋„ ๊ฐ•์•„์ง€ ์˜ ์ƒํƒœ์— ๋”ฐ๋ผ ๊ฐ„์‹์„ ๋จน์ง€ ์•Š์„ ์ˆ˜ ์žˆ๊ณ , ๋จน๋Š” ์–‘๋„ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋‹ค. ์ด๊ฒƒ์ด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํ•ต์‹ฌ์ด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ์ฒด์˜ ํ–‰์œ„๋Š” ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์ด์šฉํ•ด์•ผ ํ•˜๋ฉฐ, ์ƒํƒœ๋ฅผ ์ด์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ํ–‰์œ„๋กœ ๋ถ„๋ฅ˜ํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๊ณ , ํ•œ ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ ์‹๋ณ„์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋ณ€์ˆ˜๊ฐ€ ์‹๋ณ„์ž ์—ญํ• ์„ ํ•œ๋‹ค.

2.2 ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋ง๋˜๋Š” ๊ฒƒ

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•œ๋‹ค๊ณ  ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์š”์†Œ(๋ฐ์ดํ„ฐ์™€ ๊ธฐ๋Šฅ)๋ฅผ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ ๋งํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜์˜€์„ ๋•Œ ํšจ๊ณผ์ ์ธ ๊ฒƒ๋งŒ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•ด์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํ•™์ƒ, ๊ฐ•์•„์ง€, ๋ฌธ๊ณผ ๊ฐ™์€ ์ผ์ƒ ๊ฐœ์ฒด๋ฅผ ์žˆ๋Š” ๊ทธ๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ ๋‚ด์— ๋ชจ๋ธ๋งํ•ด์•ผ ํ•˜๋ฉด ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํšจ๊ณผ์ ์ด๋‹ค. ์ผ์ƒ ๊ฐœ์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ์กด C์—์„œ ๊ตฌ์กฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•œ ๋ณตํ•ฉํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ์ด๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ๋Š” ์ด๋ฅผ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•œ๋‹ค. ์ด๋•Œ ๋ฐ์ดํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘, ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋กœ ํ•จ๊ป˜ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค.
ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ๋„ ๊ธฐ๋Šฅ์˜ ํŠน์„ฑ์— ๋”ฐ๋ผ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•  ์ˆ˜ ์žˆ๋‹ค. ํŠนํžˆ ๊ธฐ๋Šฅ์ด ๊ณผ๊ฑฐ์— ๋Œ€ํ•œ ๊ธฐ์–ต์ด ํ•„์š”ํ•˜๋ฉด ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํšจ๊ณผ์ ์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๊ณผ๊ฑฐ์— ๋Œ€ํ•œ ๊ธฐ์–ต์ด๋ž€ ํ•ด๋‹น ๊ธฐ๋Šฅ์˜ ์‚ฌ์šฉ ์ด๋ ฅ์ด๋‚˜ ์ด์ „์— ์–ด๋””๊นŒ์ง€ ์ˆ˜ํ–‰ํ•˜์˜€๋Š”์ง€๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ฃผ์–ด์ง„ ๋ฌธ์žฅ์—์„œ ๊ฐ ๋‹จ์–ด๋ฅผ ๋ถ„์„ํ•˜๋Š” ๊ธฐ๋Šฅ์ธ๋ฐ, ์š”์ฒญํ•  ๋•Œ๋งˆ๋‹ค ๋ฌธ์žฅ์„ ๊ตฌ์„ฑํ•˜๋Š” ๊ฐ ๋‹จ์–ด๋ฅผ ์ฐจ๋ก€๋กœ ์ฃผ์–ด์•ผ ํ•˜๋ฉด ์ง€๊ธˆ๊นŒ์ง€ ์ฒ˜๋ฆฌํ•œ ์œ„์น˜์™€ ๋ฌธ์žฅ์„ ๊ธฐ์–ตํ•˜๊ณ  ์žˆ์–ด์•ผ ํ•˜๋ฏ€๋กœ ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ๊ธฐ๋Šฅ์ด๋‹ค.
๋ณดํ†ต ์ธ์ž๋งŒ ๊ฐ€์ง€๊ณ  ๊ธฐ๋Šฅ์„ ์˜จ์ „ํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋ฉด ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์–˜๋ฅผ ๋“ค์–ด sqrt, pow์™€ ๊ฐ™์€ ์ˆ˜ํ•™ ํ•จ์ˆ˜๋Š” ๊ณผ๊ฑฐ์— ๋Œ€ํ•œ ๊ธฐ์–ต์ด ํ•„์š” ์—†๊ณ  ์ธ์ž๋งŒ ๊ฐ€์ง€๊ณ  ํ•„์š”ํ•œ ๊ณ„์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋กœ ๋ชจ๋ธ๋งํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋˜ ๋‹ค๋ฅธ ์˜ˆ๋กœ ๋ฌธ์ž์—ด์—์„œ ํŠน์ • ๋ฌธ์ž์˜ ์ฒซ ๋ฒˆ์งธ ๋“ฑ์žฅ ์œ„์น˜๋ฅผ ์ฐพ๋Š” ๊ธฐ๋Šฅ์„ ์ƒ๊ฐํ•˜์—ฌ ๋ณด์ž. ์ด ๊ธฐ๋Šฅ๋„ ๋ฌธ์ž์—ด๊ณผ ๋ฌธ์ž๋ฅผ ์ธ์ž๋กœ ๋ฐ›์•„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

 class StringUtill{
     public static int indexOf(STring str, char c) {}
 }

ํ•˜์ง€๋งŒ ์ธ์ž ์ค‘ ๋ณตํ•ฉ ํƒ€์ž…์ด ์žˆ์œผ๋ฉด ๊ทธ ์ธ์ž๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ธฐ๋Šฅ์„ ํ˜ธ์ถœํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ์€ ๋ฐ์ด ํ„ฐ์™€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํ•˜๋‚˜์˜ ํ‹€๋กœ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ธก๋ฉด์—์„œ indexOf ๊ธฐ๋Šฅ์„ ๋ฌธ์ž์—ด์˜ ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
์ธ์ž๋งŒ ๊ฐ€์ง€๊ณ  ์˜จ์ „ํžˆ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋”๋ผ๋„ ์ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ ํ•„์š”ํ•œ ์ธ์ž ์ค‘ ํ•˜๋‚˜๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ๊ทธ ์ธ์ž ํƒ€์ž…์˜ ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ํ•ด๋‹น ์ธ์ž๋Š” ํด๋ž˜์Šค๋กœ ์ •์˜ํ•˜๊ธฐ ์ ํ•ฉํ•œ ๋ณตํ•ฉํƒ€์ž…์ด๊ฑฐ๋‚˜ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์ƒˆ ํƒ€์ž…์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ํ•„์š”ํ•œ ์ธ์ž3์ด์–ด์•ผ ํ•œ๋‹ค.
๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ค‘ ์–ด๋А ๊ฒƒ์ด ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์ธ์ง€๋Š” ๋‹จ์ •ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ์–ธ์–ด์˜ ํŠน์„ฑ, ํƒ€์ž…์˜ ํŠน์„ฑ, ์ฝ”๋“œ ์ค‘๋ณต์ด๋ผ๋Š” ์ธก๋ฉด์—์„œ ์‚ดํŽด๋ณด์•„์•ผ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด indexOf๊ฐ€ ๋งŽ์€ ๋ณตํ•ฉํƒ€์ž…์—์„œ ๋™์ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์ด๋ฉด ๊ฐ ํƒ€์ž…๋งˆ๋‹ค ์ค‘๋ณตํ•˜์—ฌ ์ •์˜ํ•˜์ง€ ์•Š๊ณ  ๋ฒ”์šฉ ํ•จ์ˆ˜๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ๊ณผ์ ์ด๋‹ค.