OptRail 개발일지 2편. 판 v1.0.2.3. 작성 2026. 10. 9.
본편(글 1684)을 v1.0.1.5 로 게시한 뒤의 개발 경과를 기록한다. 열차 목록에서 고르는 입력 방식과 사이트 보관함 연동, 예매 사이트 순서의 입력 화면, 여정과 선호 조건의 두 단계 분리, 티켓 분석 탭의 확장, 추천 좌석의 여정 정보와 자료 출처, 찾기·기호·추천 세 단계와 창 크기별 배치로의 개편을 다루었다.
목적
본편 게시 이후 입력 방식과 화면 구성이 여러 차례 바뀌어 개발일지 1편의 「본편 이전」 범위를 넘게 되었다. 본 편은 v1.0.1.6 이후의 경과를 따로 묶고, v1.0.2.0 에서는 찾기·기호·추천 세 단계와 창 크기별 배치로 화면을 개편하여 본편 2편으로 게시하는 것을 목적으로 하였다.
계획
- 개발일지 1편의 v1.0.1.6~v1.0.1.10 장을 2편으로 이관
- 열차 목록 입력과 보관함 연동
- 예매 사이트 순서의 입력 화면
- 여정과 선호 조건의 두 단계 분리
- 티켓 분석 탭 확장
- 추천 좌석 여정 정보와 자료 출처
- 시안 작성과 외부 생성형 AI 검토
- 세 단계 표시, 분석 탭 이동, 즐겨찾기 이동, 창 크기별 배치
- 본편 2편 게시
- 게시 화면의 제목 숨김, 로고, 사이트 색조
- 지난 열차 구분
체크리스트 15/17
| 항목 | 상태 | 비고 |
|---|---|---|
| 개발일지 1편의 v1.0.1.6~v1.0.1.10 장을 2편으로 이관 | 완료 | 1장 |
| 열차 목록에서 고르는 입력 방식과 사이트 보관함 연동, 디자인 승인 검토 | 완료 | 2장 |
| 예매 사이트 순서의 입력 화면, 디자인 승인 검토 | 완료 | 3장 |
| 여정과 선호 조건의 두 단계 분리, 디자인 승인 검토 | 완료 | 4장 |
| 티켓 분석 다섯 탭, 디자인 승인 검토 | 완료 | 5장 |
| 추천 좌석 여정 정보와 자료 출처, 디자인 승인 검토 | 완료 | 6장 |
| 좌석 찾기의 판정 근거 묶음 삭제, 분석 다섯 탭을 판정 근거 자리로 이동 | 완료 | 7.2절 |
| 티켓 분석과 즐겨찾기 아이콘 삭제, 열차 행 아래 즐겨찾는 좌석 | 완료 | 7.2절 |
| 찾기·기호·추천 단계 표시와 점선 연결 | 완료 | 7.2절 |
| 창 크기 등급 600·840·1200·1600 배치와 게시 글의 화면 폭 전체 표시 | 완료 | 7.3절 |
| 시안의 외부 생성형 AI 승인 검토 | 완료 | 7.1절 |
| 적용판의 외부 생성형 AI 승인 검토 | 완료 | 7.5절 |
| 휴대폰 뒤로 가기로 시트와 설정 닫기 | 미완 | 7.5절 |
| 본편 제목·날짜 자리 숨김, 로고, 사이트 색조, 한 화면 배치 | 완료 | 8장 |
| 지난 열차 회색 표시와 선택 제한 | 완료 | 9장 |
| 지난 열차의 빗금, 취소선, 표지, 현재 시각 줄 | 완료 | 9장 |
| 보관함 암호 설정과 실제 연동 확인 | 미완 | SHIN |
개요
본 편은 본편(글 1684)을 v1.0.1.5 로 게시한 뒤의 개발 경과를 기록한다. 개발일지 1편은 「본편 이전」의 누적 기록이므로, 1편 39~43장에 있던 v1.0.1.6~v1.0.1.10 의 기록을 본 편 2~6장으로 이관하였다. 이관한 장의 표와 그림 번호는 본 편 기준으로 다시 부여하였다.
v1.0.2.0 에서는 화면을 찾기, 기호, 추천 세 단계로 개편하고, 창 크기에 따라 1단, 2단, 3단으로 배치하였다. 개편한 도구는 본편 1편을 고치지 않고 본편 2편으로 게시하였다. 판별 장 구성을 Table 1 에 나타내었다.
Table 1. 판별 장 구성
| 판 | 일자 | 장 | 주요 내용 |
|---|---|---|---|
| v1.0.1.6 | 2026.10.7. | 2장 | 열차 목록에서 고르는 입력 방식, 사이트 보관함 연동 |
| v1.0.1.7 | 2026.10.7. | 3장 | 날짜, 출발역, 도착역, 출발 시각 순서의 입력 화면 |
| v1.0.1.8 | 2026.10.7. | 4장 | 여정 화면과 선호 조건 시트의 두 단계 분리 |
| v1.0.1.9 | 2026.10.7. | 5장 | 티켓 분석 탭을 눈부심, 공간, 편의, 편성, 근거로 확장 |
| v1.0.1.10 | 2026.10.7. | 6장 | 추천 좌석의 여정 정보, 판정 근거의 자료 출처 |
| v1.0.2.0 | 2026.10.7. | 7장 | 찾기·기호·추천 세 단계, 분석 탭과 즐겨찾기의 이동, 창 크기별 배치, 본편 2편 |
| v1.0.2.1 | 2026.10.7. | 8장 | 본편 제목·날짜 자리 숨김, 로고, 사이트 색조, 한 화면 배치 |
| v1.0.2.2 | 2026.10.9. | 9장 | 지난 열차의 회색 표시와 선택 제한 |
| v1.0.2.3 | 2026.10.9. | 9장 | 지난 열차의 빗금 바탕, 취소선, 표지, 현재 시각 줄 |
열차 목록과 사이트 보관함 연동 (v1.0.1.6)
2.1 수정 배경
v1.0.1.5 까지는 이용자가 출발 시각, 도착 시각, 차종을 직접 입력하였다. 예매 화면의 열차와 도구의 입력값이 어긋날 수 있으며, 차종을 모르는 이용자는 입력할 수 없는 문제가 있다. 본편(글 1684)의 게시 이후 사이트에 공공 API 중계 경로와 보관함이 마련되었다. 이에 따라 날짜와 구간을 고르면 그날 열차 목록에서 고르는 방식으로 변경하였다. 인증키는 사이트 서버에만 두며 도구에는 포함하지 않는다.
2.2 디자인 자문과 승인 검토
최초안은 열차 목록을 달력처럼 입력 묶음 안에 펼치는 방식이었다. 외부 생성형 AI 에 제시한 결과는 승인 불가였으며, 지적 사항과 반영 내용을 Table 2 에 나타내었다.
Table 2. v1.0.1.6 최초안의 지적 사항과 반영
| 지적 사항 | 반영 내용 |
|---|---|
| 하루 운행 편수가 많은 노선에서 목록을 묶음 안에 펼치면 화면이 지나치게 길어짐 | 열차 목록을 아래에서 올라오는 시트로 표시. 태블릿·PC 폭에서는 가운데 창 |
| 열차 행과 시각·차종 행이 함께 보여 입력 항목이 중복됨 | 기본 화면은 노선, 출발역, 도착역, 날짜, 열차 5행. 시각·차종 3행은 직접 입력을 고르거나 목록을 쓸 수 없을 때만 표시 |
| 보관함이 잠긴 동안 기기에만 저장하면 기기와 보관함의 내용이 어긋남 | 보관함을 열 때 기기와 보관함의 즐겨찾기를 합쳐 양쪽에 기록. 지운 항목은 삭제 기록으로 반영 |
| 목록을 받는 동안의 대기 표시가 없음 | 회전 표시와 빈 줄 6줄 표시. 같은 날짜·구간은 탭을 닫을 때까지 다시 받지 않음 |
수정안을 다시 제시한 결과 승인 판정이 나타났으며, 승인과 함께 제시된 세부 사항의 반영 여부를 Table 3 에 나타내었다.
Table 3. v1.0.1.6 승인 조건의 반영 여부
| 승인 조건 | 반영 | 수정 내용 |
|---|---|---|
| 직접 입력 단추를 목록 끝이 아닌 고정 영역에 배치 | 반영 | 시트 머리의 오전·오후·저녁 단추 옆에 고정 |
| 임시열차와 운행 중지를 반영할 수 있게 함 | 일부 반영 | 시트에 새로 고침 단추 추가. 서버 쪽 보관 시간 단축은 서버 작업으로 남김 |
| 자정을 넘겨 도착하는 열차 표시 | 반영 | 도착 시각 옆에 +1 표시 |
| 기기에만 있는 즐겨찾기의 유실 경고 | 반영 | 항목마다 「보관함」 또는 「기기에만 있음」 표지와 안내 문장 표시 |
2.3 구성
- 열차 목록. 한 줄에 출발·도착 시각, 차종, 열차 번호, 소요 시간, 어른 운임을 표시하였다. 좌석 배치 자료가 없는 열차는 흐리게 두고 「좌석 자료 없음」을 붙여 고를 수 없게 하였다. 목록은 선택한 날짜가 오늘이면 현재 시각, 아니면 입력된 출발 시각에 가까운 열차로 이동하도록 하였다.
- 차종 연결. 열차 목록의 등급 이름을 도구의 차종 7종에 연결하였다. KTX-산천 가운데 A·B 구분이 없는 열차는 A타입으로 계산하고 「A·B 표기 없음」을 표시하였다.
- 예외 처리. 목록을 받지 못하거나 열차가 없는 날짜(약 4주 이후)이거나 내려받은 파일로 실행한 경우 시각과 차종 행을 표시하여 직접 입력하게 하였다. 시각이나 차종을 손으로 고친 경우에는 열차 선택을 「직접 입력」으로 변경하였다.
- 시트의 이동. 목록 안의 위치 이동이 게시판 지면 전체를 움직이지 않도록 시트 안쪽만 이동하게 하였다.
- 사이트 보관함. 즐겨찾기는 기기에 항상 암호화하여 저장하였다. 사이트 회원의 보관함이 이미 열려 있으면 시작할 때 기기와 보관함을 맞추도록 하였다. 보관함이 잠겨 있으면 「보관함과 맞추기」 단추를 누를 때만 암호 창을 표시하도록 하였다. 별을 누를 때에는 암호 창을 표시하지 않는다. 비회원에게는 로그인하면 보관함을 쓸 수 있다는 안내를 표시하였다.
게시판 지면의 실제 목록으로 시험한 결과 서울에서 부산까지 하루 열차가 표시되었으며, 열차를 고르면 시각과 차종이 채워지는 것을 확인하였다. 보관함 연동은 보관함을 흉내 낸 시험 환경에서 확인하였으며, 실제 보관함은 회원이 보관함 암호를 정한 뒤 확인할 예정이다. 결과를 Fig. 1 에 나타내었다.

