Open API 기반 iOS 앱 개발 정리
RESTful / JSON / Open API / TableView 완전 이해하기
iOS 앱 개발을 하다 보면 단순한 화면 제작을 넘어, 인터넷에서 데이터를 받아와 보여주는 기능이 꼭 필요해집니다.
예를 들어 영화 순위, 날씨 정보, 지도, 버스 도착 정보 같은 기능들은 대부분 Open API를 활용합니다.
이번 글에서는 강의자료 내용을 바탕으로:
- RESTful API란 무엇인지
- JSON 구조는 어떻게 생겼는지
- Open API는 어떻게 사용하는지
- iOS에서 TableView로 데이터를 표시하는 방법
- 커스텀 셀(Custom Cell) 만드는 방법
목차
- Open API란?
- 영화진흥위원회 Open API 사용하기
- RESTful API 이해하기
- URI / URL 차이
- HTTP 메서드와 CRUD
- XML과 JSON
- JSON 구조 이해하기
- Postman과 QuickType 활용
- iOS TableView 기본 구조
- Delegate와 DataSource
- 커스텀 TableViewCell 만들기
- 셀 선택 이벤트 처리
- 배열 데이터를 TableView에 출력
- 마무리
1. Open API란?
API는 프로그램과 프로그램이 서로 대화하는 통로입니다.
쉽게 말하면:
- 앱 → 서버에 요청
- 서버 → 데이터 전달
이 과정을 가능하게 해주는 것이 API입니다.
예를 들면:
- 유튜브 영상 정보
- 네이버 검색 결과
- 카카오 지도
- 영화 순위
- 날씨 데이터
같은 정보들을 외부 서버에서 받아올 수 있습니다.
2. 영화진흥위원회 Open API 사용하기
강의에서는 영화진흥위원회(KOBIS) Open API를 사용합니다.
대표적으로 박스오피스 데이터를 가져올 수 있습니다.
예시 주소:
https://kobis.or.kr/kobisopenapi/webservice/rest/boxoffice/searchDailyBoxOfficeList.json?key=발급받은키&targetDt=20260422
구성 요소:
요소설명
| key | API 인증 키 |
| targetDt | 조회 날짜 |
| json | 응답 형식 |
API 사용 순서
1단계. 회원가입
영진위 사이트에서 회원가입 진행
2단계. 키 발급
Open API 메뉴에서 인증키 발급
3단계. URL 호출
브라우저 또는 앱에서 URL 요청
4단계. JSON 응답 받기
서버가 영화 데이터를 JSON 형태로 반환
3. RESTful API 이해하기
REST는 웹에서 데이터를 주고받는 규칙입니다.
핵심 개념은:
- 주소(URI)
- 행동(HTTP Method)
를 분리하는 것입니다.
RESTful한 주소 예시
GET /users/1
의미:
- users → 사용자 데이터
- 1 → 1번 사용자
- GET → 조회
즉:
“1번 사용자 정보를 조회해줘”
라는 의미입니다.
RESTful하지 않은 예시
/getUser?id=1
/createUser
/deleteUser
이런 방식은 주소에 동작이 들어가 있어서 RESTful하지 않다고 봅니다.
4. URI와 URL 차이
강의에서 정말 중요하게 설명하는 부분입니다.
URI
리소스를 식별하는 문자열
예:
/users/1
URL
리소스의 실제 위치까지 포함
예:
https://api.example.com/users/1
즉:
- URI → 이름
- URL → 위치 포함 주소
라고 이해하면 쉽습니다.
5. HTTP 메서드와 CRUD
REST API에서는 HTTP 메서드로 행동을 표현합니다.
메서드의미
| GET | 조회 |
| POST | 생성 |
| PUT | 수정 |
| DELETE | 삭제 |
예시
사용자 조회
GET /users/1
사용자 생성
POST /users
사용자 수정
PUT /users/1
사용자 삭제
DELETE /users/1
6. XML과 JSON
예전에는 XML을 많이 사용했지만 현재는 JSON이 훨씬 많이 사용됩니다.
XML 특징
<name>홍길동</name>
장점:
- 구조가 명확함
단점:
- 태그가 많아 데이터 크기가 큼
JSON 특징
{
"name": "홍길동"
}
장점:
- 가볍다
- 읽기 쉽다
- 속도가 빠르다
그래서 모바일 앱에서는 JSON을 거의 기본처럼 사용합니다.
7. JSON 구조 이해하기
JSON은 크게 2가지 구조를 사용합니다.
1) 객체(Object)
{
"name": "김컴소",
"age": 20
}
중괄호 {} 사용
2) 배열(Array)
[
"사과",
"바나나",
"포도"
]
대괄호 [] 사용
객체 안에 배열 넣기
{
"name":"김컴소",
"cars":["아반떼","쏘나타","그랜저"]
}
실제 API에서는 이런 중첩 구조가 매우 많이 나옵니다.
8. Postman과 QuickType 활용
Postman
API 테스트 도구입니다.
장점:
- API 요청 테스트 가능
- JSON 결과 확인 가능
- 서버 디버깅 편리
QuickType
JSON 데이터를 Swift 모델 코드로 자동 변환해주는 사이트입니다.
예를 들어 JSON을 넣으면:
struct Movie: Codable {
let movieNm: String
}
같은 코드를 자동 생성해줍니다.
9. iOS TableView 기본 구조
TableView는 리스트 화면을 만들 때 사용합니다.
예:
- 카카오톡 채팅 목록
- 유튜브 영상 리스트
- 영화 목록
모두 TableView 기반입니다.
TableView 추가하기
스토리보드에서:
shift + cmd + L
로 라이브러리를 열고 Table View 추가
IBOutlet 연결
@IBOutlet weak var table: UITableView!
10. Delegate와 DataSource
TableView는 두 개의 프로토콜을 사용합니다.
UITableViewDataSource
데이터 공급 담당
필수 메서드:
func tableView(_ tableView: UITableView,
numberOfRowsInSection section: Int) -> Int
행 개수 반환
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath)
셀 내용 반환
UITableViewDelegate
이벤트 처리 담당
예:
- 셀 클릭
- 스크롤
- 높이 조절
delegate = self 의미
table.delegate = self
뜻:
“테이블뷰에서 발생하는 이벤트를 내가 처리할게”
입니다.
11. 커스텀 TableViewCell 만들기
기본 셀 디자인이 마음에 안 들면 직접 만들어야 합니다.
identifier 설정
myCell
주의:
- 대소문자 구분
커스텀 클래스 생성
class MyTableViewCell: UITableViewCell {
@IBOutlet weak var movieName: UILabel!
}
셀 연결
스토리보드에서:
- Identity Inspector
- Class 지정
- MyTableViewCell 선택
해야 연결됩니다.
12. 셀 선택 이벤트 처리
셀 클릭 시 동작:
func tableView(_ tableView: UITableView,
didSelectRowAt indexPath: IndexPath) {
print(indexPath.description)
}
선택된 셀 위치를 알 수 있습니다.
예:
[0,1]
13. 배열 데이터를 TableView에 출력
배열 데이터를 리스트로 출력할 수 있습니다.
예시 코드
let name = ["aaa","bbb","ccc"]
func tableView(_ tableView: UITableView,
numberOfRowsInSection section: Int) -> Int {
return name.count
}
셀 데이터 설정
func tableView(_ tableView: UITableView,
cellForRowAt indexPath: IndexPath)
-> UITableViewCell {
let cell = tableView.dequeueReusableCell(
withIdentifier: "myCell",
for: indexPath
) as! MyTableViewCell
cell.movieName.text = name[indexPath.row]
return cell
}
14. 마무리
이번 강의에서는:
- RESTful API
- JSON 구조
- Open API 사용법
- TableView 구조
- Delegate / DataSource
- Custom Cell 제작
까지 iOS 앱 개발에서 정말 중요한 핵심 개념들을 다루었습니다.
특히 앞으로:
- 영화 앱
- 날씨 앱
- 뉴스 앱
- 지도 앱
- 쇼핑 앱
같은 프로젝트를 만들게 되면 오늘 배운:
Open API + JSON + TableView
조합은 거의 반드시 사용하게 됩니다.
핵심 요약
개념핵심
| REST | 주소 + HTTP 메서드 |
| JSON | 현재 가장 많이 사용하는 데이터 형식 |
| Open API | 외부 서버 데이터 사용 |
| TableView | 리스트 UI |
| Delegate | 이벤트 처리 |
| DataSource | 데이터 공급 |
| Custom Cell | 직접 디자인한 셀 |
참고 자료
- 영화진흥위원회 Open API
- RESTful / JSON 자료
- TableView 실습 자료
'iOS' 카테고리의 다른 글
| [iOS] Open API 기반 iOS 앱 만들기 (5) — 화면 전환, Segue, WebView까지 정리 (0) | 2026.06.01 |
|---|---|
| [iOS] 7주차 열거형 & 구조체 정리 (0) | 2026.04.20 |
| [iOS] 옵셔널 체이닝, 오류 처리, 제네릭, Array 완전정리 (0) | 2026.04.13 |
| [iOS] 프로그래밍 5주차 정리 (0) | 2026.04.06 |
| [iOS] iOS 프로그래밍 4주차 정리 (0) | 2026.03.30 |