Skip to content

KingSejong 언어 튜토리얼 ​

문서 목적: 한 걸음씩 배우는 단계별 학습 경로 (처음부터 차근차근)

난이도: 초급 소요 시간: 약 1-2시간 사전 지식: 없음 (프로그래밍 경험 없어도 OK!)

💡 문서 선택 가이드:

  • 처음 배우시는 분: 이 문서를 처음부터 끝까지 따라하세요 (추천!)
  • 특정 기능 찾으시는 분: 사용자 가이드 참조 (기능별 레퍼런스)
  • 완전한 문법 스펙: 언어 레퍼런스 참조

목차 ​

  1. 시작하기
  2. 첫 번째 프로그램
  3. 변수 다루기
  4. 계산하기
  5. 조건 판단하기
  6. 반복하기
  7. 함수 만들기
  8. 배열 다루기
  9. 조사 활용하기 (한글 특화)
  10. 클로저와 고차 함수
  11. 모듈 사용하기
  12. 에러 처리
  13. 실전 프로젝트

1. 시작하기 ​

KingSejong이란? ​

KingSejong은 한글로 프로그래밍할 수 있는 언어입니다. 영어를 몰라도, 프로그래밍 경험이 없어도 쉽게 배울 수 있습니다!

설치하기 ​

자동 설치 (권장) ​

macOS / Linux:

bash
# 저장소 복제
git clone https://github.com/kingsejong-lang/kingsejong-lang.git
cd kingsejong-lang

# 자동 설치 스크립트 실행
./install.sh

# 실행
./build/kingsejong

Windows:

powershell
# 저장소 복제
git clone https://github.com/kingsejong-lang/kingsejong-lang.git
cd kingsejong-lang

# 자동 설치 스크립트 실행 (PowerShell)
.\install.ps1

# 실행
.\build\Release\kingsejong.exe

수동 설치 ​

bash
# 빌드 (CMake 필요)
mkdir build && cd build
cmake ..
make

# 실행
./kingsejong

참고: 자세한 설치 가이드는 INSTALL.md를 참고하세요.

REPL 시작하기 ​

REPL은 코드를 한 줄씩 실행해볼 수 있는 대화형 환경입니다:

bash
./kingsejong

종료하려면 .exit 명령어를 입력하세요.


2. 첫 번째 프로그램 ​

Hello, World! ​

가장 간단한 프로그램부터 시작해봅시다:

ksj
출력("안녕, 세상!")

설명:

  • 출력() - 화면에 글자를 보여주는 명령
  • "안녕, 세상!" - 출력할 문자열 (따옴표로 감쌈)

파일로 실행하기 ​

hello.ksj 파일 생성:

ksj
출력("안녕, KingSejong!")
출력("첫 프로그램입니다.")

실행:

bash
./kingsejong hello.ksj

출력:

안녕, KingSejong!
첫 프로그램입니다.

3. 변수 다루기 ​

변수란? ​

변수는 값을 저장하는 상자입니다.

중요: KingSejong은 변수 선언 시 타입을 명시하는 것을 권장합니다.

ksj
# 타입을 명시한 변수 선언 (권장)
문자열 이름 = "홍길동"
정수 나이 = 25
출력(이름)
출력(나이)

여러 종류의 값 ​

ksj
# 정수 (소수점 없는 숫자)
정수 점수 = 95

# 실수 (소수점 있는 숫자)
실수 키 = 175.5

# 문자열 (글자)
문자열 취미 = "독서"

# 불리언 (참/거짓)
논리 합격 = 참

타입 키워드:

  • 정수 - 정수 (integer)
  • 실수 - 실수 (float)
  • 문자열 - 문자열 (string)
  • 논리 - 참/거짓 (boolean)

타입 확인하기 ​

ksj
출력(타입(100))      # "정수"
출력(타입(3.14))     # "실수"
출력(타입("안녕"))   # "문자열"
출력(타입(참))       # "논리"