예매 사이트 순서의 입력 화면 (v1.0.1.7)
3.1 수정 배경
v1.0.1.6 의 입력 순서는 노선, 출발역, 도착역, 날짜, 열차였다. 개발자는 열차 정보의 구조에 맞는 입력 순서를 요구하였다. 날짜, 출발역, 도착역, 출발 예정 시각을 차례로 고르면 그 시각 이후 열차가 시간순으로 표시되고 차종이 자동으로 입력되는 방식이다. 코레일 예매 사이트의 승차권 예매 화면을 조회 단계까지 확인한 결과, 출발역과 도착역을 고른 뒤 출발일과 시 단위 시각(예 15시 이후 출발)을 한 창에서 고르고, 조회하면 그 시각 이후 열차 10편이 시간순으로 표시되었다.
3.2 디자인 자문과 승인 검토
최초 수정안은 열차 행 아래에 그 시각 이후 5편을 묶음 안에 바로 표시하는 방식이었다. 외부 생성형 AI 의 검토 결과는 승인 불가였으며, 지적 사항과 반영 내용을 Table 4 에 나타내었다.
Table 4. v1.0.1.7 최초안의 지적 사항과 반영
| 지적 사항 | 반영 내용 |
|---|---|
| 도착역을 같은 노선으로만 제한하면 서울·용산처럼 여러 노선이 나가는 역에서 목적지를 고르지 못함 | 갈아타지 않고 갈 수 있는 모든 역을 표시. 서울과 용산은 같은 출발지로 처리 |
| 두 역만으로는 노선을 정할 수 없는 경우가 있음 | 두 역이 함께 있는 노선 선형으로 계산. 겹치는 구간은 선로가 같아 결과가 같음. 기존선 경유 열차는 고속선 선형으로 계산한다는 내용을 계산 가정에 추가 |
| 묶음 안 목록은 설정 화면의 관례와 맞지 않음 | 묶음 안 목록을 없애고 기존 열차 목록 시트를 사용 |
| 지정 시각 이전 열차를 찾기 어려움 | 시트는 하루 전체 목록을 유지하고 지정 시각 열차를 맨 위로 이동. 이전 열차는 위로 올려 확인 |
수정안을 다시 제시한 결과 승인 판정이 나타났으며, 승인과 함께 제시된 세부 사항의 반영 여부를 Table 5 에 나타내었다.
Table 5. v1.0.1.7 승인 조건의 반영 여부
| 승인 조건 | 반영 | 수정 내용 |
|---|---|---|
| 출발 시각을 시 단위 선택으로 변경 | 반영 | 0시~23시 선택. 오늘이면 현재 시각의 정시가 기본값 |
| 출발 시각과 열차 행의 두 단계 조작 | 반영 | 출발 시각을 고르면 열차 목록 시트가 그 시각 위치로 바로 열림 |
| 출발 시각을 바꿀 때 고른 열차가 지워짐 | 반영 | 새 열차를 고를 때까지 기존 선택 유지 |
| 날짜를 바꿀 때 시각이 기본값으로 바뀌어 오류로 보일 수 있음 | 반영 | 날짜를 바꿔도 시각을 유지. 오늘로 바꾸었는데 지난 시각이면 현재 시각의 정시로 조정 |
| 서울·용산 통합의 표기 | 일부 반영 | 역 목록에는 두 역을 따로 두고 계산에서만 같은 출발지로 처리. 계산 가정에 명시 |
3.3 구성
- 입력 순서. 날짜, 출발역, 도착역, 출발 시각, 열차. 노선 행은 삭제하였으며 노선은 두 역으로 자동 판정하였다.
- 역 목록. 출발역 24개를 서울·수도권, 경부선, 호남선, 전라선으로 묶어 표시하였다. 도착역은 출발역에서 갈아타지 않고 갈 수 있는 역만 표시하였다. 서울 출발에서 목포를 고르면 호남선 선형(용산 기준)으로, 광주송정에서 서울을 고르면 호남선 선형으로 계산하였다.
- 열차 행. 열차를 고르기 전에는 「17시 이후 27편」처럼 지정 시각 이후 편수를 표시하고, 고른 뒤에는 출발·도착 시각과 차종·열차 번호를 표시하였다.
서울에서 부산, 10월 9일, 17시 이후를 고른 시험에서 시트가 17:13 열차를 맨 위로 하여 열리는 것을 확인하였다. 이 열차를 고르면 차종은 KTX 1세대로 자동 입력되었다. 결과를 Fig. 2 에 나타내었다.

