앱 개발 기술

Swift, Objective-C, Storyboard 차이점
Swift와 Objective-C는 앱을 만드는 언어이고, Storyboard는 앱의 화면을 디자인하는 도구랍니다. 이 세 가지를 잘 활용하면 멋진 iOS 앱을 만들 수 있어요
Swift, Objective-C, Storyboard 장단점 표로 정리
항목 | 장점 | 단점 |
Swift | - 안전하고 빠른 코드 작성 가능 | - 비교적 새로운 언어로 학습 곡선이 높을 수 있음 |
- 간결하고 직관적인 문법 | - Objective-C와 완전한 호환성 부족 | |
- 자동 메모리 관리(ARC) | - 언어 안정성이 아직 개선 중 | |
- 높은 성능 | ||
- Apple의 지원 및 오픈소스 | ||
Objective-C | - 안정성과 성숙도가 높음 | - 복잡한 문법 |
- 레거시 iOS 앱과의 호환성 | - Swift에 비해 현대적 기능 부족 | |
- 광범위한 라이브러리 지원 | - 개발 속도가 상대적으로 느림 | |
Storyboard | - 시각적 편의성 | - 대규모 프로젝트에서 관리 어려움 |
- 코드량 감소 | - 버전 관리 시 충돌 발생 가능성 | |
- 화면 플로우 파악 용이 | - 재사용성 및 유지보수 어려움 |
Nil-Coalescing 연산자
let defaultName = "Guest"
var username: String? = nil
let displayName = username ?? defaultName
print(displayName) // "Guest" 출력
username = "John"
let newDisplayName = username ?? defaultName
print(newDisplayName) // "John" 출력
The Swift Programming Language (한국어) | Swift
Last updated 5 months ago
bbiguduk.gitbook.io
swift로 김희애 10번 출력하는 소스
for _ in 1...10 {
print("김희애")
}
함수형 언어의 특징
// 순수 함수: 입력값이 같으면 항상 같은 결과를 반환하고, 외부 상태를 변경하지 않음
func square(_ number: Int) -> Int {
return number * number
}
// 고차 함수: 다른 함수를 인자로 받거나 반환하는 함수
let numbers = [1, 2, 3, 4, 5, 6]
// filter: 조건에 맞는 요소만 걸러냄 (짝수만 필터링)
let evenNumbers = numbers.filter { $0 % 2 == 0 }
// map: 각 요소를 변환 (짝수를 제곱)
let squaredNumbers = evenNumbers.map(square)
// reduce: 배열의 요소를 결합 (제곱된 숫자의 합 계산)
let sumOfSquares = squaredNumbers.reduce(0, +)
print(sumOfSquares) // 출력 결과: 56
내가 iOS 초보 개발자야 앱을 개발하려고 해 간단한 앱을 만드는 방법을 Storyboard, Ui View, Swift Ui 3가지 방법으로 모두 알려줘
Storyboard, Ui View, Swift Ui 3가지 방법의 장단점
방법 | 장점 | 단점 |
Storyboard | - 시각적으로 UI 구성 가능 | - 대규모 프로젝트에서 관리 어려움 |
- 초보자에게 친숙함 | - 버전 관리 시 충돌 발생 가능성 높음 | |
- 빠른 프로토타이핑 | - 코드 재사용성 낮음 | |
UIKit (UIView) | - 세밀한 UI 제어 가능 | - 코드가 복잡해질 수 있음 |
- 성숙도와 안정성 높음 | - UI 변경 시 즉각적인 피드백 어려움 | |
- 광범위한 기능 지원 | - 상대적으로 긴 학습 곡선 | |
SwiftUI | - 간결하고 직관적인 코드 | - iOS 13 이상에서만 사용 가능 |
- 실시간 프리뷰 기능 | - 일부 고급 기능 구현에 제약 있음 | |
- 크로스 플랫폼 지원 | - 상대적으로 커뮤니티와 자료가 적음 |
1