4. 계산하기 ​

기본 계산 ​

ksj
# 더하기
출력(10 + 5)    # 15

# 빼기
출력(10 - 5)    # 5

# 곱하기
출력(10 * 5)    # 50

# 나누기
출력(10 / 5)    # 2

# 나머지
출력(10 % 3)    # 1

변수로 계산 ​

ksj
정수 가격 = 5000
정수 개수 = 3
정수 총액 = 가격 * 개수
출력("총 금액: " + 문자열(총액) + "원")  # 총 금액: 15000원

문자열 연결 ​

ksj
문자열 이름 = "홍길동"
정수 나이 = 25
문자열 소개 = "제 이름은 " + 이름 + "이고, " + 문자열(나이) + "살입니다."
출력(소개)

5. 조건 판단하기 ​

만약 (if) ​

ksj
점수 = 85

만약 (점수 >= 90) {
    출력("A 학점입니다!")
}

만약-아니면 (if-else) ​

ksj
나이 = 20

만약 (나이 >= 20) {
    출력("성인입니다.")
} 아니면 {
    출력("미성년자입니다.")
}

여러 조건 (if-else if-else) ​

ksj
점수 = 85

만약 (점수 >= 90) {
    출력("A 학점")
} 아니면 만약 (점수 >= 80) {
    출력("B 학점")
} 아니면 만약 (점수 >= 70) {
    출력("C 학점")
} 아니면 {
    출력("D 학점")
}

비교 연산자 ​

ksj
a = 10
b = 20

출력(a == b)   # 거짓 (같음)
출력(a != b)   # 참 (다름)
출력(a < b)    # 참 (작음)
출력(a > b)    # 거짓 (큼)
출력(a <= b)   # 참 (작거나 같음)
출력(a >= b)   # 거짓 (크거나 같음)

논리 연산자 ​

ksj
나이 = 25
학생 = 참

# AND (그리고)
만약 (나이 >= 20 && 학생 == 참) {
    출력("성인 학생입니다.")
}

# OR (또는)
만약 (나이 < 20 || 학생 == 참) {
    출력("할인 대상입니다.")
}

# NOT (부정)
만약 (!학생) {
    출력("학생이 아닙니다.")
}

6. 반복하기 ​

N번 반복 ​

ksj
# 5번 반복
5번 반복한다 {
    출력("안녕하세요!")
}

출력:

안녕하세요!
안녕하세요!
안녕하세요!
안녕하세요!
안녕하세요!

범위 반복 ​

ksj
# 1부터 10까지
i가 1부터 10까지 {
    출력(i)
}

출력:

1
2
3
...
10

반복 멈추기와 건너뛰기 ​

중단 은 반복을 그 자리에서 끝내고, 계속 은 이번 회차를 건너뛰고 다음 회차로 갑니다.

ksj
i가 1부터 10까지 {
    만약 (i % 3 == 0) {
        계속   # 3의 배수는 건너뛴다
    }
    만약 (i > 7) {
        중단   # 7 보다 크면 끝낸다
    }
    출력(i)
}
# 1 2 4 5 7

실전 예제: 구구단 ​

ksj
단 = 5

출력("=== " + 문자열(단) + "단 ===")
i가 1부터 9까지 {
    결과 = 단 * i
    출력(문자열(단) + " x " + 문자열(i) + " = " + 문자열(결과))
}

7. 함수 만들기 ​

함수란? ​

함수는 재사용 가능한 코드 덩어리입니다.

기본 함수 ​

ksj
인사 = 함수() {
    출력("안녕하세요!")
}

# 함수 호출
인사()
인사()

매개변수가 있는 함수 ​

ksj
인사하기 = 함수(이름) {
    출력("안녕하세요, " + 이름 + "님!")
}

인사하기("홍길동")
인사하기("김철수")

출력:

안녕하세요, 홍길동님!
안녕하세요, 김철수님!

반환값이 있는 함수 ​

