[TIL] #9 Team Project - Kiosk 2 (despaired...๐Ÿ˜ญ)

Yeonยท2023๋…„ 7์›” 26์ผ
0

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ - Kotlin

๋ชฉ๋ก ๋ณด๊ธฐ
10/58
post-thumbnail

ํŒ€ ํ”„๋กœ์ ํŠธ์ธ ํ‚ค์˜ค์Šคํฌ๋ฅผ ๋งŒ๋“ค๊ณ  ์žˆ๋‹ค.
๋ฉ”๋‰ด๋ฅผ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ๊ฐ๊ฐ ๋งก์•„์„œ ํ•˜์˜€๊ณ , ๋‚œ data class๋ฅผ ์ด์šฉํ•ด์„œ ๋ฉ”๋‰ด ๋ฆฌ์ŠคํŠธ๋ฅผ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ํ•œ ํŒ€์›๋ถ„์€ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ถ”์ƒํ™”๋ฅผ ์ง„ํ–‰ํ•˜์—ฌ ๋‚˜์™€ ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ๊ฐ€๊ณ  ์žˆ์—ˆ๋‹ค.
๊ทธ๋ž˜์„œ ๋” ์ข‹์€ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฅด๋ ค๊ณ  ํŠœํ„ฐ๋‹˜๊ป˜ ๋ฌธ์˜๋ฅผ ํ–ˆ๋”๋‹ˆ ์‹ค์Šต ์ƒํƒœ์—์„œ๋Š” data class๋ฅผ ์‚ฌ์šฉํ•ด๋„ ํ”„๋กœ์ ํŠธ์—์„œ ์ฃผ์–ด์ง„ Lv0~Lv5๊นŒ์ง€ ์†Œํ™”ํ•˜๋Š”๋ฐ ๋ฌด๋ฐฉํ•˜๋‚˜, ํ•˜๋“œ์ฝ”๋”ฉ์ด๊ณ  ์‹ค๋ฌด์—์„œ๋Š” ์ถ”์ƒํ™”๋ฅผ ํ•˜์—ฌ ์ƒ์†ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ•˜์…จ๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์ถ”์ƒํ™”๋ฅผ ํ•˜์ง€ ์•Š๊ณ  data class๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด๊ณ , ์‹ค๋ฌด์ฒ˜๋Ÿผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ถ”์ƒํ™”์™€ ์ƒ์†ํ•˜๋Š” ๊ฐœ๋…์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
ํŒ€์›๋“ค๊ณผ์˜ ๋Œ€ํ™” ๋์— ์šฐ์„  ์ถ”์ƒํ™”์™€ ์ƒ์†ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋‚œ ์ถ”์ƒํ™”์— ๋Œ€ํ•ด ์ž˜ ๋ชฐ๋ผ์„œ ๊ฐ ๋ฉ”๋‰ด ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ถ”์ƒํ™”ํ•˜๋Š” ๊ฒƒ์— ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ๋‹ค.
๊ฐœ๋…์€ ๋Œ€์ถฉ์€ ์•Œ๊ฒ ๋Š”๋ฐ ์ ์šฉ์„ ๋ชปํ•˜๊ฒ ๋‹ค.๐Ÿ˜ญ
Chat CPTํ•œํ…Œ๋Š” ๋ฌผ์–ด๋ด๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹คใ… ใ… ใ…œใ… 


// ๋งˆ๋ฅธ์•ˆ์ฃผ ํด๋ž˜์Šค ์ถ”์ƒํ™”
abstract class AbstractDry {
    abstract fun abstractDry(): MenuItem
}
// ๋ฉ”๋‰ด ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค
data class MenuItem(val name: String, val price: Int, val depict: String)
// ๋งˆ๋ฅธ์•ˆ์ฃผ ์ถ”์ƒํ™”๋ฅผ ๋ฐ›๋Š” ํด๋ž˜์Šค
class ButterSquid: AbstractDry() {
    override fun info(): MenuItem {
        val name = "๋ฒ„ํ„ฐ์˜ค์ง•์–ด๊ตฌ์ด"
        val price = 9000
        val depict = "์ง„~ํ•œ ๋ฒ„ํ„ฐ์— ํ•œ๋ฐ”ํƒ• ๋’น๊ตฐ ์˜ค์ง•์–ด"
        return MenuItem(name, price, depict)
    }
}

