Skip to content

자주 발생하는 오류

hong-ik 프로그래밍 중 자주 만나는 오류와 해결 방법을 정리합니다.

타입 불일치 오류

오류 메시지

타입 오류: '문자' 타입을 '정수' 타입에 대입할 수 없습니다

원인

변수에 선언된 타입과 다른 타입의 값을 대입하려고 할 때 발생합니다.

해결 방법

타입 변환 함수를 사용하세요:

hik
// 잘못된 코드
// 정수 x = "42"

// 올바른 코드
정수 x = 정수변환("42")
출력(x)    // 42

연산에서도 타입을 맞춰야 합니다:

hik
// 잘못된 코드
// 문자 결과 = "나이: " + 25

// 올바른 코드
문자 결과 = "나이: " + 문자변환(25)
출력(결과)

정의되지 않은 변수 오류

오류 메시지

이름 오류: '변수이름'이(가) 정의되지 않았습니다

원인

선언하지 않은 변수를 사용하거나, 변수 이름에 오타가 있을 때 발생합니다.

해결 방법

  1. 변수를 먼저 선언하세요:
hik
// 잘못된 코드
// 출력(이름)    // '이름'이 정의되지 않음

// 올바른 코드
문자 이름 = "홍길동"
출력(이름)
  1. 오타가 없는지 확인하세요:
hik
정수 점수 = 85
// 출력(점수수)   // 오타! '점수수' → '점수'
출력(점수)        // 올바름
  1. 변수의 스코프를 확인하세요. 블록 내부에서 선언한 변수는 블록 바깥에서 접근할 수 없습니다.

인덱스 범위 초과 오류

오류 메시지

인덱스 오류: 인덱스 5이(가) 범위를 벗어났습니다 (배열 길이: 3)

원인

배열의 유효한 범위를 벗어난 인덱스로 접근할 때 발생합니다.

해결 방법

인덱스가 배열 길이 내에 있는지 확인하세요:

hik
배열 목록 = [10, 20, 30]

// 잘못된 코드
// 출력(목록[5])    // 인덱스 범위 초과

// 올바른 코드 - 길이 확인 후 접근
만약 길이(목록) > 2 라면:
    출력(목록[2])    // 30

TIP

배열의 유효한 인덱스 범위는 0부터 길이(배열) - 1까지입니다. 음수 인덱스는 -1(마지막)부터 -길이(배열)(첫 번째)까지 유효합니다.

0으로 나누기 오류

오류 메시지

산술 오류: 0으로 나눌 수 없습니다

원인

나눗셈이나 나머지 연산에서 오른쪽 피연산자가 0일 때 발생합니다.

해결 방법

나누기 전에 0인지 확인하거나, 시도/실패로 처리하세요:

hik
// 방법 1: 사전 검사
함수 안전나눗셈(정수 a, 정수 b) -> 정수:
    만약 b == 0 라면:
        출력("0으로 나눌 수 없습니다")
        리턴 0
    리턴 a / b

출력(안전나눗셈(10, 0))

// 방법 2: 예외 처리
시도:
    정수 결과 = 10 / 0
실패 오류:
    출력("오류: {오류}")

무한 루프 (타임아웃)

오류 메시지

실행 오류: 실행 시간이 초과되었습니다 (타임아웃)

원인

반복문의 종료 조건이 충족되지 않아 무한히 반복될 때 발생합니다.

해결 방법

반복문의 종료 조건과 변수 갱신을 확인하세요:

hik
// 잘못된 코드 - i가 갱신되지 않음
// 정수 i = 0
// 반복 i < 10 동안:
//     출력(i)
//     // i += 1 을 빠뜨림!

// 올바른 코드
정수 i = 0
반복 i < 10 동안:
    출력(i)
    i += 1       // 반드시 갱신!

체크리스트

무한 루프를 방지하려면:

  • 반복 ... 동안: 에서 조건 변수가 반드시 갱신되는지 확인
  • 종료 조건이 도달 가능한지 확인
  • 필요하면 중단 키워드를 사용하여 반복을 탈출

모듈/가져오기 오류

오류 메시지

가져오기 오류: '모듈이름' 모듈을 찾을 수 없습니다

원인

가져오기 문에서 지정한 파일이 존재하지 않거나 경로가 잘못되었을 때 발생합니다.

해결 방법

  1. 파일 경로를 확인하세요:
hik
// 파일 구조:
// project/
//   main.hik
//   utils.hik

// main.hik에서:
가져오기 "utils"    // utils.hik을 같은 디렉토리에서 찾음
  1. 파일 이름의 오타를 확인하세요
  2. 파일이 같은 디렉토리에 있는지 확인하세요

문법 오류

오류 메시지

문법 오류: 예상치 못한 토큰 '...'

원인

hong-ik 문법에 맞지 않는 코드를 작성했을 때 발생합니다.

일반적인 실수와 해결

콜론 누락:

hik
// 잘못된 코드
// 만약 x > 5 라면
//     출력(x)

// 올바른 코드 - 콜론(:) 필요
만약 true 라면:
    출력("참")

들여쓰기 오류:

hik
// 잘못된 코드 - 들여쓰기가 없음
// 만약 true 라면:
// 출력("참")

// 올바른 코드 - 블록 내부는 들여쓰기
만약 true 라면:
    출력("참")

괄호 불일치:

hik
// 잘못된 코드
// 출력("안녕"

// 올바른 코드
출력("안녕")

디버깅 팁

  1. 출력()으로 중간 값을 확인하세요 - 가장 간단한 디버깅 방법입니다
  2. 타입()으로 변수의 타입을 확인하세요 - 타입 관련 오류에 유용합니다
  3. 코드를 작은 단위로 나눠서 테스트하세요 - 문제의 범위를 좁힐 수 있습니다
  4. REPL 모드를 활용하세요 - 한 줄씩 실행하며 결과를 확인할 수 있습니다
hik
// 디버깅 예시
정수 값 = 42
출력("값: " + 문자변환(값))         // 값 확인
출력("타입: " + 타입(값))           // 타입 확인

Released under the MIT License.