ksj
더하기 = 함수(a, b) {
    반환 a + b
}

결과 = 더하기(10, 20)
출력(결과)  # 30

실전 예제: 계산기 ​

ksj
더하기 = 함수(a, b) { 반환 a + b }
빼기 = 함수(a, b) { 반환 a - b }
곱하기 = 함수(a, b) { 반환 a * b }
나누기 = 함수(a, b) { 반환 a / b }

출력(더하기(10, 5))    # 15
출력(빼기(10, 5))      # 5
출력(곱하기(10, 5))    # 50
출력(나누기(10, 5))    # 2

8. 배열 다루기 ​

배열이란? ​

배열은 여러 값을 한 번에 저장하는 자료구조입니다.

배열 만들기 ​

ksj
# 숫자 배열
점수들 = [90, 85, 95, 88, 92]

# 문자열 배열
과일들 = ["사과", "바나나", "포도"]

# 혼합 배열
혼합 = [1, "문자", 참]

배열 요소 접근하기 ​

ksj
과일들 = ["사과", "바나나", "포도"]

출력(과일들[0])   # "사과" (첫 번째)
출력(과일들[1])   # "바나나" (두 번째)
출력(과일들[2])   # "포도" (세 번째)

배열 길이 ​

ksj
숫자들 = [10, 20, 30, 40, 50]
출력(길이(숫자들))  # 5

배열 반복 ​

ksj
과일들 = ["사과", "바나나", "포도", "딸기"]

i가 0부터 길이(과일들) 미만 {
    출력(과일들[i])
}

배열 메서드 ​

정렬하기 ​

ksj
숫자들 = [5, 2, 8, 1, 9]
정렬된 = 숫자들을 정렬한다
출력(정렬된)  # [1, 2, 5, 8, 9]

걸러내기 (필터) ​

ksj
숫자들 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# 짝수만 걸러내기
짝수들 = 숫자들을 걸러낸다(함수(x) {
    반환 x % 2 == 0
})

출력(짝수들)  # [2, 4, 6, 8, 10]

변환하기 (맵) ​

ksj
숫자들 = [1, 2, 3, 4, 5]

# 모든 숫자를 제곱
제곱들 = 숫자들을 변환한다(함수(x) {
    반환 x * x
})

출력(제곱들)  # [1, 4, 9, 16, 25]

9. 조사 활용하기 (한글 특화) ​

KingSejong만의 특별한 기능! ​

KingSejong은 한글 조사를 활용한 자연스러운 문법을 지원합니다. 이는 다른 프로그래밍 언어에서는 볼 수 없는 혁신적인 기능입니다!

조사란? ​

조사는 한글 문법에서 명사 뒤에 붙어 관계를 나타내는 말입니다. 예: "을/를", "이/가", "은/는", "의", "로/으로"

기본 사용법 ​

ksj
# 배열 메서드에 조사 사용
숫자들 = [3, 1, 4, 1, 5, 9, 2, 6]

# "을/를" 조사: 대상을 나타냄
정렬된 = 숫자들을 정렬한다
출력(정렬된)  # [1, 1, 2, 3, 4, 5, 6, 9]

# "을/를" 조사로 변환
짝수들 = 숫자들을 걸러낸다(함수(x) { 반환 x % 2 == 0 })
출력(짝수들)  # [4, 2, 6]

자동 받침 처리 ​

KingSejong은 자동으로 받침을 감지하여 적절한 조사를 선택합니다!

ksj
# 받침 있는 단어 → "을"
목록 = [3, 1, 2]
출력(목록을 정렬한다)  # "목록" + "을" → [1, 2, 3]

# 받침 없는 단어 → "를"
데이터 = [9, 7, 8]
출력(데이터를 정렬한다)  # "데이터" + "를" → [7, 8, 9]

# ㄹ받침 특수 처리
점수 = 95
출력(점수를 문자열로 변환한다)  # "문자열" + "로" (ㄹ받침 뒤에는 "으로" 대신 "로") → 95