여정과 선호 조건의 두 단계 분리 (v1.0.1.8)
4.1 수정 배경
v1.0.1.7 의 좌석 찾기 화면은 여정과 열차, 원하는 좌석의 두 묶음과 하단의 추천 좌석 보기 단추로 구성되었다. 개발자는 묶음 제목을 삭제하고, 여정과 열차를 고른 뒤 하단의 다음 단추로 선호 조건을 고르는 두 단계 구성을 요구하였다.
4.2 구성
- 첫 화면. 제목 아래에 날짜, 출발역, 도착역, 출발 시각, 열차의 다섯 행만 배치하였다. 묶음 제목과 단계 번호는 삭제하였다.
- 다음 단추. 열차를 고르지 않은 상태에서 누르면 안내 문구와 함께 열차 목록 시트가 열리도록 하였다. 열차를 고른 경우와 직접 입력을 고른 경우에는 선호 조건 시트가 열리도록 하였다.
- 선호 조건 시트. 기존 조건 시트의 이름을 선호 조건으로 바꾸고, 위쪽에 고른 여정과 열차, 현재 조건을 한 줄씩 표시하였다. 머리의 왼쪽에는 닫기, 오른쪽에는 초기화를 배치하였으며, 맨 아래 고정 단추로 추천 결과를 열도록 하였다.
- 결과 화면에서 다시 연 경우. 같은 시트를 쓰되 맨 아래 단추를 조건 적용으로 표시하였다.
4.3 승인 검토의 반영
외부 생성형 AI 의 검토 결과는 승인이었으며, 함께 제시된 사항의 반영 여부를 Table 6 에 나타내었다.
Table 6. v1.0.1.8 승인 의견의 반영 여부
| 의견 | 반영 | 수정 내용 |
|---|---|---|
| 흐린 모양인데 눌리는 단추는 표준과 다름 | 반영 | 다음 단추는 항상 활성 모양. 열차가 없으면 안내와 함께 열차 목록을 엶 |
| 시트 머리의 이전은 맥락에 맞지 않음 | 반영 | 닫기로 변경 |
| 결과 화면에서 연 시트의 단추 문구 | 반영 | 조건 적용으로 표시 |
| 시트 내용이 많아 스크롤이 길어짐 | 보류 | 기존 조건 구성을 유지. 별도 화면 전환은 다음 판 이후 검토 |
화면 폭 390px 과 1180px 에서 첫 화면, 열차 미선택 시 안내, 선호 조건 시트, 추천 결과, 조건 재적용을 시험하였다. 실행 오류는 발생하지 않았다. 결과를 Fig. 3 에 나타내었다.