2
{
"boxOfficeResult": {
"boxofficeType": "일별 박스오피스",
"showRange": "20250305~20250305",
"dailyBoxOfficeList": [
{
"rnum": "1",
"rank": "1",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20244821",
"movieNm": "미키 17",
"openDt": "2025-02-28",
"salesAmt": "775125720",
"salesShare": "61.7",
"salesInten": "-17794720",
"salesChange": "-2.2",
"salesAcc": "14517956260",
"audiCnt": "80037",
"audiInten": "-2445",
"audiChange": "-3",
"audiAcc": "1465506",
"scrnCnt": "1815",
"showCnt": "6531"
},
{
"rnum": "2",
"rank": "2",
"rankInten": "16",
"rankOldAndNew": "OLD",
"movieCd": "20249251",
"movieNm": "콘클라베",
"openDt": "2025-03-05",
"salesAmt": "94182880",
"salesShare": "7.5",
"salesInten": "90636880",
"salesChange": "2556",
"salesAcc": "138151480",
"audiCnt": "10796",
"audiInten": "10402",
"audiChange": "2640.1",
"audiAcc": "15409",
"scrnCnt": "566",
"showCnt": "1081"
},
{
"rnum": "3",
"rank": "3",
"rankInten": "-1",
"rankOldAndNew": "OLD",
"movieCd": "20240614",
"movieNm": "퇴마록",
"openDt": "2025-02-21",
"salesAmt": "84353660",
"salesShare": "6.7",
"salesInten": "9867280",
"salesChange": "13.2",
"salesAcc": "3043377240",
"audiCnt": "8905",
"audiInten": "914",
"audiChange": "11.4",
"audiAcc": "318301",
"scrnCnt": "794",
"showCnt": "1530"
},
{
"rnum": "4",
"rank": "4",
"rankInten": "-1",
"rankOldAndNew": "OLD",
"movieCd": "20242404",
"movieNm": "캡틴 아메리카: 브레이브 뉴 월드",
"openDt": "2025-02-12",
"salesAmt": "43123980",
"salesShare": "3.4",
"salesInten": "-23243080",
"salesChange": "-35",
"salesAcc": "15811113026",
"audiCnt": "4605",
"audiInten": "-2607",
"audiChange": "-36.1",
"audiAcc": "1595994",
"scrnCnt": "543",
"showCnt": "1101"
},
{
"rnum": "5",
"rank": "5",
"rankInten": "-1",
"rankOldAndNew": "OLD",
"movieCd": "20252719",
"movieNm": "힘내라 대한민국",
"openDt": "2025-02-27",
"salesAmt": "34703200",
"salesShare": "2.8",
"salesInten": "-6101800",
"salesChange": "-15",
"salesAcc": "388282040",
"audiCnt": "3915",
"audiInten": "-699",
"audiChange": "-15.1",
"audiAcc": "41533",
"scrnCnt": "114",
"showCnt": "210"
},
{
"rnum": "6",
"rank": "6",
"rankInten": "-1",
"rankOldAndNew": "OLD",
"movieCd": "20234689",
"movieNm": "괜찮아 괜찮아 괜찮아! ",
"openDt": "2025-02-26",
"salesAmt": "24158200",
"salesShare": "1.9",
"salesInten": "-13196900",
"salesChange": "-35.3",
"salesAcc": "652925600",
"audiCnt": "2778",
"audiInten": "-1548",
"audiChange": "-35.8",
"audiAcc": "74251",
"scrnCnt": "392",
"showCnt": "561"
},
{
"rnum": "7",
"rank": "7",
"rankInten": "0",
"rankOldAndNew": "NEW",
"movieCd": "20241389",
"movieNm": "보더랜드",
"openDt": "2025-03-05",
"salesAmt": "15550600",
"salesShare": "1.2",
"salesInten": "15550600",
"salesChange": "100",
"salesAcc": "15550600",
"audiCnt": "2371",
"audiInten": "2371",
"audiChange": "100",
"audiAcc": "2371",
"scrnCnt": "209",
"showCnt": "388"
},
{
"rnum": "8",
"rank": "8",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20252058",
"movieNm": "첫 번째 키스",
"openDt": "2025-02-26",
"salesAmt": "11696800",
"salesShare": "0.9",
"salesInten": "-601620",
"salesChange": "-4.9",
"salesAcc": "285966400",
"audiCnt": "1889",
"audiInten": "175",
"audiChange": "10.2",
"audiAcc": "36395",
"scrnCnt": "154",
"showCnt": "254"
},
{
"rnum": "9",
"rank": "9",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20244762",
"movieNm": "서브스턴스",
"openDt": "2024-12-11",
"salesAmt": "17822500",
"salesShare": "1.4",
"salesInten": "1541400",
"salesChange": "9.5",
"salesAcc": "5263171980",
"audiCnt": "1810",
"audiInten": "135",
"audiChange": "8.1",
"audiAcc": "540423",
"scrnCnt": "182",
"showCnt": "225"
},
{
"rnum": "10",
"rank": "10",
"rankInten": "0",
"rankOldAndNew": "OLD",
"movieCd": "20241093",
"movieNm": "그 시절, 우리가 좋아했던 소녀",
"openDt": "2025-02-21",
"salesAmt": "15780300",
"salesShare": "1.3",
"salesInten": "1170000",
"salesChange": "8",
"salesAcc": "1314952900",
"audiCnt": "1807",
"audiInten": "212",
"audiChange": "13.3",
"audiAcc": "148074",
"scrnCnt": "229",
"showCnt": "308"
}
]
}
}
3

iOS 강의 자료 참고했습니다
'iOS프로그래밍 실무' 카테고리의 다른 글
[iOS프로그래밍 실무] 6주차 (0) | 2025.04.10 |
---|---|
[iOS프로그래밍 실무] 5주차 (0) | 2025.04.03 |
[iOS프로그래밍 실무] 4주차 (0) | 2025.03.27 |
[iOS프로그래밍 실무] 3주차 (0) | 2025.03.20 |
[iOS프로그래밍 실무] 2주차 (0) | 2025.03.19 |