다양한 조사 활용 ​

의 는 사전의 키나 객체의 필드를 읽고, 나머지 조사는 모두 앞의 값을 뒤 함수의 첫 인자로 넘깁니다 (값이 함수(인자) 는 함수(값, 인자)). 그래서 직접 만든 함수도 조사로 부를 수 있습니다.

ksj
# 의 - 소유/관계: 사전의 키나 객체의 필드를 읽는다
사용자 = {"이름": "홍길동", "나이": 25}
출력(사용자의 이름)  # 홍길동

# 이/가, 은/는, 에서, 에 - 앞의 값을 뒤 함수의 첫 인자로 넘긴다
비어있다 = 함수(목록) { 반환 길이(목록) == 0 }
크다 = 함수(값, 기준) { 반환 값 > 기준 }
출발한다 = 함수(장소) { 반환 장소 + "에서 출발" }
도착한다 = 함수(장소) { 반환 장소 + "에 도착" }

출력([]이 비어있다)        # 참
점수 = 95
출력(점수가 크다(90))      # 참
출력(점수는 크다(100))     # 거짓
출력("서울"에서 출발한다)  # 서울에서 출발
출력("학교"에 도착한다)    # 학교에 도착

메서드 체이닝 ​

조사를 사용하면 여러 메서드를 자연스럽게 연결할 수 있습니다:

조사는 바로 앞 단계의 결과에 붙으므로, 괄호 없이 이어 쓸 수 있습니다:

ksj
숫자들 = [5, 2, 8, 1, 9, 3, 7, 4, 6]

큰수들 = 숫자들을 걸러낸다(함수(x) {
    반환 x > 3
})
결과 = 큰수들을 정렬한다를 역순으로_나열한다

출력(결과)  # [9, 8, 7, 6, 5, 4]

실전 예제: 데이터 처리 ​

ksj
# 학생 점수 처리
점수들 = [85, 92, 78, 95, 88, 76, 90]

# 조사를 활용한 자연스러운 표현
우수 = 점수들을 걸러낸다(함수(점수) {
    반환 점수 >= 90
})
우수학생 = 우수를 정렬한다를 역순으로_나열한다

출력("우수 학생 점수:")
출력(우수학생)  # [95, 92, 90]

# 평균 이상 점수
가져오기 "stdlib/math"
평균값 = 평균(점수들)
평균_이상 = 점수들을 걸러낸다(함수(x) {
    반환 x >= 평균값
})

출력("\n평균 점수: " + 문자열(평균값))              # 평균 점수: 86.2857
출력("평균 이상 개수: " + 문자열(길이(평균_이상)) + "명")  # 평균 이상 개수: 4명

이름 끝에 이상, 이하, 미만, 까지, 부터 가 붙으면 범위 키워드로 읽히므로 평균이상 대신 평균_이상 처럼 띄운다.

왜 조사를 사용할까? ​

  1. 자연스러운 한글 문법 - 일상적인 한글 표현과 유사
  2. 읽기 쉬운 코드 - "배열을 정렬한다"는 직관적
  3. 한글 프로그래밍의 정체성 - KingSejong만의 독특한 특징

10. 클로저와 고차 함수 ​

클로저란? ​

클로저(Closure)는 외부 변수를 기억하는 함수입니다. 함수가 만들어질 때의 환경을 기억합니다.

기본 클로저 ​

ksj
만들기_카운터 = 함수() {
    개수 = 0  # 외부 변수

    반환 함수() {
        개수 = 개수 + 1  # 외부 변수에 접근
        반환 개수
    }
}

카운터1 = 만들기_카운터()
출력(카운터1())  # 1
출력(카운터1())  # 2
출력(카운터1())  # 3

# 새로운 카운터 - 독립적인 환경
카운터2 = 만들기_카운터()
출력(카운터2())  # 1
출력(카운터2())  # 2