티켓 분석 탭의 확장 (v1.0.1.9)
5.1 수정 배경
v1.0.1.8 의 티켓 분석은 햇빛, 좌석 분석, 편성도의 세 탭으로 구성되었으며, 판정 근거는 좌석 상세 화면에서만 확인할 수 있었다. 개발자는 판정 근거를 티켓 분석의 탭으로 옮기고, 편의 탭을 추가하며, 탭 이름을 눈부심, 공간, 편의, 편성, 근거로 바꾸도록 요구하였다.
5.2 구성
탭별 내용을 Table 7 에 나타내었다.
Table 7. v1.0.1.9 티켓 분석 탭
| 탭 | 이전 이름 | 내용 |
|---|---|---|
| 눈부심 | 햇빛 | 구간 길이, 터널 비율, 운행 시간, 구간별 좌우 창 햇빛 |
| 공간 | 좌석 분석 | 무릎 앞 여유 옆모습과 비교 막대 |
| 편의 | 신설 | 기준 좌석의 화장실 거리, 출입문 거리, 정차역 에스컬레이터 앞 호차 |
| 편성 | 편성도 | 호차별 조건에 맞는 좌석 수와 상위 12석 |
| 근거 | 좌석 상세의 판정 근거 | 기준 좌석의 판정 근거 전체와 자료 등급 |
편의 탭과 근거 탭의 기준 좌석은 추천 결과에서 고른 좌석이며, 고르지 않은 경우 1위 좌석으로 하였다. 화면 폭 1024px 이상에서는 탭 없이 다섯 카드를 차례로 표시하였다. 좌석 상세 화면의 판정 근거는 유지하였다.
5.3 승인 검토의 반영
외부 생성형 AI 의 검토 결과는 승인이었으며, 함께 제시된 의견의 반영 여부를 Table 8 에 나타내었다.
Table 8. v1.0.1.9 승인 의견의 반영 여부
| 의견 | 반영 | 수정 내용 |
|---|---|---|
| 분석 화면 안에서 기준 좌석을 바꿀 방법이 없음 | 반영 | 편의·근거 탭 위에 기준 좌석 선택(추천 상위 12석) 추가 |
| 준비 중 항목 노출은 미완성 인상을 줌 | 반영 | 편의 탭에 계획한 연계 교통 항목 3건은 구현 전까지 표시하지 않음 |
| 390px 에서 다섯 칸의 누름 영역이 좁음 | 보류 | 칸 너비 71px 로 최소 누름 영역 44px 을 넘음. 개발자가 지정한 다섯 탭 유지 |
| 근거 탭과 다른 탭의 내용 중복 | 보류 | 개발자가 근거를 한곳에서 보는 탭으로 지정 |
화면 폭 390px 과 1440px 에서 다섯 탭과 기준 좌석 변경을 시험하였다. 실행 오류는 발생하지 않았다. 결과를 Fig. 4 에 나타내었다.

추천 좌석의 여정 정보와 자료 출처 (v1.0.1.10)
6.1 수정 배경
v1.0.1.9 의 좌석 상세 화면은 호차, 좌석 번호, 점수만 표시하였으며, 어느 날짜·구간·열차의 좌석인지 확인할 수 없었다. 개발자는 추천 좌석 정보에 구간, 시간, 열차 번호를 모두 포함하고, 판정 근거에 사용한 API 와 자료의 출처를 모두 표시하도록 요구하였다.
6.2 구성
- 여정 정보. 추천 결과와 티켓 분석의 부제목을 두 줄(구간·날짜, 시각·차종·열차 번호)로 표시하였다. 좌석 상세에는 구간, 출발·도착 시각, 차종·열차 번호를 한 묶음으로 추가하였다.
- 좌석 번호 복사. 복사 문구에 날짜, 구간, 출발 시각, 차종·열차 번호, 호차·좌석을 모두 포함하였다. 즐겨찾기에도 같은 여정 한 줄을 저장하여 표시하였다.
- 자료 출처. 판정 근거 아래에 자료 출처를 접힘 항목으로 배치하였다. 항목은 열차, 좌석 배치, 선로 좌표, 태양 위치, 구름 예보(사용 시), 승강장의 여섯 가지이다. 열차는 국토교통부_(TAGO)_열차정보, 선로 좌표는 OpenStreetMap 과 Nominatim, 태양 위치는 NOAA 계산식, 구름 예보는 Open-Meteo 이다. 각 항목의 번호는 참고문헌 목록 번호와 같다. 열차 정보 API 를 참고문헌에 추가하였다.
6.3 디자인 자문과 승인 검토
최초안에 대한 외부 생성형 AI 의 검토 결과는 승인 불가였으며, 지적 사항과 반영 내용을 Table 9 에 나타내었다.
Table 9. v1.0.1.10 최초안의 지적 사항과 반영
| 지적 사항 | 반영 내용 |
|---|---|
| 부제목이 390px 폭에서 한 줄에 들어가지 않음 | 구간·날짜와 시각·열차의 두 줄로 분리 |
| 출처 목록이 상세 화면의 여백과 정돈을 해침 | 자료 출처를 접힘 항목으로 두고 누를 때만 펼침 |
| 일반 이용자는 계산식과 좌표 출처에 관심이 적음 | 접힘 항목으로 처리. 개발자의 전체 표시 요구에 따라 설정 화면으로 옮기지 않음 |
| 복사 문구에 여정 전체를 넣는 것은 유지 | 유지 |
수정안을 다시 제시한 결과 승인 판정이 나타났다. 승인과 함께 제시된 좁은 화면의 겹침 문제는 여정 묶음의 줄바꿈 처리로 반영하였으며, 접힘 항목 대신 시트로 여는 방식은 보류하였다.
화면 폭 390px 에서 추천 결과, 좌석 상세, 자료 출처 펼침, 즐겨찾기 저장을 시험하였다. 실행 오류는 발생하지 않았다. 결과를 Fig. 5 에 나타내었다.