์šฐ์„  ์ถ”์ƒํ™”๋œ ๋‚ด์šฉ์€ ์ด๋Ÿฐ ํ˜•์‹์œผ๋กœ ์ž‘์„ฑ์„ ํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  Main ํŒŒ์ผ์— ์•„๋ž˜์ฒ˜๋Ÿผ ๋ฉ”๋‰ด ํด๋ž˜์Šค๋“ค์„ ๋ฆฌ์ŠคํŠธํ™” ์‹œ์ผœ์„œ ๋‚˜์ค‘์— ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜ ์นดํŠธ์— ์ €์žฅํ•  ๋•Œ ์ผ์ผ์ด ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋˜๊ฒŒ ๋งŒ๋“ค์—ˆ๋‹ค.

// Main์—์„œ ๋ฆฌ์ŠคํŠธ ์จ๋†“์Œ
val menu3List: List<AbstractDry> = listOf(ButterSquid(), Calamari(), Filefish(), Pollack())
// Menu3์—์„œ ๋งˆ๋ฅธ ์•ˆ์ฃผ ๋ชฉ๋ก์„ ๋ถˆ๋Ÿฌ์˜ค๋Š” ์ฝ”๋“œ
for ((index, menuItem) in menu3List.withIndex()) {  // menu3Items ๋ฆฌ์ŠคํŠธ ๋‚ด ๊ฐ ์ธ๋ฑ์Šค์™€ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋Œ๋ฆผ
    val menuInfo = menuItem.info()
    println("${index+1}. ${menuInfo.name} | W ${menuInfo.price} | ${menuInfo.depict}")
}



์•„....๋‹ค๋ฅธ ํŠœํ„ฐ๋‹˜ํ•œํ…Œ ์งˆ๋ฌธํ•ด๋ณด๋‹ˆ๊นŒ
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์—๋Š” ์ถ”์ƒํ™”๊ฐ€ ํ•„์š”์—†๋‹ค๊ณ  ํ•œ๋‹ค...ํ•˜ํ•˜ํ•ณใ…Žใ…Ž๐Ÿ˜‚
๊ทธ๋ƒฅ ์ƒ์†๊ฐœ๋…์„ ๋„ฃ์–ด์„œ ๋ฉ”๋‰ด์—์„œ ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ์ƒ์†ํ•˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ๋งŒ ํ•ด์„œ
๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ฉด ๋˜๋Š”๊ฑด ๋ฐ ๋„ˆ๋ฌด ์–ด๋ ต๊ฒŒ ์ƒ๊ฐํ–ˆ๋‚˜๋ณด๋‹ค.

ํŠœํ„ฐ๋‹˜์ด 2๊ฐ€์ง€ ๋ฐฉํ–ฅ์„ ์ œ์‹œํ•ด์ฃผ์…จ๋‹ค.
1) ์ƒ์† ๊ฐœ๋…์„ ๋„ฃ์–ด์„œ ์•„์˜ˆ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•œ๋‹ค.
2) ๊ทธ๋ƒฅ ๊ตฌํ˜„์€ ๋˜๋‹ˆ๊นŒ ์ถ”์ƒํ™”ํ•œ๊ฑธ๋กœ ์ง„ํ–‰์„ ํ•œ๋‹ค.

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

์–ด๋–ป๊ฒŒ ํ•˜๋‹ค๋ณด๋‹ˆ ๊ตฌํ˜„์„ ํ•˜๊ธด ํ–ˆ๋Š”๋ฐ ์ด๊ฒŒ ์•„๋‹ˆ๋ผ๋‹ˆ๊นŒ ์•ฝ๊ฐ„ ํ—ˆํƒˆํ•˜๊ธด ํ•œ๋ฐ ์ด๊ฑด ์กฐ๊ฑด์„ ์ž˜ ์•ˆ ์ฝ๊ณ  ํ•œ ์šฐ๋ฆฌํŒ€์˜ ์‹ค์ˆ˜์ด์ž ์ž˜๋ชป์ด๊ธฐ ๋•Œ๋ฌธ์—ใ… ใ… ใ…œ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค๐Ÿ˜ญ

์ œ์ถœ๊นŒ์ง€ ์•ฝ 2์ผ์ด ๋‚จ์•˜๋Š”๋ฐ ๋๊นŒ์ง€ ํ™”์ดํŒ… ํ•ด๋ด์•ผ์ง€!!!๐Ÿ”ฅ

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 8์›” 3์ผ

์ •๋ง ์ € ๋ฉ˜๋ถ•์ด ํ„ฐ์กŒ์—ˆ์–ด์š” ใ… ใ… 

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