Repository navigation
Description
배경/문제
현재 영화관 서비스는 CGV·롯데시네마·메가박스 3사입니다. 이 범위에서는 독립·예술영화 상영 정보가 조회되지 않는 경우가 있습니다. 해당 영화들이 주로 걸리는 예술영화 전용관이 세 체인 어디에도 속해 있지 않기 때문입니다.
2026-08-19 기준으로 독립영화 1편을 서울·경기에서 찾아본 결과입니다.
| 조회 | 범위 | 결과 |
|---|---|---|
lottecinema-movies |
서울·경기 64개관 | 0건 |
megabox |
서울 17 + 경기 31개관 | 1개관 2회차 |
cgv-timetable |
서울 29 + 경기 52개관 | 당시 업스트림 503으로 조회 불가 |
같은 날 씨네큐브 광화문에서 20:25 회차(잔여 13/72석)가 상영 중이었는데, 위 조회로는 잡히지 않았습니다. 예술영화관이 조회 대상에 없으면 "상영이 없는 것"과 "조회가 안 되는 것"을 구분하기 어려운 것 같습니다.
제안 내용
디트릭스(Dtryx) 예매 플랫폼 어댑터를 추가하면 어떨까 합니다. 국내 독립·예술영화관 다수가 이 플랫폼을 공용으로 쓰고 있어, 어댑터 하나로 여러 극장이 함께 커버됩니다.
공개 엔드포인트이며 API 키가 필요하지 않습니다.
https://api.dtryx.com:30443/dtryx/cms/thirdparty/movie/
third-party-type2-timetable-list 상영시간표 + 좌석
third-party-type2-timetable-play-date-list 상영 가능 날짜
third-party-type2-movie-now 현재상영작
third-party-type2-movie-plan 상영예정작
third-party-type3-movie-detail 영화 상세
공통 파라미터: BrandCd, CinemaCd, ChannelCd=homepage, EngVerYn=N, WorkGuID
응답에 TotalSeatCnt / RemainSeatCnt / ScreenNm 이 포함되어 기존 getRemainingSeats 계열 도구와 스키마가 맞습니다. ScreenNm(1관/2관)은 현재 CGV 응답에는 없는 정보입니다.
확인한 극장은 24곳이고 BrandCd 3종으로 묶여 있습니다.
| BrandCd | 성격 | 극장 |
|---|---|---|
indieart |
독립예술영화관 | 씨네아트 리좀, 인디플러스 포항, 오오극장, 전주디지털독립영화관, 더숲아트시네마, 광주극장, 아트하우스모모, 에무시네마, 헤이리시네마 (+미확인 1) |
etc |
미분류 | 천안인생극장, 광주자동차극장, 아리랑시네센터, 밀양시네마, 모퉁이극장, 씨네인디U, 애관극장, 금성시네마, 낭만극장, 허리우드클래식, 명화극장, 자유로자동차극장 (+미확인 1) |
spacedog |
라이카시네마 사업자명 | 라이카시네마 |
동작 확인 예시입니다.
GET .../third-party-type2-timetable-list?BrandCd=indieart&CinemaCd=000067&ChannelCd=homepage&EngVerYn=N&PlaySDT=2026-08-19&ImgSize=small&WorkGuID=37E0BA0F-DA5F-4376-9BA4-B5D27286AB87
→ 아트하우스모모 2026-08-19
19:30-21:13 콘크리트 녹색섬 2관 잔여 124/138 confirm
19:50-21:25 위커 맨: 파이널 컷 1관 잔여 78/138 confirm
구현 방향
src/services/lottecinema/ 구조(api.ts / client.ts / location.ts / types.ts / index.ts / tools/)를 따라 src/services/dtryx/ 를 추가하고, 도구는 기존 네이밍에 맞춰 findNearbyTheaters / listNowShowing / getRemainingSeats 3종으로 두는 방향을 생각하고 있습니다.
폴더명을 브랜드명이 아니라 플랫폼명(dtryx)으로 적어본 이유는, BrandCd 3종이 모두 공개 브랜드로 보이지 않기 때문입니다. etc 는 미분류 버킷이고, spacedog 는 라이카시네마의 사업자명이며, indieart 는 극장 페이지에 표기되지 않는 내부 분류 코드로 보입니다(해당 페이지 <title> 은 극장명으로 표시됩니다). 극장들도 서로 독립 운영됩니다.
이 방향으로 PR을 준비할 수 있습니다. 폴더 배치나 도구 네이밍에 다른 의견이 있으시면 그쪽에 맞추겠습니다.
대안/검토 사항
- 극장별 개별 어댑터: 예매 시스템이 공통이라 이점이 없고 극장 수만큼 서비스가 늘어납니다.
BrandCd단위 분리(indieart/,etc/,spacedog/): 기존 브랜드명 폴더 관례에는 맞지만etc/폴더가 생기고 클라이언트 코드가 중복됩니다.- 씨네큐브는 이 플랫폼이 아닌 것으로 보여 범위에서 제외했습니다. 예술영화관 전체를 덮는 것은 아닙니다.
- 비용/운영 영향: 직접 호출이라 Zyte 를 경유하지 않고 API 키 발급·관리도 없습니다.
src/services/lottecinema/client.ts처럼fetch만 사용하면 되고, Zyte 일일 한도에는 영향이 없습니다. - 문서화가 필요해 보이는 부분:
PlaySDT는YYYY-MM-DD형식이어야 합니다.YYYYMMDD로 넘기면 오류 없이RecordCount: 0을 반환해 조용히 실패합니다. - 아직 확인하지 못한 것:
CinemaCd2곳(000068,000086)의 극장명과, 위 3종 외BrandCd가 더 있는지 여부입니다.
Activity