본문으로 건너뛰기

실행·화면·거래 문제 해결

오류가 난 단계부터 확인하세요. HTTP 상태가 200이어도 거래 응답에 오류가 있을 수 있으므로 응답 본문과 서버 로그를 함께 봅니다.

서버에 접속되지 않음​

  1. ack 터미널이 열려 있고 기동 오류 없이 대기 중인지 확인합니다.
  2. 실행 로그의 포트와 브라우저 주소를 비교합니다. 기본 주소는 http://localhost:8421입니다.
  3. 다른 프로그램이 같은 포트를 사용하는지 확인합니다. 포트를 바꿨다면 화면의 서버 연결 설정도 함께 맞춥니다.

관리 화면이 열리면 게시판 첫 조회로 돌아갑니다. 명령을 찾지 못하거나 런타임 오류가 나면 도구 확인을 먼저 수행하세요.

화면이 비어 있거나 리소스가 404임​

BOD010.html을 파일 탐색기에서 직접 열지 말고 http://localhost:8421/view/BOD/BOD010.html로 접속하세요.

브라우저 개발자 도구의 Network에서 HTML, syn.loader.js와 화면 JS 요청을 확인합니다. 404인 파일은 계약 파일 경로와 비교하세요. 설정을 변경했다면 wwwroot 모듈의 계약 위치도 확인합니다.

수정 후 새로고침했을 때 화면과 필요한 리소스가 모두 로드되면 다시 조회합니다.

no such table: Board​

실제로 연결된 SQLite 데이터베이스에 Board 테이블이 없는 상태입니다. 배포본에 따라 첫 조회에서 빈 테이블을 자동 생성할 수도 있으므로 모든 환경에서 이 오류가 나는 것은 아닙니다.

처음 실행하는 실습용 예제​

초기화하면 기존 게시글이 삭제됩니다

게시판 Board 테이블 초기화는 ZD01 계약으로 기존 Board 데이터와 ID 순번을 지우고 예제 데이터를 넣습니다. 기존 데이터가 있는 환경이나 운영 DB에서 실행하지 마세요.

  1. 별도로 준비한 실습 환경인지 확인합니다.
  2. 예제 화면의 게시판 Board 테이블 초기화 버튼을 누르고 확인 메시지를 읽습니다.
  3. 초기화 완료 후 조회를 누릅니다. 게시글이 표시되면 해결된 것입니다.

기존 데이터가 있는 환경​

초기화하지 말고 BOD010.xml의 datasource와 서버에 등록된 데이터 원본이 의도한 DB 파일을 가리키는지 확인하세요. 배포본에 포함된 파일과 현재 편집한 계약이 같은지도 비교합니다.

연결을 바로잡은 뒤 조회를 다시 수행합니다. 설정 항목은 dbclient 레퍼런스를 참고하세요.

오류는 없는데 목록이 비어 있음​

  • 제목을 비우고 분류를 ‘전체’로 바꿉니다. 날짜 범위에 데이터의 작성일이 포함되는지 확인하세요.
  • 응답 본문에 데이터가 있는지 확인합니다. 없다면 SQL 조건과 연결 DB를 확인합니다.
  • 응답에는 데이터가 있는데 화면만 비었다면 HTML의 syn-datafield와 JS의 outputs[].dataFieldID, 계약의 출력 형식과 순서를 비교합니다.

이름을 맞춘 뒤 다시 조회해 표시 여부를 확인하세요. 거래 호출의 연결 규칙을 참고합니다.

컨트롤이 보이지 않거나 pageLoad가 실행되지 않음​

화면은 열리는데 그리드나 입력 컨트롤이 그려지지 않거나, 열자마자 실행되어야 할 조회가 일어나지 않을 때 확인합니다.

  1. 브라우저 Console에서 syn-options 문법 오류와 스크립트 구문 오류를 먼저 찾습니다. 구문 오류가 있으면 화면 객체가 만들어지지 않아 pageLoad도 실행되지 않습니다.
  2. 화면 JS의 객체 이름이 파일 이름과 같은지 확인합니다. BOD010.js는 $BOD010이어야 합니다.
  3. Network에서 화면에 쓰는 컨트롤 스크립트(syn_* 태그에 대응하는 파일)와 라이선스 라이브러리가 로드되는지 확인합니다.
  4. hook.pageLoad 안에서 앞쪽 return이나 예외로 조회 호출까지 도달하지 못하는지 확인합니다.

컨트롤이 그려지고 pageLoad가 실행되면 해결된 것입니다. 이후 요청이 나가지 않으면 아래 "거래 설정이나 계약을 찾지 못함"으로 이어집니다.

거래 설정이나 계약을 찾지 못함​

화면 JS의 거래 이름, JSON의 ServiceID, XML의 statement id를 대조하세요. HDS / BOD / BOD010 / LD01이 각각 어느 파일과 항목인지 식별자 레퍼런스에서 확인할 수 있습니다.

파일을 고친 뒤에도 예전 계약이 실행되면 배포본의 계약 감시·캐시 설정을 확인하세요. 서버 관리 API의 인증이나 공개 거래 범위를 오류 회피 목적으로 풀지 마세요.

응답이나 콘솔에 나온 문구로 원인을 찾으려면 거래 오류 메시지에서 서버 ExceptionText와 화면 로더 경고를 발생 조건별로 확인하세요.

수정했는데 예전 동작이 나옴​

수정한 파일과 실제로 실행되는 파일이 다를 수 있습니다. 앞에서부터 확인하세요.

  1. 서버가 읽는 파일이 원본인지 배포 복사본인지 확인합니다. 시작할 때 모듈의 Contracts가 contracts 폴더로 복사되는 설정(IsCopyContract)이면 복사본을 고쳐야 반영됩니다.
  2. 계약 캐시를 갱신합니다. 파일 감시(IsContractFileWatching)가 꺼져 있으면 refresh 관리 API를 호출하거나 재시작합니다(관리 API 공통 규칙). C# 함수는 컴파일 결과가 파일 경로 단위로 캐시됩니다.
  3. 브라우저 캐시를 비웁니다. syn.config.json이 세션 캐시에 남아 있으면 SystemVersion 값을 바꿔 갱신합니다(syn.config.json).
  4. 빌드나 배포 스크립트가 수정한 파일을 덮어쓰지 않았는지 확인합니다.

같은 입력으로 다시 실행해 새 동작이 나오면 해결된 것입니다. 서버 관리 API의 인증이나 공개 거래 범위를 풀어서 확인하지 마세요.

재현 정보를 정리하려면 결함 재현과 원인 분석을 확인하세요.