NME 학습 가이드
짧은 가이드 88편입니다. 앞에서부터 순서대로 읽도록 만들었고, 뒤로 갈수록
조금씩 어려워집니다. 각 편은 한 가지를 가르치고, 마지막에 직접 해 볼 것과
배운 것을 정리합니다. 코드는 모두 nme 검사로 확인할 수 있습니다.
- 01–04 첫날. 문장형만 씁니다. 따옴표도 등호도 콜론도 나오지 않습니다.
- 05–12 반복·조건·랜덤과 명령줄 도구.
- 86–88 이야기·화면·시간 재기·쿨타임. 이것도 문장형입니다. 맨 뒤가 아니라 12 다음에 읽으세요. 번호가 큰 것은 나중에 쓴 편이기 때문입니다.
- 13–22 파일·JSON·작은 프로젝트·블록체인·네트워크. 초급 문법이 섞이기 시작합니다.
- 23–52 모듈·게임·계산기·데이터·문자열·격자. Python이 절반을 넘어갑니다.
- 53–85 통계·검색·알고리즘·컴파일러. 사실상 Python 프로그램입니다.
난이도
- ★☆☆☆☆ (1/5) — 첫날, 문장형만
- ★★☆☆☆ (2/5) — 문장형에 익숙해지는 단계
- ★★★☆☆ (3/5) — 초급 문법과 파일을 섞는 단계
- ★★★★☆ (4/5) — Python이 절반을 넘는 단계
- ★★★★★ (5/5) — 거의 Python
번호는 대체로 난이도 순서입니다. 다만 86–88은 나중에 더한 문장형 편이라 번호는 크지만 난이도는 ★★입니다. 05~12를 읽은 뒤 이어서 읽으면 됩니다.
순서대로 배우기
- 01 — 인사: 첫 문장 말하기
- 02 — 물어보기: 대화 나누기
- 03 — 저장: 값 넣어 두기
- 04 — 변경: 값 바꾸기
- 05 — 반복: 여러 번 반복하기
- 06 — 조건: 갈림길 선택
- 07 — 동안: 조건이 참인 동안 반복
- 08 — 멈춤: 반복 멈추기
- 09 — 그리고/또는: 조건 합치기
- 10 — 랜덤: 주사위와 선택
- 11 — 확인과 빌드: Python 보기
- 12 — 변환: Python을 NME로
- 13 — 파일: 글 저장하고 읽기
- 14 — JSON: 데이터 저장하고 불러오기
- 15 — 최고 점수: 작은 프로젝트
- 16 — 이름 목록: 파일에서 줄 읽기
- 17 — 암호화폐 장부 — 상태와 거래
- 18 — 작업증명 — 거래를 블록으로 채굴하기
- 19 — 거래 증명 — 지갑 소유와 재전송 방지
- 20 — 전체 사슬 검증 — 처음부터 다시 계산하기
- 21 — HTTP — 웹 서버에 물어보기
- 22 — 터미널 메뉴 — 작은 TUI
- 23 — 모듈: 프로그램을 여러 파일로 나누기
- 24 — Python 패키지: 표준 라이브러리와 설치된 라이브러리
- 25 — 네이티브: 기계어로 컴파일하기
- 26 — 모험 — 작은 텍스트 게임
- 27 — 계산기 — 명령줄 프로젝트
- 28 — 첫 컴파일러 — 아주 작은 언어
- 29 — 부트스트랩: NME가 아주 작은 언어를 컴파일
- 30 — 데이터: 목록 통계
- 31 — 기록: 작은 주소록
- 32 — 날씨: 웹에서 JSON 읽기
- 33 — 할 일: 커지는 프로젝트
- 34 — 셀프호스트: NME가 NME를 실행
- 35 — 일기: 날짜별 메모
- 36 — 단어 세기: 단어 빈도
- 37 — 단어 맞히기: 숨은 단어 게임
- 38 — 퀴즈 — 파일의 문제
- 39 — 정렬 — 목록 순서 정하기
- 40 — 보고서 — 요약 파일 쓰기
- 41 — 텍스트 통계: 글자와 단어
- 42 — 비교: 두 숫자 묶음
- 43 — 프로젝트: 습관 체크
- 44 — 플레이리스트: 랜덤 음악 재생
- 45 — CSV: 데이터 행
- 46 — 컴파일러: 표현식 언어
- 47 — 진행 — 터미널 진행 막대
- 48 — 상점 — 재고 관리
- 49 — 컴파일러: 토큰 읽기
- 50 — 문자열: 텍스트 자르고 바꾸기
- 51 — 격자: 목록의 판
- 52 — 게임: 틱택토
- 53 — 집합: 중복 없는 값
- 54 — 통계: 데이터 이해
- 55 — 네트워크: 미니 채팅
- 56 — 기록: 사건 기록
- 57 — 묶기: 범주별 데이터
- 58 — 컴파일러: 작은 바이트코드 실행기
- 59 — 편집기 — 아주 작은 텍스트 에디터
- 60 — 검색 — JSON에서 찾기
- 61 — 프로젝트 — 미니 은행
- 62 — 버블 정렬 — 첫 알고리즘
- 63 — 아스키 아트 — 문자로 그리기
- 64 — 이진 탐색 — 절반씩 찾기
- 65 — 파일: 여러 파일 처리
- 66 — 상위 열: 기록 순위
- 67 — 프로젝트 — 성적부
- 68 — 예외: 문제 다루기
- 69 — 정규식: 패턴 찾기
- 70 — 게임: 반응 속도 측정
- 71 — 차트: 터미널 막대 그래프
- 72 — 모듈: 여러 파일 프로젝트
- 73 — 캡스톤: Python으로 컴파일하는 언어
- 74 — 병합: 두 목록 합치기
- 75 — 게임: 간단한 상대
- 76 — 네트워크: 서버 폴링
- 77 — 네트워크: 파일 받아 저장하기
- 78 — 데이터: 한 달 온도 분석하기
- 79 — 컴파일러: 미니 언어에 함수 넣기
- 80 — 도구: 명령 줄에서 말 받기
- 81 — 테스트: 내가 쓴 함수 확인하기
- 82 — 컴파일러: 식을 트리로 만들기
- 83 — 게임: 비밀 코드 맞히기 (마스터마인드)
- 84 — 웹: 페이지에서 링크 뽑아내기
- 85 — 컴파일러: 트리에서 바이트코드로
- 86 — 이야기: 글자가 하나씩 나오게 하기
- 87 — 화면: 지우고, 줄 긋고, 상자에 담기
- 88 — 시간: 재기와 쿨타임
주제별 찾아보기
- 첫 프로그램과 출력: 01
- 입력: 02
- 값 저장: 03
- 값 변경: 04
- 반복: 05, 08
- 조건: 06, 09
- 반복과 조건: 07
- 랜덤: 10
- 도구 사용: 11, 12
- 파일: 13, 35
- JSON: 14
- 프로젝트: 15, 27, 33, 43, 48, 61, 67
- 파일과 목록: 16
- 암호화폐 장부와 거래: 17
- 작업증명과 블록 연결: 18
- 거래 증명과 재전송 방지: 19
- 사슬 검증과 합의의 경계: 20
- 네트워크와 HTTP: 21
- 터미널 메뉴: 22
- 모듈: 23
- Python 패키지: 24
- 네이티브 컴파일: 25
- 대형 프로젝트: 26
- 컴파일러: 28, 46, 49, 58
- 부트스트랩: 29
- 데이터: 30, 36, 39, 45, 57
- 데이터/기록: 31
- 네트워크/데이터: 32
- 셀프호스팅: 34
- 게임: 37, 52
- 게임/데이터: 38
- 파일/프로젝트: 40
- 텍스트/데이터: 41
- 데이터/비교: 42
- 게임/랜덤: 44
- TUI/출력: 47
- 문자열: 50
- 중첩 데이터: 51
- 집합/데이터: 53
- 통계/데이터: 54
- 네트워크: 55
- 파일/기록: 56
- TUI/터미널 앱: 59
- 검색/데이터: 60
- 알고리즘: 62, 64
- 출력/루프: 63
- 파일/폴더: 65
- 데이터/순위: 66
- 예외: 68
- 정규식: 69
- 게임/시간: 70
- 시각화/출력: 71
- 모듈/구조: 72
- 컴파일러/캡스톤: 73
- 데이터/병합: 74
- 게임/전략: 75
- 네트워크/시간: 76
- 네트워크/파일: 77
- 데이터 분석: 78
- 컴파일러/함수: 79
- CLI 도구: 80
- 테스트: 81
- 컴파일러/AST: 82
- 게임/논리: 83
- 웹/텍스트: 84
- 컴파일러/바이트코드: 85
- 이야기/천천히 출력: 86
- 화면 꾸미기: 87
- 시간 재기/쿨타임: 88
전체 목록
| 번호 | 난이도 | 주제 | 제목 | 결과물 |
|---|---|---|---|---|
| 01 | ★☆☆☆☆ | 첫 프로그램과 출력 | 인사: 첫 문장 말하기 | nme 실행으로 메시지를 출력하는 프로그램 |
| 02 | ★☆☆☆☆ | 입력 | 물어보기: 대화 나누기 | 이름을 물어보고 문장으로 인사하는 프로그램 |
| 03 | ★☆☆☆☆ | 값 저장과 목록 | 저장: 값 넣어 두기 | 글자·숫자·목록을 이름 붙여 저장하는 프로그램 |
| 04 | ★☆☆☆☆ | 값 변경 | 변경: 값 바꾸기 | 점수에 더하고 빼는 프로그램 |
| 05 | ★★☆☆☆ | 반복·목록 반복·기다리기 | 반복: 여러 번 반복하기 | 줄을 여러 번 실행하고, 목록을 하나씩 지나가고, 잠깐 쉬는 프로그램 |
| 06 | ★★☆☆☆ | 조건 | 조건: 갈림길 선택 | 조건에 따라 다른 줄을 실행하는 프로그램 |
| 07 | ★★☆☆☆ | 반복과 조건 | 동안: 조건이 참인 동안 반복 | 조건이 참인 동안 반복하는 블록 |
| 08 | ★★☆☆☆ | 반복 | 멈춤: 반복 멈추기 | 반복을 일찍 끝내는 프로그램 |
| 09 | ★★☆☆☆ | 조건 | 그리고/또는: 조건 합치기 | 조건을 합쳐 판단하는 프로그램 |
| 10 | ★★☆☆☆ | 랜덤 | 랜덤: 주사위와 선택 | 주사위를 굴리고 색을 고르는 프로그램 |
| 11 | ★★☆☆☆ | 도구 사용 | 확인과 빌드: Python 보기 | 프로그램을 확인하고 생성된 Python을 읽는 습관 |
| 12 | ★★☆☆☆ | 도구 사용 | 변환: Python을 NME로 | 작은 Python 파일을 NME로 변환하기 |
| 13 | ★★★☆☆ | 파일 | 파일: 글 저장하고 읽기 | 글을 파일에 저장하고 다시 읽는 프로그램 |
| 14 | ★★★☆☆ | JSON | JSON: 데이터 저장하고 불러오기 | 이름과 점수를 저장하고 불러오는 프로그램 |
| 15 | ★★★☆☆ | 프로젝트 | 최고 점수: 작은 프로젝트 | 최고 점수를 기억하는 주사위 게임 |
| 16 | ★★★☆☆ | 파일과 목록 | 이름 목록: 파일에서 줄 읽기 | 파일에서 이름 목록을 읽어 고르는 프로그램 |
| 17 | ★★★☆☆ | 암호화폐 장부와 거래 | 암호화폐 장부 — 상태와 거래 | 잔액·거래번호·수수료·발행량을 검증하는 작은 암호화폐 상태 장부 |
| 18 | ★★★☆☆ | 작업증명과 블록 연결 | 작업증명 — 거래를 블록으로 채굴하기 | 이전 블록 해시와 거래를 묶어 SHA-256 작업증명 블록 만들기 |
| 19 | ★★★☆☆ | 거래 증명과 재전송 방지 | 거래 증명 — 지갑 소유와 재전송 방지 | 공개값으로 거래 승인자를 검증하고 같은 거래의 재사용을 거부하기 |
| 20 | ★★★☆☆ | 사슬 검증과 합의의 경계 | 전체 사슬 검증 — 처음부터 다시 계산하기 | 창세 상태부터 모든 거래와 블록을 재실행하는 단일 노드 검증기 |
| 21 | ★★★☆☆ | 네트워크와 HTTP | HTTP — 웹 서버에 물어보기 | 로컬 서버에서 페이지를 가져오기 |
| 22 | ★★★☆☆ | 터미널 메뉴 | 터미널 메뉴 — 작은 TUI | 반복으로 움직이는 터미널 메뉴 |
| 23 | ★★★★☆ | 모듈 | 모듈: 프로그램을 여러 파일로 나누기 | 프로그램을 여러 .nme 파일로 나누기 |
| 24 | ★★★★☆ | Python 패키지 | Python 패키지: 표준 라이브러리와 설치된 라이브러리 | 표준 라이브러리와 설치된 라이브러리 사용하기 |
| 25 | ★★★★☆ | 네이티브 컴파일 | 네이티브: 기계어로 컴파일하기 | CPython 없이 기계어로 실행하기 |
| 26 | ★★★★☆ | 대형 프로젝트 | 모험 — 작은 텍스트 게임 | 방을 이동하며 고르는 텍스트 모험 |
| 27 | ★★★★☆ | 프로젝트 | 계산기 — 명령줄 프로젝트 | 함수와 모듈 파일로 계속 물어보는 계산기 |
| 28 | ★★★★☆ | 컴파일러 | 첫 컴파일러 — 아주 작은 언어 | add 2 3 같은 줄을 읽고 답을 출력하는 아주 작은 언어 |
| 29 | ★★★★☆ | 부트스트랩 | 부트스트랩: NME가 아주 작은 언어를 컴파일 | NME로 쓴 미니 컴파일러 |
| 30 | ★★★★☆ | 데이터 | 데이터: 목록 통계 | JSON 파일에서 숫자를 불러와 표준 라이브러리 statistics로 평균·중앙값·최댓값 구하기 |
| 31 | ★★★★☆ | 데이터/기록 | 기록: 작은 주소록 | 연락처를 추가·목록·검색하는 JSON 파일 주소록 |
| 32 | ★★★★☆ | 네트워크/데이터 | 날씨: 웹에서 JSON 읽기 | 로컬 HTTP 서버의 JSON을 가져와 미니 날씨 보고서 출력하기 |
| 33 | ★★★★☆ | 프로젝트 | 할 일: 커지는 프로젝트 | add, done, list를 지원하고 저장 로직을 모듈 파일로 둔 JSON 저장 할 일 목록 |
| 34 | ★★★★☆ | 셀프호스팅 | 셀프호스트: NME가 NME를 실행 | say/set/while로 된 아주 작은 NME형 부분집합을 Python으로 컴파일하는 NME 프로그램 |
| 35 | ★★★★☆ | 파일 | 일기: 날짜별 메모 | 각 날의 메모를 날짜별 파일에 저장하고 다시 읽는 일기 |
| 36 | ★★★★☆ | 데이터 | 단어 세기: 단어 빈도 | 텍스트 파일을 읽어 단어가 각각 몇 번 나오는지 세는 프로그램 |
| 37 | ★★★★☆ | 게임 | 단어 맞히기: 숨은 단어 게임 | 제한된 기회 안에 숨은 단어의 글자를 맞히는 행맨형 게임 |
| 38 | ★★★★☆ | 게임/데이터 | 퀴즈 — 파일의 문제 | JSON 파일에서 문제를 불러와 채점하고 결과를 알려 주는 객관식 퀴즈 |
| 39 | ★★★★☆ | 데이터 | 정렬 — 목록 순서 정하기 | JSON 파일에서 숫자를 불러와 Python sort로 오름차순·내림차순 순서를 보여 주는 프로그램 |
| 40 | ★★★★☆ | 파일/프로젝트 | 보고서 — 요약 파일 쓰기 | JSON 데이터 파일 몇 개를 읽어 file_write로 요약 보고서 하나를 쓰는 프로그램 |
| 41 | ★★★★☆ | 텍스트/데이터 | 텍스트 통계: 글자와 단어 | 텍스트 파일을 읽어 글자 수, 단어 수, 가장 긴 단어, 가장 흔한 단어를 보고하는 프로그램 |
| 42 | ★★★★☆ | 데이터/비교 | 비교: 두 숫자 묶음 | 두 JSON 숫자 목록을 불러와 평균과 최댓값을 비교하는 프로그램 |
| 43 | ★★★★☆ | 프로젝트 | 프로젝트: 습관 체크 | add, check, streak, list, quit를 지원하고 저장 로직을 모듈 파일로 둔 JSON 저장 습관 추적기 |
| 44 | ★★★★☆ | 게임/랜덤 | 플레이리스트: 랜덤 음악 재생 | JSON에서 불러온 플레이리스트에 셔플·다음 곡·반복 재생을 더한 프로그램 |
| 45 | ★★★★☆ | 데이터 | CSV: 데이터 행 | 쉼표로 나뉜 텍스트 파일을 split(",")로 읽고 한 열의 평균을 구해 요약 CSV를 쓰기 |
| 46 | ★★★★☆ | 컴파일러 | 컴파일러: 표현식 언어 | 2 + 3 * 4를 연산자 우선순위에 맞게 계산하는 아주 작은 계산기 |
| 47 | ★★★★☆ | TUI/출력 | 진행 — 터미널 진행 막대 | 반복이 돌면서 한 줄을 채우는 터미널 진행 막대 |
| 48 | ★★★★☆ | 프로젝트 | 상점 — 재고 관리 | 사고팔고 재고를 확인하며 잔액이 남는 JSON 저장 상점 |
| 49 | ★★★★☆ | 컴파일러 | 컴파일러: 토큰 읽기 | 명령 줄을 토큰으로 나누고 실행을 보내는 프로그램 |
| 50 | ★★★★☆ | 문자열 | 문자열: 텍스트 자르고 바꾸기 | 문장에서 text[start:end] 자르기와 .upper()/.lower(), .replace(), .strip() |
| 51 | ★★★★☆ | 중첩 데이터 | 격자: 목록의 판 | 목록의 목록으로 만든 3x3 판, board[row][col]로 칸 읽고 쓰기 |
| 52 | ★★★★☆ | 게임 | 게임: 틱택토 | 승리 확인이 있는 두 명이 하는 틱택토 |
| 53 | ★★★★★ | 집합/데이터 | 집합: 중복 없는 값 | Python 집합으로 텍스트 파일의 고유 단어와 문장의 고유 글자 찾기 |
| 54 | ★★★★★ | 통계/데이터 | 통계: 데이터 이해 | JSON 숫자 목록에서 count·평균·중앙값·최빈값·최소·최대·범위 보고하기 |
| 55 | ★★★★★ | 네트워크 | 네트워크: 미니 채팅 | 로컬 HTTP 서버에서 메시지를 받아 미니 채팅처럼 보여 주기 |
| 56 | ★★★★★ | 파일/기록 | 기록: 사건 기록 | 프로그램이 실행될 때마다 datetime과 file_write로 로그 파일에 날짜 줄을 덧붙이기 |
| 57 | ★★★★★ | 데이터 | 묶기: 범주별 데이터 | 범주 키로 dict 목록을 목록들의 dict로 묶고, 범주별 개수를 보고하기 |
| 58 | ★★★★★ | 컴파일러 | 컴파일러: 작은 바이트코드 실행기 | 간단한 명령을 단계 목록으로 컴파일하고 가상 머신처럼 한 단계씩 실행하기 |
| 59 | ★★★★★ | TUI/터미널 앱 | 편집기 — 아주 작은 텍스트 에디터 | 버퍼를 두고 줄을 추가·삭제·목록·저장하는 줄 단위 에디터 |
| 60 | ★★★★★ | 검색/데이터 | 검색 — JSON에서 찾기 | 로컬 서버나 파일에서 JSON 목록을 불러와 대소문자 구분 없이 검색하기 |
| 61 | ★★★★★ | 프로젝트 | 프로젝트 — 미니 은행 | 입금·출금·잔액·거래 내역을 모듈로 저장하는 JSON 은행 계좌 |
| 62 | ★★★★★ | 알고리즘 | 버블 정렬 — 첫 알고리즘 | 중첩 반복과 맞바꿈으로 버블 정렬을 직접 구현하고 Python 내장 정렬과 결과를 비교하는 프로그램 |
| 63 | ★★★★★ | 출력/루프 | 아스키 아트 — 문자로 그리기 | 중첩 반복과 문자열 곱셈으로 직각 삼각형, 거꾸로 삼각형, 마름모를 그리는 프로그램 |
| 64 | ★★★★★ | 알고리즘 | 이진 탐색 — 절반씩 찾기 | 정렬된 목록에서 목표 숫자를 매 단계 탐색 범위를 절반으로 줄이며 찾고, 단계 수까지 보여 주는 프로그램 |
| 65 | ★★★★★ | 파일/폴더 | 파일: 여러 파일 처리 | 폴더의 파일을 나열해 각각 읽고 전체 단어·글자 수를 보고하는 프로그램 |
| 66 | ★★★★★ | 데이터/순위 | 상위 열: 기록 순위 | JSON 기록을 불러와 숫자 점수 기준으로 정렬하고 상위 열 개를 보여 주는 프로그램 |
| 67 | ★★★★★ | 프로젝트 | 프로젝트 — 성적부 | 학생 추가·성적 추가·평균 보고를 저장 모듈과 함께 두는 JSON 성적부 |
| 68 | ★★★★★ | 예외 | 예외: 문제 다루기 | 없는 파일을 읽거나 숫자가 아닌 입력을 바꿔도 멈추지 않는 프로그램 |
| 69 | ★★★★★ | 정규식 | 정규식: 패턴 찾기 | 텍스트 파일에서 전화번호와 이메일을 찾는 프로그램 |
| 70 | ★★★★★ | 게임/시간 | 게임: 반응 속도 측정 | time.time()으로 반응 속도를 재고 여러 라운드의 최고 기록을 알려 주는 게임 |
| 71 | ★★★★★ | 시각화/출력 | 차트: 터미널 막대 그래프 | JSON 목록에서 가장 큰 값에 맞춘 # 블록으로 가로 막대 그래프를 그리는 프로그램 |
| 72 | ★★★★★ | 모듈/구조 | 모듈: 여러 파일 프로젝트 | fetch·analyze·report 세 .nme 모듈로 나누고 주 프로그램이 가져오는 작은 날씨 보고서 프로젝트 |
| 73 | ★★★★★ | 컴파일러/캡스톤 | 캡스톤: Python으로 컴파일하는 언어 | 아주 작은 언어(say/set/add/while/end)를 읽어 Python 소스로 컴파일하고 파일로 저장한 뒤 실행하는 NME 프로그램 |
| 74 | ★★★★★ | 데이터/병합 | 병합: 두 목록 합치기 | 두 JSON 목록을 이름 키로 합쳐 결합 보고서 만들기 |
| 75 | ★★★★★ | 게임/전략 | 게임: 간단한 상대 | 돌을 1-3개 가져가며 마지막 돌이 지는 Nim 게임에서 컴퓨터가 전략으로 대응하기 |
| 76 | ★★★★★ | 네트워크/시간 | 네트워크: 서버 폴링 | 로컬 서버의 status.json을 몇 초마다 다시 받아 변화를 보고하기 |
| 77 | ★★★★★ | 네트워크/파일 | 네트워크: 파일 받아 저장하기 | 로컬 HTTP 서버에서 파일을 받아 진행 상황을 보여 주며 저장하기 |
| 78 | ★★★★★ | 데이터 분석 | 데이터: 한 달 온도 분석하기 | 한 달치 온도를 읽어 통계와 히스토그램을 계산하고 보고서 파일로 저장하기 |
| 79 | ★★★★★ | 컴파일러/함수 | 컴파일러: 미니 언어에 함수 넣기 | def/return/호출을 가진 미니 언어를 Python으로 컴파일하고 실행하는 컴파일러 |
| 80 | ★★★★★ | CLI 도구 | 도구: 명령 줄에서 말 받기 | nme 실행 todo add "buy milk"처럼 명령 줄에서 말을 받아 동작하는 할 일 도구 |
| 81 | ★★★★★ | 테스트 | 테스트: 내가 쓴 함수 확인하기 | 자기 함수를 예상값과 비교해 통과·실패를 보고하는 작은 테스트 실행기 |
| 82 | ★★★★★ | 컴파일러/AST | 컴파일러: 식을 트리로 만들기 | 식을 트리로 파싱하고 재귀로 평가해 우선순위를 지키는 계산기 |
| 83 | ★★★★★ | 게임/논리 | 게임: 비밀 코드 맞히기 (마스터마인드) | 4가지 색의 비밀 코드를 맞히고 검정·하양 단서로 좁혀 가는 마스터마인드 |
| 84 | ★★★★★ | 웹/텍스트 | 웹: 페이지에서 링크 뽑아내기 | 로컬 서버의 HTML 페이지를 받아 그 안의 링크를 모두 찾아 절대 주소로 보여 주기 |
| 85 | ★★★★★ | 컴파일러/바이트코드 | 컴파일러: 트리에서 바이트코드로 | 식 트리를 납작한 명령 목록으로 컴파일하고 스택 가상 머신으로 실행하는 컴파일러 |
| 86 | ★★☆☆☆ | 이야기/천천히 출력 | 이야기: 글자가 하나씩 나오게 하기 | 소설처럼 글자가 하나씩 나타나는 프로그램 |
| 87 | ★★☆☆☆ | 화면 꾸미기 | 화면: 지우고, 줄 긋고, 상자에 담기 | 화면을 지우고, 제목을 가운데에 놓고, 상자로 감싸는 프로그램 |
| 88 | ★★☆☆☆ | 시간 재기/쿨타임 | 시간: 재기와 쿨타임 | 걸린 시간을 재고, 정해진 시간 동안 다시 못 하게 막는 프로그램 |
다음 단계
- 시작하기: 인사부터 숫자 게임까지 5분 길
- 학습 과정: Hello World부터 컴파일러까지 일곱 프로젝트
- 문법 안내: 세 단계의 정확한 규칙
- 문법 목록: 쓸 수 있는 모든 표기를 한 표에 모은 목록
- AI에게 건네는 프롬프트: 대화창에 붙여넣으면 AI가 NME를 쓸 수 있게 되는 글
- 설치가 어렵다면 needmoreeasy.com 에서 바로 써 볼 수 있습니다. 휴대폰에서도 됩니다.
가이드 88편 전체
가이드 88편
- 01 — 인사: 첫 문장 말하기첫 프로그램과 출력★☆☆☆☆
- 02 — 물어보기: 대화 나누기입력★☆☆☆☆
- 03 — 저장: 값 넣어 두기값 저장과 목록★☆☆☆☆
- 04 — 변경: 값 바꾸기값 변경★☆☆☆☆
- 05 — 반복: 여러 번 반복하기반복·목록 반복·기다리기★★☆☆☆
- 06 — 조건: 갈림길 선택조건★★☆☆☆
- 07 — 동안: 조건이 참인 동안 반복반복과 조건★★☆☆☆
- 08 — 멈춤: 반복 멈추기반복★★☆☆☆
- 09 — 그리고/또는: 조건 합치기조건★★☆☆☆
- 10 — 랜덤: 주사위와 선택랜덤★★☆☆☆
- 11 — 확인과 빌드: Python 보기도구 사용★★☆☆☆
- 12 — 변환: Python을 NME로도구 사용★★☆☆☆
- 13 — 파일: 글 저장하고 읽기파일★★★☆☆
- 14 — JSON: 데이터 저장하고 불러오기JSON★★★☆☆
- 15 — 최고 점수: 작은 프로젝트프로젝트★★★☆☆
- 16 — 이름 목록: 파일에서 줄 읽기파일과 목록★★★☆☆
- 17 — 암호화폐 장부 — 상태와 거래암호화폐 장부와 거래★★★☆☆
- 18 — 작업증명 — 거래를 블록으로 채굴하기작업증명과 블록 연결★★★☆☆
- 19 — 거래 증명 — 지갑 소유와 재전송 방지거래 증명과 재전송 방지★★★☆☆
- 20 — 전체 사슬 검증 — 처음부터 다시 계산하기사슬 검증과 합의의 경계★★★☆☆
- 21 — HTTP — 웹 서버에 물어보기네트워크와 HTTP★★★☆☆
- 22 — 터미널 메뉴 — 작은 TUI터미널 메뉴★★★☆☆
- 23 — 모듈: 프로그램을 여러 파일로 나누기모듈★★★★☆
- 24 — Python 패키지: 표준 라이브러리와 설치된 라이브러리Python 패키지★★★★☆
- 25 — 네이티브: 기계어로 컴파일하기네이티브 컴파일★★★★☆
- 26 — 모험 — 작은 텍스트 게임대형 프로젝트★★★★☆
- 27 — 계산기 — 명령줄 프로젝트프로젝트★★★★☆
- 28 — 첫 컴파일러 — 아주 작은 언어컴파일러★★★★☆
- 29 — 부트스트랩: NME가 아주 작은 언어를 컴파일부트스트랩★★★★☆
- 30 — 데이터: 목록 통계데이터★★★★☆
- 31 — 기록: 작은 주소록데이터/기록★★★★☆
- 32 — 날씨: 웹에서 JSON 읽기네트워크/데이터★★★★☆
- 33 — 할 일: 커지는 프로젝트프로젝트★★★★☆
- 34 — 셀프호스트: NME가 NME를 실행셀프호스팅★★★★☆
- 35 — 일기: 날짜별 메모파일★★★★☆
- 36 — 단어 세기: 단어 빈도데이터★★★★☆
- 37 — 단어 맞히기: 숨은 단어 게임게임★★★★☆
- 38 — 퀴즈 — 파일의 문제게임/데이터★★★★☆
- 39 — 정렬 — 목록 순서 정하기데이터★★★★☆
- 40 — 보고서 — 요약 파일 쓰기파일/프로젝트★★★★☆
- 41 — 텍스트 통계: 글자와 단어텍스트/데이터★★★★☆
- 42 — 비교: 두 숫자 묶음데이터/비교★★★★☆
- 43 — 프로젝트: 습관 체크프로젝트★★★★☆
- 44 — 플레이리스트: 랜덤 음악 재생게임/랜덤★★★★☆
- 45 — CSV: 데이터 행데이터★★★★☆
- 46 — 컴파일러: 표현식 언어컴파일러★★★★☆
- 47 — 진행 — 터미널 진행 막대TUI/출력★★★★☆
- 48 — 상점 — 재고 관리프로젝트★★★★☆
- 49 — 컴파일러: 토큰 읽기컴파일러★★★★☆
- 50 — 문자열: 텍스트 자르고 바꾸기문자열★★★★☆
- 51 — 격자: 목록의 판중첩 데이터★★★★☆
- 52 — 게임: 틱택토게임★★★★☆
- 53 — 집합: 중복 없는 값집합/데이터★★★★★
- 54 — 통계: 데이터 이해통계/데이터★★★★★
- 55 — 네트워크: 미니 채팅네트워크★★★★★
- 56 — 기록: 사건 기록파일/기록★★★★★
- 57 — 묶기: 범주별 데이터데이터★★★★★
- 58 — 컴파일러: 작은 바이트코드 실행기컴파일러★★★★★
- 59 — 편집기 — 아주 작은 텍스트 에디터TUI/터미널 앱★★★★★
- 60 — 검색 — JSON에서 찾기검색/데이터★★★★★
- 61 — 프로젝트 — 미니 은행프로젝트★★★★★
- 62 — 버블 정렬 — 첫 알고리즘알고리즘★★★★★
- 63 — 아스키 아트 — 문자로 그리기출력/루프★★★★★
- 64 — 이진 탐색 — 절반씩 찾기알고리즘★★★★★
- 65 — 파일: 여러 파일 처리파일/폴더★★★★★
- 66 — 상위 열: 기록 순위데이터/순위★★★★★
- 67 — 프로젝트 — 성적부프로젝트★★★★★
- 68 — 예외: 문제 다루기예외★★★★★
- 69 — 정규식: 패턴 찾기정규식★★★★★
- 70 — 게임: 반응 속도 측정게임/시간★★★★★
- 71 — 차트: 터미널 막대 그래프시각화/출력★★★★★
- 72 — 모듈: 여러 파일 프로젝트모듈/구조★★★★★
- 73 — 캡스톤: Python으로 컴파일하는 언어컴파일러/캡스톤★★★★★
- 74 — 병합: 두 목록 합치기데이터/병합★★★★★
- 75 — 게임: 간단한 상대게임/전략★★★★★
- 76 — 네트워크: 서버 폴링네트워크/시간★★★★★
- 77 — 네트워크: 파일 받아 저장하기네트워크/파일★★★★★
- 78 — 데이터: 한 달 온도 분석하기데이터 분석★★★★★
- 79 — 컴파일러: 미니 언어에 함수 넣기컴파일러/함수★★★★★
- 80 — 도구: 명령 줄에서 말 받기CLI 도구★★★★★
- 81 — 테스트: 내가 쓴 함수 확인하기테스트★★★★★
- 82 — 컴파일러: 식을 트리로 만들기컴파일러/AST★★★★★
- 83 — 게임: 비밀 코드 맞히기 (마스터마인드)게임/논리★★★★★
- 84 — 웹: 페이지에서 링크 뽑아내기웹/텍스트★★★★★
- 85 — 컴파일러: 트리에서 바이트코드로컴파일러/바이트코드★★★★★
- 86 — 이야기: 글자가 하나씩 나오게 하기이야기·천천히 출력★★☆☆☆
- 87 — 화면: 지우고, 줄 긋고, 상자에 담기화면 꾸미기★★☆☆☆
- 88 — 시간: 재기와 쿨타임시간 재기·쿨타임★★☆☆☆