Dalbit Yaksok v4 → v5 변경 사항
Dalbit Yaksok v5.0.0(Release Candidate)는 언어의 패러다임을 확장하는 대규모 기능 업데이트입니다. 가장 큰 변화는 클래스(Class) 시스템의 도입으로, 이제 객체 지향 프로그래밍(OOP)이 가능해졌습니다. 또한 **점 표기법(Dot Syntax)**을 통한 메서드 체이닝과 튜플(Tuple), 람다(Lambda) 등 현대적인 언어 기능들이 대거 추가되었습니다.
✨ 새로운 기능 (New Features)
1. 클래스 (Class) 도입
객체를 정의하고 생성할 수 있는 클래스 문법이 추가되었습니다.
클래스, 사람
약속, __준비__ (이름, 나이)
자신.이름 = 이름
자신.나이 = 나이
약속, 인사하기
(자신.이름 + "입니다.") 보여주기
# 인스턴스 생성
철수 = 새 사람("철수", 20)
철수.인사하기클래스, 이름: 클래스 선언__준비__: 생성자(Constructor) 함수자신: 인스턴스 자신을 가리키는 키워드 (this와 유사)새 클래스명(...): 인스턴스 생성 (new와 유사)- 상속:
클래스, 학생(사람)형태로 상속 가능
2. 점 표기법 (Dot Syntax) 및 메서드 체이닝
기존의 조사 기반 호출(목록 에 값 추가) 외에도, 점(.)을 이용한 메서드 호출이 가능해졌습니다.
# 기존 문법
목록 = [3, 1, 2]
목록 정렬하기
# 신규 점 표기법
목록 = [3, 1, 2]
목록.정렬()이로 인해 메서드 체이닝이 가능해졌습니다.
# 정렬하고 첫 번째 값 가져오기
값 = [3, 1, 2].정렬().첫번째3. 튜플 (Tuple) 및 구조 분해 (Destructuring)
불변 리스트인 튜플이 추가되었으며, 값을 한 번에 여러 변수에 할당하는 구조 분해가 지원됩니다.
# 튜플 생성
좌표 = (10, 20)
# 구조 분해 할당 (함수 인자 등에서)
약속, (x, y) 합치기
x + y 반환하기
(10, 20) 합치기 보여주기4. 람다 함수 (Lambda)
이름 없는 함수를 간단하게 정의할 수 있는 문법이 추가되었습니다. 주로 거르기(filter)나 변환(map) 등과 함께 사용됩니다.
# 람다 문법: 람다 매개변수: 식
더하기 = 람다 x: x + 1
# 리스트 필터링 예시
숫자들 = [1, 2, 3, 4, 5]
짝수들 = 숫자들.거르기(람다 수: 수 % 2 == 0)5. 🌐 웹 브라우저 지원 (실험적)
Dalbit Yaksok이 이제 웹 브라우저에서 직접 실행될 수 있습니다! HTML 파일에 <script type="dalbit-yaksok"> 태그를 사용하여 브라우저에서 바로 약속 코드를 작성하고 실행할 수 있습니다.
기본 사용법
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<title>Dalbit Yaksok Web Demo</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="./dalbit-yaksok-loader.js"></script>
<script type="dalbit-yaksok">
제목 "나의 할 일 목록" 그리기
입력상자 = 박스 그리기
할일입력 = 문자 입력칸 "새로운 할 일" 그리기
추가버튼 = 버튼 "추가하기" 그리기
입력상자에 할일입력 넣기
입력상자에 추가버튼 넣기
목록상자 = 박스 그리기
추가버튼.눌렀을 때
할일내용 = 텍스트 할일입력.값 그리기
목록상자에 할일내용 넣기
할일입력 비우기
할일내용.눌렀을 때
할일내용 지우기
</script>
</body>
</html>지원되는 웹 기능
웹 확장(Web Extension)을 통해 다양한 DOM 조작 기능을 제공합니다:
UI 요소 생성:
제목 "내용" 그리기- H1 제목 생성문자 입력칸 "질문" 그리기- 텍스트 입력 필드숫자 입력칸 "질문" 그리기- 숫자 입력 필드버튼 "내용" 그리기- 버튼 생성텍스트 "내용" 그리기- 텍스트 요소 생성박스 그리기- 컨테이너 div 생성
DOM 조작:
(부모)에 (자식) 넣기- 요소를 다른 요소 안에 추가(개체)에 (내용) 보여주기- 요소의 텍스트 변경(개체) 비우기- 입력 필드 값 지우기(개체) 지우기- 요소를 DOM에서 제거
이벤트 처리:
(개체).눌렀을 때- 클릭 이벤트 핸들러(입력칸).값- 입력 필드의 현재 값 접근
이제 v5는 단순히 언어 기능의 확장을 넘어, 실행 플랫폼을 웹 브라우저로 확장하여 인터랙티브 웹 애플리케이션까지 만들 수 있게 되었습니다.
5. 🌐 웹 브라우저 지원 (실험적)
Dalbit Yaksok이 이제 웹 브라우저에서 직접 실행될 수 있습니다! HTML 파일에 <script type="dalbit-yaksok"> 태그를 사용하여 브라우저에서 바로 약속 코드를 작성하고 실행할 수 있습니다.
기본 사용법
<!doctype html>
<html lang="ko">
<head>
<meta charset="UTF-8" />
<title>Dalbit Yaksok Web Demo</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="./dalbit-yaksok-loader.js"></script>
<script type="dalbit-yaksok">
제목 "나의 할 일 목록" 그리기
입력상자 = 박스 그리기
할일입력 = 문자 입력칸 "새로운 할 일" 그리기
추가버튼 = 버튼 "추가하기" 그리기
입력상자에 할일입력 넣기
입력상자에 추가버튼 넣기
목록상자 = 박스 그리기
추가버튼.눌렀을 때
할일내용 = 텍스트 할일입력.값 그리기
목록상자에 할일내용 넣기
할일입력 비우기
할일내용.눌렀을 때
할일내용 지우기
</script>
</body>
</html>지원되는 웹 기능
웹 확장(Web Extension)을 통해 다양한 DOM 조작 기능을 제공합니다:
UI 요소 생성:
제목 "내용" 그리기- H1 제목 생성문자 입력칸 "질문" 그리기- 텍스트 입력 필드숫자 입력칸 "질문" 그리기- 숫자 입력 필드버튼 "내용" 그리기- 버튼 생성텍스트 "내용" 그리기- 텍스트 요소 생성박스 그리기- 컨테이너 div 생성
DOM 조작:
(부모)에 (자식) 넣기- 요소를 다른 요소 안에 추가(개체)에 (내용) 보여주기- 요소의 텍스트 변경(개체) 비우기- 입력 필드 값 지우기(개체) 지우기- 요소를 DOM에서 제거
이벤트 처리:
(개체).눌렀을 때- 클릭 이벤트 핸들러(입력칸).값- 입력 필드의 현재 값 접근
이제 v5는 단순히 언어 기능의 확장을 넘어, 실행 플랫폼을 웹 브라우저로 확장하여 인터랙티브 웹 애플리케이션까지 만들 수 있게 되었습니다.
🛠️ 표준 라이브러리 확장
점 표기법 도입과 함께 표준 라이브러리가 대폭 강화되었습니다.
- 리스트/문자열 공통:
.길이,.자르기(시작, 끝) - 리스트:
.정렬(),.합치기(다른리스트),.거르기(함수),.각각(함수) - 수학:
반올림,올림,내림문법이~에서대신 **~까지**로 변경되었습니다. (정밀도 지정 가능)
🚨 마이그레이션 가이드
1. 수학 함수 문법 변경 (에서 → 까지)
반올림, 올림, 내림 함수를 사용할 때 조사가 변경되었습니다.
v4 (구버전)
3.14159를 2째자리 에서 반올림v5 (신버전)
3.14159를 2째자리 까지 반올림2. 함수/메서드 호출 우선순위
점 표기법이 추가되면서, 조사 기반 호출과 점 표기법을 혼용할 때의 우선순위가 명확해졌습니다. 가급적 하나의 스타일로 통일하는 것을 권장합니다.
💡 요약
v5는 약속 언어를 객체 지향 프로그래밍이 가능한 현대적인 언어로 진화시킨 버전입니다.
- 클래스로 데이터와 기능을 묶어 관리하세요.
- 점 표기법으로 코드를 더 간결하게 작성하세요.
- 람다와 고차 함수(
거르기등)로 데이터 처리를 효율적으로 하세요. - 웹 브라우저에서 직접 실행되는 달빛약속을 경험해보세요!