๐Ÿฅ Sparta_iOS_4๊ธฐ/5๏ธโƒฃ 240708_3์กฐ_ํ‚ค์˜ค์Šคํฌ ์•ฑ

์ด ๊ธˆ์•ก์„ ๋‚˜ํƒ€๋‚ด๋Š” toralPriceNumLabel.text๋ฅผ ์ฐพ์•„๊ฐ€์„œsum์„ ์ด์–ด์„œ ์ฐพ์•„๊ฐ€๋ณธ๋‹ค.  calculateTotalPrice()๋ฅผ ๋‹ค์‹œ ์ฐพ์•„๊ฐ€๋ณธ๋‹ค.   ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ์ƒํ’ˆ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด BasketItem ๋ฐฐ์—ด์ธ items์˜ ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์ˆœํšŒํ•˜๋ฉฐ ๊ฐ ํ•ญ๋ชฉ์˜ ๊ฐ€๊ฒฉ์„ ํ•ฉ์‚ฐํ•˜๋Š” ๋ถ€๋ถ„์ด๋‹ค.  reduce(0)์€ ์ดˆ๊ธฐ๊ฐ’์„ 0์œผ๋กœ ์„ค์ •ํ•˜๊ณ , result๋Š” ๋ˆ„์ ๋œ ๊ฐ’, item์€ ํ˜„์žฌ ํ•ญ๋ชฉ.item.numbers๋Š” ํ•ญ๋ชฉ์˜ ์ˆ˜๋Ÿ‰์ด๊ณ , item.coffee.menuPrice๋Š” ์ปคํ”ผ ๋ฉ”๋‰ด์˜ ๊ฐ€๊ฒฉ์ด๋‹ค.Int(item.coffee.menuPrice) ?? 0๋Š” menuPrice๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๊ณ ๋ณ€ํ™˜์— ์‹คํŒจํ•  ๊ฒฝ์šฐ 0์„ ์‚ฌ์šฉํ•œ๋‹ค.  ๋ณ€ํ™˜์— ์‹คํŒจํ–ˆ๋‹ค๋Š” ๋นˆ๋ฌธ์ž์—ด์ด๋ผ๋Š” ์˜๋ฏธ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋‹ด๊ธด ๊ฒŒ ์—†๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด ๊ธˆ..
Keep (์œ ์ง€ํ•  ์ )์ˆ˜์—…์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ ์ด์™ธ์˜ ๊ธฐ๋Šฅ๋“ค์„ ์Šค์Šค๋กœ ์ฐพ์•„์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์ ์šฉ ์‹œํ‚จ ์ ์ด ์˜๋ฏธ๊ฐ€ ์ปธ๋‹ค. ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ํŒ€์›๋“ค๊ฐ„์— ์ ๊ทน์ ์ธ ์†Œํ†ต์ด ์ด๋ฃจ์–ด์กŒ๋‹ค. ํŒ€์›๋“ค ๊ฐ„์˜ ์œผ์Œฐ์œผ์Œฐํ•˜๋Š” ๋ถ„์œ„๊ธฐ๊ฐ€ ํ”„๋กœ์ ํŠธ์— ์ข€ ๋” ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.   Problem (๋ฌธ์ œ์ )ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ ๋•Œ ์™„๋ฒฝํ•˜๊ฒŒ ํ•˜์ง€ ๋ชปํ–ˆ๋˜ ํ”„๋กœ๊ทธ๋žจ ๊ตฌํ˜„์ด ์•„์‰ฌ์› ๋‹ค. ๊นƒ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜๊ณผ ์ด์Šˆ ํ™œ์šฉ์— ๋Œ€ํ•ด ์ ์šฉํ•˜๊ณ  ์‹ถ์—ˆ์œผ๋‚˜ ๊นƒ ์ถฉ๋Œ ๋ฌธ์ œ ํ•ด๊ฒฐ์ด ๋ฒ…์ฐจ ์‹œ๋„๋ฅผ ๋ชปํ•œ ์ ์ด ์•„์‰ฝ๋‹ค.์ดˆ๊ธฐ ์„ค๊ณ„ ๊ณผ์ •์—์„œ ๋””ํ…Œ์ผํ•˜๊ฒŒ ์žก๊ณ  ๊ฐ€์ง€ ์•Š์•„ ์ค‘๊ฐ„์— ๋กœ์ง์ด ๋ณ€๊ฒฝ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•˜๊ณ  ๋””์ž์ธ์ด ๋ฐ”๋€Œ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ์—ˆ๋‹ค. MVCํŒจํ„ด ์ ์šฉ ์‹œ ๋ชจ๋“  ํŒ€์›์ด ํ•ด๋‹น ๊ฐœ๋…์— ๋Œ€ํ•œ ์ธ์ง€๊ฐ€ ์™„์ „ํ•˜์ง€ ์•Š์•„ ๋กœ์ง์ด ๊ผฌ์ด๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ์ด์–ด์„œ ์ž‘์—…ํ•  ์ˆ˜ ..
์žฅ๋ฐ”๊ตฌ๋‹ˆ๋ฅผ ๋ชป ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฌธ์ œ  ๋ชจ๋‹ฌ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋ฉด ๊ฐ’์ด ์ดˆ๊ธฐํ™”๋˜๋Š” ๋ฌธ์ œ๋ชจ๋‹ฌ๋ทฐ์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์— ์žฅ๋ฐ”๊ตฌ๋‹ˆ๊ฐ€ ๋นˆ ๋ฐฐ์—ด๋กœ ์„ ์–ธ๋˜์–ด ์žˆ๋‹ค. ๋ฐฐ์—ด์„ ์ „์—ญ์œผ๋กœ ๋˜๊ฐ€ ์‹ฑ๊ธ€ํ†ค์œผ๋กœ ๋บด๋˜๊ฐ€orders๋ฅผ ์ „์—ญ ๋ณ€์ˆ˜๋กœ ๋บด์•ผํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ   ์ด๋ฒˆ์—๋Š” ์ œ๋Œ€๋กœ ๋‹ด๊ฒผ์œผ๋‚˜ ์ „์ฒด ์‚ญ์ œ ํ›„ ์ด ์ƒํ’ˆ ๊ธˆ์•ก์ด ์‚ญ์ œ๋˜์ง€ ์•Š์€ ๋ฌธ์ œ
์ฝ˜์†”์ฐฝ์—์„œ๋Š” ๋ฉ”๋‰ด๋ฅผ ์„ ํƒํ•˜๋ฉด ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๊ฒƒ ๊นŒ์ง€๋Š” ๋˜๋‚˜์ฃผ๋ฌธ์ƒํ’ˆ ํŽ˜์ด์ง€์—์„œ ๊ฐ’์„ ๋„์›Œ์ฃผ์ง€ ๋ชปํ•˜๊ณ  ์žˆ๋‹ค.  ๋กœ์ง ๋ณ€๊ฒฝ... basket ํŒŒ์ผ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์„œ ์ด๊ณณ์—์„œ function ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉ.    ๊ฒฐ์ œ ์™„๋ฃŒํ•˜๊ณ  alert ๋„์šฐ๊ณ  ํ…Œ์ด๋ธ”๋ทฐ๊ฐ€ ์‚ญ์ œ๊ฐ€ ๋˜์–ด์•ผ ํ•˜๋Š”๋ฐ ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ.reloadData() ํ•ด์ค˜์•ผ ํ…Œ์ด๋ธ” ๋ทฐ์—์„œ ์‚ญ์ œ๊ฐ€ ๋œ๋‹ค.
์†”๋น„๋‹˜์ด ์ž‘์—…ํ•˜๋‹ค ๊ณต์œ ํ•ด์ฃผ์‹  ๋ฌธ์ œ์˜€๋Š”๋ฐ ํ•จ๊ป˜ ์›์ธ์„ ์ฐพ์•„๋ณด๋‹ˆ ๊ธ€์”จ๊ฐ€ ์•ˆ ๋ณด์˜€๋˜ ์ด์œ ๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ปฌ๋Ÿฌ๋ฅผ ์ง€์ •ํ•ด์ฃผ์ง€ ์•Š์•„์„œ์˜€๋‹ค.๋‹คํฌ๋ชจ๋“œ/ ํ™”์ดํŠธ ๋ชจ๋“œ์— ๋”ฐ๋ผ ๊ธ€์ž๊ฐ€ ๋ณด์ด๊ธฐ๋„ ํ•˜๊ณ  ์•ˆ ๋ณด์ด๊ธฐ๋„ ํ–ˆ๋‹ค..systemColor์— ๋Œ€ํ•ด ์ถ”๊ฐ€๋กœ ์ฐพ์•„ ๋ณผ ๊ฒƒ.   top๋ถ€๋ถ„ ๊ด‘ํ˜„๋‹˜ ๋จผ์ € pr ๋ฌธ์ œ ๋ฐœ์ƒ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋จผ์ € ๋ฉ”์ธ์— prํ•ด์„œ ๋ณ‘ํ•ฉ๋œ ์ƒํƒœXcode ์ƒ์—์„œ pull์„ ๊ด‘ํ˜„๋‹˜์ด ์•ˆ ๋•ก๊ปด์„œ ๋ฉ”์ธ ํŒŒ์ผ์„ ๊ด‘ํ˜„๋‹˜์ด ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์•˜์„ ๋•Œ ๊ด‘ํ˜„๋‹˜์ด pr ๋ณด๋‚ด๋ฉด๊ทธ๋ƒฅ ๋ฎ์–ด์“ฐ๊ธฐ๊ฐ€ ๋  ๋•Œ๊ฐ€ ์žˆ๊ณ  ์ˆ˜์ •์‚ฌํ•ญ๋งŒ ๋ฐ”๋€” ๋•Œ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์•ˆ์ „ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ๊ด‘ํ˜„๋‹˜์˜ ์ง„ํ–‰ ์‚ฌํ•ญ์„ ๋”ฐ๋กœ ๊ฐœ์ธ ๋ธŒ๋žœ์น˜์— ๋ฐฑ์—…ํ•˜๊ณ pull ๋•ก๊ธฐ๊ณ  ๋ถ™์—ฌ๋„ฃ๊ณ  ํ‘ธ์‰ฌ, PR ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.  main ๋ธŒ๋žœ์น˜์— mergeํ•˜๊ธฐ ์ „์— develop ๋ธŒ๋žœ์น˜๋ฅผ ์ƒˆ๋กœ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค. deve..
ํ•˜ํ”„ ๋ชจ๋‹ฌ / ํ…Œ์ด๋ธ” ๋ทฐ ๊ตฌํ˜„ ์ฝ”๋“œ//// OrderSheetController.swift// MacAProject//// Created by ahnzihyeon on 7/4/24.//import UIKitimport SwiftUIimport SnapKit//MakeCell ํด๋ž˜์Šค: ํ…Œ์ด๋ธ”๋ทฐ์…€ ํด๋ž˜์Šคclass MakeCell: UITableViewCell { let contentLabel = UILabel() //์…€์˜ ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifi..
๊ณต์‹๋ฌธ์„œ ์˜ˆ์ œlet alert = UIAlertController(title: "My Alert", message: "This is an alert.", preferredStyle: .alert) alert.addAction(UIAlertAction(title: NSLocalizedString("OK", comment: "Default action"), style: .default, handler: { _ in NSLog("The \"OK\" alert occured.")}))self.present(alert, animated: true, completion: nil)  viewDidLoad()์— ๊ณต์‹๋ฌธ์„œ ์ฝ”๋“œ๋ฅผ ๋„ฃ์–ด๋ณด๋ฉด ์ฐฝ์ด ๋œจ์ž๋งˆ์ž alert์ด ๋œฐ ์ค„ ์•Œ์•˜๋‹ค.   ํ•˜์ง€๋งŒ ์•„๋ฌด๊ฒƒ๋„ ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค. Hi..
๊นƒ ๊ด€๋ จํ•ด์„œ ๋‚ด์šฉ์ด ๋ถ€์กฑํ•˜๋‹ค. [ PR ๊ทœ์น™ ]2๋ช… ์ด์ƒ aprrove ๋˜๊ฒŒ ์„ค์ •์ฝ”๋“ค ๋ฆฌ๋ทฐํ•  ๋•Œ ๋‚ด๊ฐ€ ๋ญ˜ ๋ฆฌ๋ทฐํ•ด์•ผํ• ์ง€ ๊ณ ๋ฏผ์ธ๋ฐ์ด๋•Œ ์ฝ”๋“œ ์ปจ๋ฒค์…˜, ์˜คํƒ€ ์ด๋Ÿฐ ๋‹จ์ˆœํ•œ ๊ฒƒ๋“ค๋„ ๋งž์ถฐ์•ผ ํ•œ๋‹ค. ํŒ€์›๊ฐ„์˜ ๋ฃฐ์„ ๋งž์ถ”๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.  ์ปจ๋ฒค์…˜์ด ์–ด๋ ต๋‹ค๋ฉด ์Šค์œ„ํ”„ํŠธ ๋ฆฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•  ์ค‘ ํ•˜๋‚˜- pr ์ปจ๋ฒค์…˜- ๊นƒ ์ด์Šˆ๋Š” ํ…œํ”Œ๋ฆฟ์„ ์‚ฌ์šฉ ์ถ”์ฒœ [์ดˆ๊ธฐ ์„ค๊ณ„]๋”ฐ๋กœ๋”ฐ๋กœ ์ž‘์—…ํ•˜๊ณ  ๊ฐ์ž์˜ ์ฝ”๋“œ๋ฅผ ํ•ฉ์น˜๋‹ค ๋ณด๋ฉด ํƒ€์ž…์ด ์•ˆ ๋งž๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ๋ž˜์„œ ์ดˆ๋ฐ˜์— ์„ค๊ณ„๋ฅผ ์ž์„ธํ•˜๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง์„ ํ•ด์•ผํ•œ๋‹ค.  ์นด๋ฐ๊ณ ๋ฆฌ๋Š” ํด๋ž˜์Šค๋กœ ํ• ์ง€ ๊ตฌ์กฐ์ฒด๋กœ ํ• ๊ฑด์ง€ ๋“ฑ๋„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค. ์ดˆ๋ฐ˜์— ์„ค๊ณ„๋ฅผ ์ž˜ํ•˜๋ฉด ์ปดํฌ๋„ŒํŠธ ๋‹จ์œ„๋ฅผ ํ•ฉํ–ˆ์„ ๋•Œ ์ฝ”๋“œ์ˆ˜์ •ํ•  ์ผ์ด ์ ๋‹ค. ์ธํ’‹๊ณผ ์•„์›ƒํ’‹ ํƒ€์ž…์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.   git ๋ธŒ๋žœ์น˜ ์ „๋žต -> ์–ด๋–ค ์ „๋žต์„ ์‚ฌ์šฉ..
AHN.Jihyeon
'๐Ÿฅ Sparta_iOS_4๊ธฐ/5๏ธโƒฃ 240708_3์กฐ_ํ‚ค์˜ค์Šคํฌ ์•ฑ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก