카테고리 없음
iOS프로그래밍실무(10/15)
59date
2025. 5. 14. 16:45
📌 TableView 기본 구조 이해
- iOS 앱에서 표 형태로 데이터를 출력할 때 사용하는 UI 컴포넌트가 UITableView
- TableView 사용을 위해선 반드시 DataSource와 Delegate 프로토콜을 채택해야 함
📌 필수 메서드 구현
- tableView(_:numberOfRowsInSection:): 섹션 내 셀의 개수를 반환
- tableView(_:cellForRowAt:): 각 셀에 들어갈 내용을 구성
📌 커스텀 셀 만들기
- 스토리보드에서 셀을 선택한 후, Identifier를 지정 (예: "myCell")
- 셀 내부에 Label을 추가하고, 커스텀 셀 클래스(MyTableViewCell.swift)를 생성해 IBOutlet 연결
📌 네트워크 요청 흐름
- URLSession을 사용해 외부 API 서버와 통신
- API 호출은 비동기로 진행되며, 응답을 받은 후 데이터를 파싱하여 UI에 적용
📌 실습에 사용된 API
- 영화진흥위원회(KOBIS) 오픈 API
- 일일 박스오피스 정보를 JSON 형식으로 반환
- URL 요청 시 key와 target date를 포함하여 전송
📌 JSON 파싱 구조체 구성
struct MovieData: Codable {
let boxOfficeResult: BoxOfficeResult
}
struct BoxOfficeResult: Codable {
let dailyBoxOfficeList: [DailyBoxOfficeList]
}
struct DailyBoxOfficeList: Codable {
let rank: String
let movieNm: String
}
📌 API 호출 및 파싱 흐름
- URL 생성 (Query 포함)
- URLSession.shared.dataTask 생성
- 받은 데이터(Data)를 JSONDecoder를 통해 디코딩
- 파싱된 데이터를 배열에 저장하고, DispatchQueue.main.async를 통해 UI 업데이트
📌 클로저와 후행 클로저 사용
- dataTask 메서드는 클로저를 사용해 응답 데이터를 처리
- 후행 클로저 문법을 활용하여 가독성 높임
📌 UI 업데이트 시 주의점
- 네트워크 응답은 백그라운드 스레드에서 이뤄지므로, UI 업데이트는 반드시 메인 스레드에서 실행해야 함
DispatchQueue.main.async {
self.tableView.reloadData()
}