세 단계 화면과 창 크기별 배치 (v1.0.2.0)
7.1 수정 배경과 시안
v1.0.1.10 의 하단 탭은 좌석 찾기, 티켓 분석, 즐겨찾기, 설정 네 개였다. 판정 근거와 티켓 분석이 같은 내용을 두 화면에 나누어 보여 주었으며, 하단 탭만으로는 입력이 어느 단계까지 진행되었는지 알 수 없었다. 또한 게시 글에서 도구를 폭 520px, 높이 860px 이하의 틀에 표시하였다. 이로 인하여 PC 화면에서는 휴대폰 배치만 보이고, 사이트 머리에 가려 도구의 위나 아래가 잘리는 문제가 있었다.
본편에 반영하기 전에 열차 자료를 모두 더미로 둔 시안(OptRail_concept_v1.0.2.0.html)을 작성하였다. 시안을 외부 생성형 AI 에 제시한 결과는 승인이었으며, 고칠 점 4건 중 즐겨찾기 표시 개수 제한과 탭 전환 시 스크롤 보정 2건을 반영하였다. 3단 화면에서 단계 표시를 숨기자는 의견은 단계 표시를 두라는 지시와 맞지 않아 반영하지 않았다. 사용자는 시안의 방향을 승인하고, 개편한 도구를 본편 2편으로 게시하도록 지시하였다.
7.2 지시 사항과 반영
사용자 지시 5건과 반영 내용을 Table 10 에 나타내었다.
Table 10. v1.0.2.0 지시 사항과 반영
| 지시 | 반영 내용 |
|---|---|
| 좌석 찾기의 판정 근거 삭제 | 좌석 상세의 판정 근거 표와 자료 출처 묶음을 삭제 |
| 티켓 분석의 내용을 판정 근거 자리에 붙임 | 좌석 상세의 판정 근거 자리에 눈부심, 공간, 편의, 편성, 근거 다섯 탭을 둠. 자료 출처는 근거 탭 안의 접힘 항목. 기준 좌석은 상세 화면의 좌석으로 고정하여 기준 좌석 선택 상자를 삭제 |
| 티켓 분석 아이콘 삭제 | 티켓 분석 화면과 아이콘을 삭제 |
| 열차 아래 즐겨찾는 좌석, 즐겨찾기 아이콘 삭제 | 찾기 화면의 열차 행 아래에 즐겨찾는 좌석을 최근 것부터 3개 표시하고 나머지는 더보기로 펼침. 편집 단추로 삭제. 즐겨찾기 화면과 아이콘을 삭제 |
| 하단 아이콘을 찾기, 기호, 추천으로 재구성하고 점선으로 연결 | 현재 단계는 파란 원, 도달한 단계는 파란 테두리, 도달한 구간의 점선은 파란색. 기호는 선호 조건 시트를 염. 도달하지 않은 단계를 누르면 안내 문구를 표시 |
설정 아이콘은 단계 표시에서 제외되어 찾기 화면 오른쪽 위의 톱니 단추로 이관하였다. 설정 화면에는 좌석 찾기로 돌아가는 단추를 추가하였다. 탭을 바꾸면 탭 메뉴가 화면 위쪽에 오도록 스크롤을 보정하였다.
7.3 창 크기별 배치
창 크기 등급은 휴대폰 운영체제의 창 크기 기준(600, 840, 1200, 1600px)을 적용하였다. 등급별 배치를 Table 11 에 나타내었다.
Table 11. 창 크기 등급별 배치
| 창 폭 | 배치 | 단계 표시 |
|---|---|---|
| 600px 미만 | 1단 | 아래쪽 |
| 600~840px | 1단, 폭 520px 가운데 | 아래쪽 |
| 840~1200px | 2단. 왼쪽 380px 찾기, 오른쪽 추천. 좌석을 고르면 오른쪽이 좌석 상세로 바뀜 | 위쪽 막대 |
| 1200~1600px | 3단. 찾기, 추천 목록, 좌석 상세 | 위쪽 막대 |
| 1600px 이상 | 3단, 최대 폭 1440px 가운데 | 위쪽 막대 |
| 높이 480px 미만 | 위와 같음 | 단계 이름을 숨기고 원을 줄임 |
넓은 화면에서는 찾기 칸이 늘 보이므로, 단계 표시의 현재 단계는 마지막으로 누른 단계를 따르게 하였다. 본편 2편의 게시 글에서는 도구 틀을 글 본문 칸 밖으로 확장하여 창 폭 전체를 사용하였다. 스크롤 막대 폭을 빼기 위하여 틀의 폭과 위치는 스크립트로 맞추었고, 높이는 창 높이에서 사이트 머리 64px 를 뺀 값으로 설정하였다.
7.4 시험 결과
시험은 게시판 지면을 흉내 낸 환경에서 실제 열차 목록 자료로 수행하였다. 창 크기는 390×844, 700×900, 1000×800, 1300×850, 1700×950, 800×420 의 6종이다. 찾기, 기호, 추천, 좌석 상세, 찾기 순으로 이동하며 단계 표시의 색과 점선, 즐겨찾는 좌석 3개와 더보기, 설정 화면의 열고 닫기를 확인하였다. 6종 모두 가로 넘침과 스크립트 오류가 없었다. 결과를 Fig. 6 에 나타내었다.