고차 함수란? ​

고차 함수는 함수를 인자로 받거나 반환하는 함수입니다.

함수를 인자로 받기 ​

ksj
두번_실행 = 함수(f) {
    f()
    f()
}

인사 = 함수() {
    출력("안녕하세요!")
}

두번_실행(인사)
# 출력:
# 안녕하세요!
# 안녕하세요!

함수를 반환하기 ​

ksj
곱셈기_만들기 = 함수(배수) {
    반환 함수(x) {
        반환 x * 배수
    }
}

두배 = 곱셈기_만들기(2)
세배 = 곱셈기_만들기(3)

출력(두배(5))  # 10
출력(세배(5))  # 15

실전 예제: 필터 생성기 ​

ksj
범위_필터_만들기 = 함수(최소, 최대) {
    반환 함수(숫자) {
        반환 숫자 >= 최소 && 숫자 <= 최대
    }
}

# 10-20 범위 필터
범위10to20 = 범위_필터_만들기(10, 20)

숫자들 = [5, 12, 25, 18, 3, 15, 30, 11]
결과 = 숫자들을 걸러낸다(범위10to20)

출력(결과)  # [12, 18, 15, 11]

실전 예제: 로거 함수 ​

ksj
로거_만들기 = 함수(접두사) {
    반환 함수(메시지) {
        출력("[" + 접두사 + "] " + 메시지)
    }
}

정보 = 로거_만들기("정보")
경고 = 로거_만들기("경고")
치명 = 로거_만들기("치명")

정보("프로그램 시작")
경고("메모리 부족")
치명("파일을 찾을 수 없음")

# 출력:
# [정보] 프로그램 시작
# [경고] 메모리 부족
# [치명] 파일을 찾을 수 없음

11. 모듈 사용하기 ​

표준 라이브러리 ​

KingSejong은 유용한 함수들을 제공합니다!

math 모듈 ​

ksj
가져오기 "stdlib/math"

# 절댓값
출력(절댓값(-10))  # 10

# 거듭제곱
출력(거듭제곱(2, 10))  # 1024

# 제곱근
출력(제곱근(16))  # 4.0

# 팩토리얼
출력(계승(5))  # 120

string 모듈 ​

ksj
가져오기 "stdlib/string"

# 문자열 반복
출력(반복("*", 10))  # "**********"

# 배열 결합
과일들 = ["사과", "바나나", "포도"]
출력(결합(과일들, ", "))  # "사과, 바나나, 포도"

# 줄 그리기
출력(줄_만들기(30, "="))

array 모듈 ​

ksj
가져오기 "stdlib/array"

# 범위 생성
숫자들 = 범위(1, 10)
출력(숫자들)  # [1, 2, 3, ..., 10]

# 중복 제거
중복배열 = [1, 2, 2, 3, 3, 3, 4]
고유값 = 중복_제거(중복배열)
출력(고유값)  # [1, 2, 3, 4]

12. 에러 처리 ​

에러란? ​

에러는 프로그램이 잘못된 동작을 할 때 발생합니다. KingSejong은 한글로 된 친절한 에러 메시지를 제공합니다!

일반적인 에러 유형 ​

1. 타입 에러 ​

ksj
# 잘못된 타입 연산
숫자 = 10
결과 = 숫자 + "문자열"  # 에러!

# 에러 메시지:
# ❌ 실행 오류: 지원되지 않는 연산: 10 + 문자열

2. 정의되지 않은 변수 ​

ksj
출력(존재하지_않는_변수)

# 에러 메시지 (실행 전 의미 분석 단계에서 잡힌다):
# Semantic Error: 파일.ksj:1:8: 정의되지 않은 식별자: 존재하지_않는_변수

3. 인덱스 범위 초과 ​

ksj
숫자들 = [1, 2, 3]
값 = 숫자들[10]  # 에러!

# 에러 메시지:
# ❌ 인덱스 오류: 배열 인덱스 범위를 벗어났습니다: 인덱스 10, 배열 크기 3

