Skip to content

v0.6 → v0.7 마이그레이션 가이드 ​

v0.6.0(2026-10-26) 에서 동작하던 코드가 v0.7.0 에서 다르게 동작하거나 더 동작하지 않는 지점을 모았다. 전체 변경 목록은 CHANGELOG.md 의 [v0.7.0] 절에 있고, 이 문서는 그중 기존 코드나 사용 방법을 바꿔야 하는 항목만 다룬다.

v0.7 의 언어 변경은 C 의 libc 정도 되는 표준 라이브러리를 KingSejong 코드로 쓸 수 있게 하려고 정한 것이다. 각 결정의 이유와 고르지 않은 안은 표준 라이브러리 수준 언어 준비도 4장에 있다.

1. 새 키워드 ​

중단 과 계속 이 반복 제어 키워드가 되었다. 이 이름을 변수로 쓰던 코드는 이름을 바꿔야 한다. 단, 중단 = 1 처럼 대입문 맨 앞에 쓴 경우는 전처럼 대입으로 읽는다.

ksj
i가 1부터 10까지 {
    만약 (i == 3) { 계속 }   # 다음 회차로
    만약 (i == 5) { 중단 }   # 반복문을 끝낸다
    출력(i)                  # 1 2 4
}

2. 언어 동작 ​

  • 조건은 참/거짓 만 받는다. 만약·반복 조건과 패턴 매칭의 when 가드에 다른 값이 오면 실행 오류다. v0.6 에서는 변수에 담긴 값을 진리값(0, "", 없음 은 거짓)으로 판별했다. 비교식으로 고쳐 쓴다. !, 그리고, 또는 는 전처럼 진리값을 쓴다.

    ksj
    개수 = 0
    # v0.6: 만약 (개수) { ... }  → v0.7 에서는 실행 오류
    만약 (개수 != 0) {
        출력("있음")
    }
  • 정수 연산이 64비트 범위를 넘으면 실행 오류다. v0.6 에서는 조용히 감싸 돌았다(9223372036854775807 + 1 → -9223372036854775808). 해시처럼 감싸 돌기가 의도인 계산은 감싸더하기, 감싸빼기, 감싸곱하기 를 쓴다. 제곱, 정수, 반올림, 올림, 내림, 절대값 도 결과가 정수 범위를 넘으면 오류다.

    ksj
    해시 = 0
    해시 = 감싸곱하기(해시, 31)
    해시 = 감싸더하기(해시, 104)
    출력(해시)   # 104
  • 반복문은 회차마다 새 범위에서 돈다. 반복 변수와 본문에서 처음 만든 변수는 반복문이 끝나면 없다. v0.6 에서는 실행 중에는 남아 있었다(의미 분석기는 이미 막았다). 반복문 뒤에서 쓸 값은 반복문 앞에 변수를 만들어 대입한다. 본문에서 만든 함수는 이제 그 회차의 값을 잡는다(v0.6 에서는 모두 마지막 값을 봤다).

    ksj
    찾은_위치 = -1
    i가 0부터 5 미만 {
        만약 (i * i > 8) {
            찾은_위치 = i
            중단
        }
    }
    출력(찾은_위치)   # 3
  • 이상 으로 끝나는 범위 반복문은 거꾸로 센다. i가 10부터 1 이상 은 10, 9, ..., 1 을 돈다. v0.6 에서는 까지 처럼 올라가며 세서 한 번도 돌지 않았고, i가 1부터 3 이상 은 1~3 을 돌았지만 이제는 돌지 않는다.

  • 배열·딕셔너리의 == 는 내용을 비교하고, 정수와 실수는 수의 크기로 비교한다. v0.6 에서는 [1] == [1] 과 1 == 1.0 이 거짓이었다. 이 결과에 기대어 분기하던 코드는 결과가 바뀐다. 포함([1, 2], 2.0) 도 참이 된다.

3. 도구 ​

  • VS Code 확장은 VS Code 1.91 이상이 필요하다(v0.6 은 1.75). 확장의 의존성(vscode-languageclient 11)을 보안 패치가 들어간 버전으로 올린 결과다.

MIT License