7.5 적용판의 승인 검토
적용판을 외부 생성형 AI 에 제시한 결과는 승인이었으며, 함께 제시된 의견과 처리를 Table 12 에 나타내었다.
Table 12. v1.0.2.0 적용판 검토 의견과 처리
| 의견 | 처리 |
|---|---|
| 휴대폰 주소창이 나타나고 숨을 때의 높이 변화 대응 | 틀의 높이는 이미 동적 창 높이 기준의 CSS 값으로 계산함. 폭만 스크립트로 맞춤 |
| 여정 입력 전에 기호를 누르면 빈 열차 목록이 열릴 수 있음 | 출발역과 도착역은 기본값이 있으며, 목록을 받지 못하면 직접 입력 행을 표시하므로 현행 유지 |
| 휴대폰의 뒤로 가기 동작으로 게시 글을 벗어남 | 다음 판에서 검토. 게시 글 안 틀의 방문 기록이 사이트 방문 기록과 섞이는 문제를 먼저 확인해야 함 |
| 3단 화면에서 단계를 누를 때 해당 칸 강조 | 다음 판에서 검토 |
| 사이트 전체 스크롤과 틀 안 스크롤의 중복 | 글 제목과 요약이 틀 위에 있으므로 사이트 스크롤을 유지함 |
게시 화면과 색조 정리 (v1.0.2.1)
8.1 수정 배경
본편 2편을 공개한 뒤 사이트의 글 제목 상자 아래에 도구가 놓여, PC 화면에서 위쪽 단계 막대와 아래쪽 「다음」 단추가 한 화면에 보이지 않았다. 도구 아래에는 「새 창에서 열기」, 날짜와 글쓴이, 「이 글만 따로 보기」 자리가 남아 있었다. 도구의 회색 바탕은 사이트의 크림색 바탕과 달라 두 양식이 어긋나 보였다.
8.2 지시 사항과 반영
사용자 지시와 반영 내용을 Table 13 에 나타내었다.
Table 13. v1.0.2.1 지시 사항과 반영
| 지시 | 반영 내용 |
|---|---|
| 본편의 글 제목과 요약 삭제. 이후 모든 본편에 같게 적용 | 글 안의 스크립트와 스타일이 그 글의 제목·요약 상자를 숨김. 본편 생성기가 본편 2편부터 같은 코드를 넣으므로 이후 본편에도 적용 |
| 제목 대신 도구 안에 OptRail 로고 | 사이트 강조색의 둥근 사각형 안에 좌석 옆모습, 점선 선로, 해를 그린 표식과 「OptRail」 글자, 「KTX 좌석 추천」 부제. 840px 이상은 위쪽 단계 막대 왼쪽, 휴대폰은 찾기 화면 왼쪽 위, 1960px 이상은 도구 바깥 왼쪽 여백에 큰 로고와 세 단계 설명 |
| 사이트 색조로 도구 색 변경 | 바탕 #fbfcf6, 선 #e3e4dd, 글자 #111·#5f5f5a, 강조 파랑 #3b6fd4, 빨강 계열 #b5502a. 글꼴은 사이트와 같은 Pretendard 우선 |
| 새 창에서 열기, 날짜, 글쓴이, 이 글만 따로 보기 자리 삭제 | 본편 2편부터 새 창에서 열기 단추를 만들지 않고, 날짜·글쓴이 줄과 이 글만 따로 보기 연결을 숨김 |
| 단계 막대와 다음 단추를 한 화면에 | 틀의 높이를 창 높이에서 사이트 머리 높이를 뺀 값으로 두고, 글을 열면 틀의 위끝이 사이트 머리 바로 아래에 오도록 자동 이동 |
사이트 서버 수정 없이 글 안의 코드로 처리할 수 있어 서버 작업 지시는 만들지 않았다. 시험은 사이트 구조를 흉내 낸 화면에서 2000×900, 1300×850, 900×700, 390×844 의 4종으로 수행하였다. 4종 모두 틀의 위끝이 사이트 머리 아래, 아래끝이 창 아래와 일치하였다. 결과를 Fig. 7 에 나타내었다. 외부 생성형 AI 의 검토 결과는 승인이었다. 의견에 따라 자동 이동은 글을 연 직후 한 번만, 이용자가 아직 스크롤하지 않은 경우에 부드럽게 동작하도록 하였으며, 가장 옅은 글자색은 #8a8a85 로 어둡게 하였다.