에러 예방하기 ​

조건 검사 ​

ksj
숫자들 = [1, 2, 3, 4, 5]
인덱스 = 10

# 범위 검사
만약 (인덱스 >= 0 && 인덱스 < 길이(숫자들)) {
    출력(숫자들[인덱스])
} 아니면 {
    출력("인덱스가 범위를 벗어났습니다.")
}

타입 검사 ​

ksj
값1 = 10
값2 = "20"

# 타입 확인
만약 (타입(값1) == "정수" && 타입(값2) == "정수") {
    결과 = 값1 + 값2
    출력(결과)
} 아니면 {
    출력("두 값 모두 정수여야 합니다.")
    출력("값1 타입: " + 타입(값1))
    출력("값2 타입: " + 타입(값2))
}

실전 예제: 안전한 나눗셈 ​

ksj
안전한_나눗셈 = 함수(a, b) {
    # 0으로 나누기 방지
    만약 (b == 0) {
        출력("에러: 0으로 나눌 수 없습니다!")
        반환 없음
    }

    # 타입 검사
    만약 (타입(a) != "정수" && 타입(a) != "실수") {
        출력("에러: 첫 번째 인자는 숫자여야 합니다.")
        반환 없음
    }

    만약 (타입(b) != "정수" && 타입(b) != "실수") {
        출력("에러: 두 번째 인자는 숫자여야 합니다.")
        반환 없음
    }

    반환 a / b
}

# 테스트
출력(안전한_나눗셈(10, 2))    # 5
출력(안전한_나눗셈(10, 0))    # 에러 메시지
출력(안전한_나눗셈(10, "문자"))  # 에러 메시지

실전 예제: 배열 접근 헬퍼 ​

ksj
안전한_배열_접근 = 함수(배열, 인덱스) {
    # 타입 검사
    만약 (타입(인덱스) != "정수") {
        출력("에러: 인덱스는 정수여야 합니다.")
        반환 없음
    }

    # 범위 검사
    만약 (인덱스 < 0 || 인덱스 >= 길이(배열)) {
        출력("에러: 인덱스 범위 초과")
        출력("  배열 크기: " + 문자열(길이(배열)))
        출력("  요청 인덱스: " + 문자열(인덱스))
        반환 없음
    }

    반환 배열[인덱스]
}

# 테스트
숫자들 = [10, 20, 30, 40, 50]
출력(안전한_배열_접근(숫자들, 2))   # 30
출력(안전한_배열_접근(숫자들, 10))  # 에러 메시지

디버깅 팁 ​

  1. 출력문 활용 - 변수 값을 확인
ksj
x = 42
출력("디버그: x = " + 문자열(x))  # 디버그: x = 42
  1. 타입 확인 - 예상과 다른 타입인지 검사
ksj
값 = [1, 2]
출력("변수 타입: " + 타입(값))  # 변수 타입: 배열
  1. 단계별 실행 - 복잡한 코드는 나눠서 실행
ksj
목록 = [9, 2, 5, 1, 8]
필터 = 함수(x) { 반환 x > 3 }

# 한 번에 실행하지 말고
결과 = 목록을 걸러낸다(필터)를 정렬한다

# 단계별로 실행
필터된 = 목록을 걸러낸다(필터)
출력("필터 결과: ")
출력(필터된)

정렬된 = 필터된을 정렬한다
출력("정렬 결과: ")
출력(정렬된)

13. 실전 프로젝트 ​

프로젝트 1: 숫자 맞추기 게임 ​

ksj
가져오기 "stdlib/math"

출력("=== 숫자 맞추기 게임 ===")
출력("1부터 100 사이의 숫자를 맞춰보세요!")

# 정답 (실제로는 랜덤으로 생성해야 하지만 여기서는 고정)
정답 = 42
시도횟수 = 0
최대시도 = 10

