Swift/기초 카테고리에 업로드한 모든 내용은 KxCoding 기초 강의를 토대로 작성하였습니다.
⎮ Modelling
1. Modeling : 구조체 / 클래스 / 열거형으로 모델을 만드는 과정
2. Model(Data Model) : 앱에서 사용(처리)하는 데이터
⎮ 친구 목록을 만드는 간단한 App 모델링 하는법
- 친구 정보 데이터 : 이름, 별명, 생일, 성별, 사는 곳, 키, 몸무게, MBTI, 휴대폰 번호 등
1. 추상화(Abstraction) : 필요한 데이터를 추리는 과정(이름, 생일, 휴대폰 번호, 사는 곳)
2. 코드로 Type을 구현 : 구조체 / 클래스 / 열거형 중에 선택
- 열거형 : 연관된 상수를 하나의 그룹으로 묶어야 할 때
- 클래스 : 복사본 대신 주소를 전달해야하거나 상속이 필요할 때
- 구조체 : 그 외 (처음에 구조체로 만들었다가 나중에 바꿔도 됨)
⎮ 모델링 공부하는 법
1. 자주 사용하는 앱을 들어가서 그 앱이 어떻게 구현되는지 분석
2. 코드로 구현
⎮ 강의 제목 입력하기
1. 구조체로 코드 입력 * 강의 제목은 자주 수정하지 않기 때문에 상수로 저장
struct Course {
let title: String // (인스턴스) 속성, (Instance) Property. 여기서는 상수를 저장했으므로 상수 저장 속성
}
2. Instance 만들기
let ios = Course(title: "Mastering iOS")
let swift = Course(title: "Mastering Swift")
⎮ 강의 소제목 입력하기
1. 코드 추가
struct Course {
let title: String
let subtitle: String
}
⎮ 강의 백그라운드 / 썸네일 이미지 추가하기
* 저장된 이미지를 불러오게 하거나 데이터를 불러오게 할 수 있음.
1. 코드 추가
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
}
* 서버에 접근해서 이미지를 불러오는게 아니니까 String Type (let cardImage: UIImage로 불러오게 할 수도 있음)
2. 썸네일 이미지가 있다면 코드 추가
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
//let cardImageUrl : URL 계산 속성. Computed Property
let thumbnailImageUrlStr: String?
//썸네일이 없을 수도 있으니까 optional로 설정
}
* String으로 저장했기 때문에 Url Type으로 바꿔야 함
3. 속성에 저장된 문자열을 Url Type으로 변경하기 위한 코드 추가
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
// let cardImageUrl: URL
var cardImageUrl : URL? {
get {
return URL(string: cardImageUrlStr)
}
set {
}
}
let thumbnailImageUrlStr: String?
}
* set 블록이 필요가 없다면 지워도 됨
4. set 블록 생략(읽기 전용 계산 속성. read-only computed property)
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
// let cardImageUrl: URL
var cardImageUrl : URL? {
get {
return URL(string: cardImageUrlStr)
}
}
let thumbnailImageUrlStr: String?
}
5. 읽기 전용일 때 get 키워드와 {}도 생략이 가능함
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
// let cardImageUrl: URL
var cardImageUrl : URL? {
return URL(string: cardImageUrlStr)
}
let thumbnailImageUrlStr: String?
}
6. 만약 return문 밖에 없다면 return 키워드도 지울 수 있음
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
// let cardImageUrl: URL
var cardImageUrl : URL? {
URL(string: cardImageUrlStr)
}
let thumbnailImageUrlStr: String?
}
7. 썸네일 이미지도 동일하게 적용
struct Course {
let title: String
let subtitle: String
let cardImageUrlStr: String
// let cardImageUrl: URL
var cardImageUrl : URL? {
URL(string: cardImageUrlStr)
}
let thumbnailImageUrlStr: String?
var thumbnilImage : URL? {
guard let str = thumbnailImageUrlStr else {
return nil
}
return URL(string: str)
}
}
* 썸네일 이미지 자체가 optional이기 때문에 optional binding 적용
'Swift > 기초' 카테고리의 다른 글
37. 스위프트 기초 문법[Modeling(3)] (0) | 2025.02.17 |
---|---|
36. 스위프트 기초 문법[Modeling(2) - Formatters] (0) | 2025.02.11 |
34. 스위프트 기초 문법[Type(3) - 클래스, 열거형 활용] (0) | 2025.02.07 |
33. 스위프트 기초 문법[Type(2) - Enumeration] (0) | 2025.02.07 |
32. 스위프트 기초 문법[Type(1) - Class & Structure] (0) | 2025.02.07 |