지난 열차의 구분 (v1.0.2.2)
오전 11시 55분에 목록을 열었을 때 이미 출발한 10시대 열차도 고를 수 있다는 지적이 있었다. 출발한 열차의 좌석을 추천하는 것은 의미가 없으므로, 오늘 날짜에서 출발 시각이 현재 시각보다 이른 열차를 「지난 열차」로 구분하였다. 처리 내용을 Table 14 에 나타내었다.
Table 14. 지난 열차의 처리
| 자리 | 처리 |
|---|---|
| 열차 목록 | 회색 글자와 「지난 열차」 표시. 목록에서 지우지 않고 조회만 가능 |
| 지난 열차를 누를 때 | 「지난 열차입니다」 안내만 표시하고 선택하지 않음 |
| 열차 행의 편수 | 「N시 이후 M편」의 편수에서 지난 열차를 제외 |
| 목록을 열 때 | 지난 열차를 건너뛰고 첫 출발 가능 열차로 이동 |
| 이미 고른 열차가 지난 경우 | 다음 단추나 기호 단계를 누르면 안내 후 열차 목록을 다시 엶 |
현재 시각은 한국 시간 기준 분 단위로 비교하였다. 시계를 11시 55분으로 고정한 시험에서 서울에서 부산까지 86편 중 29편이 지난 열차로 표시되었으며, 첫 선택 가능 열차는 11시 58분 열차였다. 외부 생성형 AI 의 검토 결과는 승인이었다. 출발 몇 분 전부터 예매가 막히므로 여유 시간을 두라는 의견은 예매 마감 시각을 확인하지 못하여 반영하지 않았다. 안내 문구 없이 누름 자체를 막으라는 의견은 안내를 띄우라는 사용자 지시와 맞지 않아 반영하지 않았다.
v1.0.2.3 에서는 지난 열차가 회색 글자만으로는 「좌석 자료 없음」 열차와 구분되지 않는다는 지적에 따라 표시를 강화하였다. 지난 열차 줄은 빗금 바탕, 시각 취소선, 운임 자리의 「지난 열차」 표지로 나타내었다. 지난 열차와 출발 가능 열차 사이에는 현재 시각을 적은 가로줄을 두고, 목록을 열면 이 줄이 맨 위에 오도록 하였다. 결과를 Fig. 8 에 나타내었다. 외부 생성형 AI 의 검토 결과는 승인이었다. 빗금 대신 옅은 단색 바탕을 쓰자는 의견은 비활성 상태를 더 분명히 하라는 사용자 지시에 따라 반영하지 않았다. 화면 낭독기 대응 의견은 지난 열차 줄에 비활성 속성과 「지난 열차」 글자 표지가 이미 있어 추가 조치가 필요하지 않았다.