i가 1부터 최대시도까지 {
    시도횟수 = i

    # 여기서는 간단히 몇 가지 추측을 테스트
    추측 = 50  # 실제로는 사용자 입력을 받아야 함

    만약 (추측 == 정답) {
        출력("정답입니다! " + 문자열(시도횟수) + "번 만에 맞추셨습니다!")
        i = 최대시도 + 1  # 반복 종료
    } 아니면 만약 (추측 < 정답) {
        출력("더 큰 숫자입니다!")
    } 아니면 {
        출력("더 작은 숫자입니다!")
    }
}

프로젝트 2: 성적 관리 프로그램 ​

ksj
# 필요한 모듈 가져오기
가져오기 "stdlib/math"
가져오기 "stdlib/string"

출력(줄_만들기(50, "="))
출력("=== 성적 관리 프로그램 ===")
출력(줄_만들기(50, "="))

# 학생 점수
점수들 = [95, 88, 92, 76, 85, 90, 78, 94]

# 통계 계산
평균점수 = 평균(점수들)
최고점 = 배열_최댓값(점수들)
최저점 = 배열_최솟값(점수들)

출력("\n총 학생 수: " + 문자열(길이(점수들)) + "명")
출력("평균 점수: " + 문자열(평균점수))
출력("최고 점수: " + 문자열(최고점))
출력("최저 점수: " + 문자열(최저점))

# 합격자 수 (80점 이상)
합격자 = 점수들을 걸러낸다(함수(점수) {
    반환 점수 >= 80
})

출력("\n합격자 수: " + 문자열(길이(합격자)) + "명")
출력("합격률: " + 문자열(길이(합격자) * 100 / 길이(점수들)) + "%")

출력("\n" + 줄_만들기(50, "="))

프로젝트 3: 피보나치 수열 계산기 ​

ksj
가져오기 "stdlib/array"

출력("=== 피보나치 수열 계산기 ===\n")

# 재귀 버전
피보나치_재귀 = 함수(n) {
    만약 (n <= 1) {
        반환 n
    }
    반환 피보나치_재귀(n - 1) + 피보나치_재귀(n - 2)
}

# 0부터 15까지 피보나치 수 계산
출력("처음 16개의 피보나치 수:")
숫자들 = 범위(0, 15)
피보나치들 = 숫자들을 변환한다(피보나치_재귀)
출력(피보나치들)

프로젝트 4: 소수 찾기 ​

ksj
# 필요한 모듈 가져오기
가져오기 "stdlib/math"
가져오기 "stdlib/array"
가져오기 "stdlib/string"

출력(줄_만들기(50, "="))
출력("=== 소수 찾기 프로그램 ===")
출력(줄_만들기(50, "="))

# 1부터 100까지 소수 찾기
범위숫자 = 범위(1, 100)
소수들 = 범위숫자를 걸러낸다(소수인가)

출력("\n1부터 100까지의 소수:")
출력(소수들)

출력("\n총 " + 문자열(길이(소수들)) + "개의 소수가 있습니다.")
출력("\n" + 줄_만들기(50, "="))

참고: 소수인가, 범위, 줄_만들기 함수는 표준 라이브러리에서 제공됩니다.


다음 단계 ​

축하합니다! 🎉 KingSejong의 기본을 모두 배우셨습니다.

더 배우기 ​

  1. 언어 레퍼런스 - 전체 문법 상세히 보기

  2. 예제 탐색 - 더 많은 예제 코드

    • examples/ 폴더 참고
  3. 표준 라이브러리 - 유용한 함수들

  4. 직접 만들어보기 - 자신만의 프로젝트 시작!

    • 계산기, 게임, 데이터 분석 등

도움말 ​

  • 궁금한 점이 있으면 GitHub Issues에 질문해주세요
  • 버그를 발견하면 리포트해주세요
  • 개선 아이디어가 있으면 제안해주세요

즐거운 코딩 되세요! 🚀

© 2025 KingSejong Team

MIT License