결정 필요 사항
개발일지 1편 26.1절의 검토에 따라 결정 필요 사항을 처리 시점별로 정리하였으며, 그 결과를 Table 15 에 나타내었다.
Table 15. 결정 필요 사항 (v1.0.2.0 기준)
| 시점 | 사항 | 결정자 | 관련 단계 |
|---|---|---|---|
| 완료 | 반응형 시안의 채택과 본편 2편 게시(7장) | SHIN | S5, S6 |
| 지금 | 달력의 예보 없는 날 표시 방식(노란 음영 유지 또는 날짜 아래 점) | SHIN | S6 |
| 지금 | 첫 공개판의 기능 채택 항목 | SHIN | S3 |
| 지금 | 웹 게시 위치(사이트 하위 경로 또는 하위 도메인). 정회원 계정 서버 구축의 선행 조건 | SHIN | S5 |
| 완료 | 공공 API 활용신청(개발일지 1편 38.1절) | SHIN | S8 |
| 완료 | 입력 화면을 날짜·구간 선택 후 열차 목록에서 고르는 방식으로 변경(2장) | SHIN | S8 |
| 완료 | 공개 게시 시 인증키 보호 방식. 사이트 서버의 중계 경로로 결정(2장) | SHIN | S5 |
| 지금 | 보관함 암호 설정과 실제 보관함 연동 확인 | SHIN | S5 |
| 이후 | 서버 쪽 열차 목록 보관 시간 단축(하루에서 수 시간) | SHIN | S5 |
| 이후 | KTX 승강장 호차 위치의 추가 조사. 승강장 평면도와 정차 위치의 정보공개청구, 현장 확인 | SHIN | S11 |
| 이후 | 준비 중 조건 3종의 자료 조사 순서 | SHIN | S9 |
| 이후 | A열 좌우 위치 실측(열차 탑승 시). 좌면 높이, 특실 좌석 치수, 등받이 젖힘 각도, 팔걸이 높이 실측 포함 | SHIN | S4 |
| 이후 | 게시판 이름 변경(Rail 에서 OptRail 로) | SHIN | S2 |
| 이후 | 핵심기능·주요기능의 분류 기준 재정의(22.3절) | SHIN | S7 |
| 이후 | 휴대폰 뒤로 가기 동작의 처리와 3단 화면의 칸 강조(7.5절) | SHIN | S6 |
| 보류 | 빈자리 알림 기능과 약관 확인 | SHIN | 해당 없음 |
결론
v1.0.1.6 부터 v1.0.2.3 까지의 개발 경과를 정리하면 다음과 같다.
- v1.0.1.6 에서는 날짜와 구간을 고르면 그날 열차 목록에서 고르는 입력 방식으로 변경하고, 즐겨찾기를 사이트 보관함과 맞추는 기능을 추가하였다.
- v1.0.1.7 에서는 입력 순서를 날짜, 출발역, 도착역, 출발 시각으로 바꾸고, 시 단위로 고른 시각 이후 열차를 시간순으로 표시하여 차종이 자동으로 입력되게 하였다.
- v1.0.1.8 에서는 묶음 제목을 삭제하고, 여정과 열차를 고른 뒤 다음 단추로 선호 조건 시트를 여는 두 단계 구성으로 바꾸었다.
- v1.0.1.9 에서는 티켓 분석의 탭을 눈부심, 공간, 편의, 편성, 근거 탭 다섯 개로 확장하였다.
- v1.0.1.10 에서는 추천 좌석에 구간, 시각, 열차 번호를 표시하고, 판정 근거에 사용한 API 와 자료의 출처를 접힘 항목으로 표시하였다.
- v1.0.2.0 에서는 화면을 찾기, 기호, 추천 세 단계로 개편하였다. 티켓 분석은 좌석 상세의 판정 근거 자리로, 즐겨찾는 좌석은 찾기 화면의 열차 아래로 이관하였다. 창 크기에 따라 1단에서 3단까지 배치하고, 본편 2편으로 게시하였다.
- v1.0.2.1 에서는 본편의 글 제목과 날짜 자리를 숨기고 도구 안에 로고를 추가하였다. 도구의 색을 사이트 색조로 바꾸고, 단계 막대와 다음 단추가 한 화면에 보이도록 틀의 높이와 위치를 맞추었다.
- v1.0.2.2 에서는 오늘 날짜에서 이미 출발한 열차를 회색으로 표시하고, 선택하면 「지난 열차입니다」 안내만 표시하도록 하였다.
- v1.0.2.3 에서는 지난 열차를 빗금 바탕, 시각 취소선, 표지로 구분하고, 출발 가능 열차와의 경계에 현재 시각 줄을 추가하였다.
다음 판은 Table 15 의 「지금」 항목 결정에 따라 진행한다.
REFERENCES
- [1][1] KTX 좌석배치도 · 코레일톡. https://korailtalk.co.kr/299/
- [2][2] KTX-산천 좌석배치도(A타입) · 코레일톡. https://korailtalk.co.kr/304/
- [3][3] 신형 KTX-산천(타입B) 좌석배치도 · 코레일톡. https://korailtalk.co.kr/486/
- [4][4] KTX-이음 좌석배치도 · 코레일톡. https://korailtalk.co.kr/704/
- [5][5] KTX-청룡 좌석배치도 · 코레일톡. https://korailtalk.co.kr/763/
- [6][6] ITX-마음 좌석배치도 · 코레일톡. https://korailtalk.co.kr/758/
- [7][7] ITX-새마을 좌석배치도 · 코레일톡. https://korailtalk.co.kr/293/
- [8][8] 새로나온 열차, ITX-마음을 소개합니다 · 코레일톡. https://korailtalk.co.kr/750/
- [9][9] KTX-I · Wikipedia(영문). https://en.wikipedia.org/wiki/KTX-I
- [10][10] KTX-I · 위키백과(한국어). https://ko.wikipedia.org/wiki/KTX-I
- [11][11] KTX-Sancheon · Wikipedia(영문). https://en.wikipedia.org/wiki/KTX-Sancheon
- [12][12] KTX-산천 · 위키백과(한국어). https://ko.wikipedia.org/wiki/KTX-산천
- [13][13] KTX-이음 · 위키백과(한국어). https://ko.wikipedia.org/wiki/KTX-이음
- [14][14] KTX-Eum · Wikipedia(영문). https://en.wikipedia.org/wiki/KTX-Eum
- [15][15] KTX-Cheongryong · Wikipedia(영문). https://en.wikipedia.org/wiki/KTX-Cheongryong
- [16][16] 한국철도공사 홍보센터 기차소개 KTX. https://info.korail.com/info/contents.do?key=1503
- [17][17] 한국철도공사 홍보센터 기차소개 KTX-산천. https://info.korail.com/info/contents.do?key=1504
- [18][18] 한국철도공사 홍보센터 기차소개 KTX-산천(원강). https://info.korail.com/info/contents.do?key=2730
- [19][19] 한국철도공사 홍보센터 기차소개 KTX-청룡. https://info.korail.com/info/contents.do?key=2731
- [20][20] 한국철도공사 홍보센터 기차소개 ITX-새마을. https://info.korail.com/info/contents.do?key=1507
- [21][21] 한국철도공사 홍보센터 기차소개 ITX-마음. https://info.korail.com/info/contents.do?key=2732
- [22][22] 코레일 직원이 알려줬다는 'KTX 명당' 좌석 · 위키트리. https://www.wikitree.co.kr/articles/1134067
- [23][23] 예매 전에 꼭 알아야 할 KTX 꿀팁 6가지 · 위키트리. https://www.wikitree.co.kr/articles/1092477
- [24][24] KTX 좌석 배치도를 활용한 최고의 KTX 좌석 선택 방법 · 트립닷컴. https://kr.trip.com/guide/train/KTX+.html
- [25][25] KTX 좌석 배치도 / KTX 좋은 좌석 자리는 어디일까? · 블로그. https://fearless.co.kr/577
- [26][26] KTX에도 편한 좌석이? · 브런치. https://brunch.co.kr/@azafa/737
- [27][27] 고속버스·KTX 명당 좌석 꿀팁 · 경기도 게시판. https://gits.gg.go.kr/web/newboard/5567.do?mode=view&idx=188197139
- [28][28] [박병선의 열차이야기] KTX-이음 · 철도경제신문. https://www.redaily.co.kr/news/articleView.html?idxno=2408
- [29][29] KTX(차량) · 나무위키. https://namu.wiki/w/KTX()
- [30][30] KTX 산천 차이 · 이즐 블로그. https://blog.myezl.com/ktx-------/
- [31][31] ITX-Saemaeul · Wikipedia(영문). https://en.wikipedia.org/wiki/ITX-Saemaeul
- [32][32] 코레일의 신형 ITX-새마을 공개 · 코레일톡. https://korailtalk.co.kr/168/
- [33][33] KTX-산천 · 나무위키. https://namu.wiki/w/KTX-
- [34][34] 코레일 열차 좌석배치도(공식, 본문 미판독). https://www.korail.com/ticket/train/trainGuide/seatingPlan
- [35][35] KTX 예매 좋은 좌석부터 모든 꿀팁 총정리 · 여행톡톡. https://www.tourtoctoc.com/news/articleView.html?idxno=54
- [36][36] Open-Meteo Forecast API. https://open-meteo.com/en/docs
- [37][37] OpenStreetMap API v0.6. 경로 관계 11214334, 11272646, 11272647. © OpenStreetMap contributors, ODbL. https://api.openstreetmap.org/
- [38][38] Nominatim 지명 검색 서비스. https://nominatim.openstreetmap.org/