A-6: 개발 환경 첫걸음
목차 25
안녕하세요, 홍순구 튜터입니다. 벌써 여섯 번째 시간이네요. 지난 시간(A-5)에 우리는 막막한 문제를 푸는 사고의 도구들을 손에 넣었어요. 큰 문제를 작게 쪼개고(분해), 같은 모양을 찾고(패턴), 핵심만 남기고(추상화), 푸는 절차를 짰죠(알고리즘). 그 절차를 순서도와 의사코드로 그리고, 손으로 한 줄씩 따라가(trace) 정말 맞는지 확인하고, 일부러 틀린 의사코드의 버그까지 잡아냈어요.
그런데 그 모든 걸 어디서 했죠? 전부 종이 위에서 했어요. 의사코드도, 순서도도, trace 표도 다 손으로 그렸죠. 그때 제가 약속했어요. "다음 시간엔 드디어 종이를 떠나 진짜 컴퓨터로 간다"고요. 파일과 폴더가 무엇인지, 코드를 적는 에디터와 명령을 내리는 터미널이 무엇인지 처음 만나고, 설치도 계정도 없이 브라우저만으로 진짜 코드 한 줄을 직접 실행해 본다고요. 그리고 빨간 줄(에러)을 처음 만난다고도 했어요.
오늘 그 약속을 지킵니다. 솔직히 말하면, 오늘이 이 과목에서 손이 가장 바쁜 날이에요. 지금까지는 머리로 생각하고 손으로 그렸다면, 오늘은 실제로 화면에 글자를 띄워 봅니다.
겁먹지 마세요. 비전공자가 프로그래밍을 포기하는 가장 흔한 순간은 어려운 개념을 만났을 때가 아니에요. "언어 설치하고, 환경 맞추고, 첫 코드 실행까지" 도구가 한꺼번에 닥칠 때예요. 그래서 오늘 우리는 설치를 하나도 안 합니다. 브라우저만 열면 되는 무료 도구로, 한 번에 하나씩 천천히 갈 거예요.
오늘의 여정 — 개발 환경 첫걸음
① 코드가 사는 곳 — 파일·폴더·확장자
② 코드를 쓰는 도구 — 코드 에디터
③ 명령을 글자로 — 터미널과 CLI
④ 진짜 첫 코드 한 줄 — 화면에 글자 띄우기
⑤ 방금 무슨 일이? — 저장에서 실행까지
⑥ 빨간 줄은 친구 — 에러를 처음 만나기
①에서 ③까지는 개발자의 화면에 늘 떠 있는 세 가지 도구를 알아봐요. ④에서 드디어 진짜 코드 한 줄을 직접 실행하고, ⑤에서 방금 무슨 일이 일어났는지 흐름을 정리합니다. ⑥에서는 일부러 오타를 내 빨간 에러를 만나고, 그게 무섭지 않다는 걸 배우며 마무리해요.
💡 오늘 수업의 핵심 — "오늘은 종이를 떠나 진짜 컴퓨터로 간다. 코드가 사는 곳(파일·폴더·확장자)과 코드를 다루는 두 도구(에디터·터미널)를 처음 만나고, 설치도 계정도 없이 브라우저 무료 샌드박스에서 진짜 코드 한 줄을 직접 실행해 화면에 글자를 띄워 본다. 그리고 일부러 오타를 내 빨간 에러를 만나, 에러는 무서운 실패가 아니라 '여기를 보라'고 알려 주는 친구임을 배운다"
🎯 학습 목표
- 파일·폴더·확장자가 무엇인지 알고, 코드를 쓰는 에디터와 명령을 글자로 내리는 터미널(GUI vs CLI)이 각각 무엇을 하는 도구인지 설명합니다.
- 설치 없는 브라우저 무료 샌드박스에서 코드 한 줄을 직접 실행해, 내가 적은 코드가 저장되고 실행되어 화면에 결과가 뜨는 흐름을 경험합니다.
- 에러(빨간 줄)를 처음 만나 메시지를 읽고 틀린 곳을 고치며, 에러가 실패가 아니라 안내라는 마음가짐을 갖습니다.
Step 1: "코드가 사는 곳 — 파일·폴더·확장자"
진짜 컴퓨터로 가는 첫걸음은, 코드가 어디에 사는지 아는 거예요. 우리가 짤 코드도 결국 컴퓨터 어딘가에 저장돼야 하니까요. 그 "어딘가"의 기본 단위가 바로 파일이에요.
파일은 내용 한 덩어리예요. 메모 한 장, 사진 한 장, 노래 한 곡, 코드 한 편이 각각 하나의 파일이죠. A-1에서 "사진도 소리도 전부 0과 1로 저장된다"고 했던 걸 기억하시죠? 그 0과 1 덩어리에 이름을 붙여 하나로 묶은 게 파일이에요.
파일이 많아지면 정리가 필요하겠죠. 그래서 폴더가 있어요. 폴더는 파일을 담는 서랍이에요. "디렉토리(directory)"라고도 부르는데, 같은 뜻이에요. 폴더 안에 폴더를 또 둘 수도 있어요. 서랍 안에 작은 칸막이 상자를 넣듯이요. 이렇게 폴더가 가지처럼 뻗은 모양을 그리면 이렇게 돼요.
내문서/
├── 사진/
│ ├── 제주도여행.jpg
│ └── 프로필.png
├── 메모.txt
└── 첫코드.py
내문서는 폴더(서랍)예요. 그 안에 사진이라는 폴더가 또 있고(폴더 안의 폴더), 사진 폴더 안에는 사진 파일 두 개가 들어 있죠. 메모.txt는 글자를 담은 파일, 첫코드.py는 우리가 곧 만들 파이썬 코드 파일이에요. 끝에 사선(/)이 붙은 게 폴더, 안 붙은 게 파일이라고 보면 돼요.
여기서 파일 이름 끝을 보세요. .jpg, .txt, .py처럼 점 뒤에 붙은 짧은 꼬리표가 있죠? 이걸 확장자라고 불러요. 확장자는 "이 파일이 어떤 종류인가"를 알려 주는 이름표예요. 사람이 보기에도, 컴퓨터가 보기에도 중요해요. 컴퓨터는 확장자를 보고 "아, 이건 사진이니 사진 뷰어로 열고, 저건 글자니 메모장으로 열어야겠다" 하고 판단하거든요.
| 확장자 | 어떤 파일인가 | 열어 보는 도구 |
|---|---|---|
.txt |
글자만 담은 메모 | 메모장·코드 에디터 |
.jpg .png |
사진·그림 | 사진 뷰어 |
.py |
파이썬 코드 | 코드 에디터·파이썬 |
.html |
웹 페이지 | 웹 브라우저 |
.mp3 |
소리·음악 | 음악 플레이어 |
코드도 똑같아요. 파이썬으로 짠 코드는 .py, 자바로 짠 코드는 .java로 끝나는 식이에요. 우리가 다음에 만들 첫 코드도 결국 이런 파일 하나로 저장됩니다. 그러니 "코드는 어디 사느냐"는 질문의 답은 간단해요. 폴더 안에, 확장자가 붙은 파일로 살아요.
💡 한 줄 정리
파일은 내용 한 덩어리이고, 폴더(디렉토리)는 파일을 담는 서랍이며, 확장자는 점 뒤에 붙어 "이 파일이 어떤 종류인가"를 알려 주는 이름표다 — 코드도 결국 확장자가 붙은 파일 하나로 폴더 안에 저장된다.
🙋 학생 질문 — "튜터님, 폴더랑 파일 정도는 알겠는데, 확장자가 왜 그렇게 중요해요? 그냥 이름 일부 아닌가요?"
좋은 질문이에요. 평소엔 확장자를 의식하지 않고 살아도 별 문제가 없으니, 그렇게 느낄 만해요.
그런데 확장자가 왜 중요한지는, 그걸 바꿔 보면 단번에 알 수 있어요. 사진 파일 프로필.png의 이름을 프로필.txt로 바꾸면 어떻게 될까요? 내용은 그대로 사진인데, 컴퓨터는 확장자만 보고 "아, 이건 글자 파일이구나" 하고 메모장으로 열려고 해요. 그러면 사진은 안 보이고 알 수 없는 글자만 잔뜩 떠요. 컴퓨터는 파일 속을 일일이 들여다보는 게 아니라, 확장자라는 이름표를 먼저 믿고 어떤 도구로 열지 정하거든요.
그래서 확장자는 단순한 이름 장식이 아니라, "이 파일을 어떻게 다뤄야 하는가"를 알려 주는 약속이에요. 코드를 짤 때도 .py냐 .html이냐에 따라 컴퓨터가 다르게 대해요. 지금은 "점 뒤 꼬리표가 파일의 종류를 정한다"만 기억하면 충분해요. 참고로 컴퓨터 설정에 따라 확장자가 평소엔 숨겨져 있기도 한데, 개발을 시작하면 보이게 켜 두는 게 편해요.
Step 2: "코드를 쓰는 도구 — 코드 에디터"
코드가 파일로 산다는 걸 알았으니, 이제 그 파일에 코드를 적을 도구가 필요해요. 글자를 적는 거니까, 메모장으로도 되지 않을까요? 맞아요, 사실 메모장으로도 코드를 쓸 수 있어요. 코드도 결국 글자니까요. 그런데 개발자들은 거의 다 코드 에디터라는 전용 도구를 써요. 왜 그럴까요?
메모장과 코드 에디터의 차이를 견줘 볼게요.
| 견주는 점 | 메모장 | 코드 에디터 |
|---|---|---|
| 줄 번호 | 없음 | 1·2·3 줄마다 번호 표시 |
| 글자 색 | 전부 같은 검정 | 명령·문자·숫자가 색으로 구분 |
| 자동완성 | 없음 | 타이핑 도중 다음 글자를 제안 |
| 오타 표시 | 없음 | 수상한 곳에 밑줄로 미리 알려 줌 |
| 괄호 짝 | 안 보임 | 여는 괄호와 닫는 괄호 짝을 강조 |
차이가 꽤 크죠. 코드 에디터가 해 주는 일을 하나씩 보면, 전부 "사람이 실수를 덜 하게" 돕는 거예요. 줄 번호가 있으면 "3번째 줄이 틀렸어요" 같은 안내를 바로 찾아갈 수 있어요. 지난 시간 에러 예고 기억하시죠? 빨간 줄이 "몇 번째 줄"이라고 알려 줄 텐데, 줄 번호가 있어야 그 줄로 갈 수 있죠. 글자 색은 명령어와 글자와 숫자를 다른 색으로 칠해 줘서, 한눈에 구조가 보여요. 괄호 짝 강조는 여는 괄호 (를 닫는 괄호 )와 짝지어 표시해 주는데, 이게 오늘 ⑥번 Step에서 아주 고마운 친구가 될 거예요.
이 차이를 비유로 말하면, 메모장은 맨손이고 코드 에디터는 연장통이에요. 맨손으로도 못을 박을 순 있지만, 망치가 있으면 훨씬 안전하고 빠르죠. 코드도 똑같아요.
그럼 코드 에디터는 어떤 걸 쓰면 될까요? 세상에 에디터가 여러 개 있지만, 지금 가장 많은 개발자가 쓰는 무료 에디터는 VS Code(브이에스 코드, Visual Studio Code)예요. 무료이고, 윈도우·맥·리눅스 어디서나 돌아가요. 입문자부터 경력 개발자까지 두루 써요.
다만 오늘 우리는 VS Code를 설치하지 않을 거예요. 설치와 환경 맞추기는 일부러 뒤로 미룬다고 했죠. 그래서 "이런 전용 도구가 있다"는 것만 알아 두고, 실제 첫 실행은 ④번 Step에서 설치가 필요 없는 브라우저 도구로 합니다. VS Code를 컴퓨터에 직접 깔아 본격적으로 쓰는 건 다음 언어 과목(java-basic·python-basic)의 첫 시간에 차근차근 배워요.
💡 한 줄 정리
코드 에디터는 줄 번호·글자 색·자동완성·괄호 짝 강조처럼 사람이 실수를 덜 하도록 돕는 전용 도구이며(메모장이 맨손이면 에디터는 연장통), 가장 널리 쓰는 무료 에디터가 VS Code다 — 직접 설치는 후속 언어 과목에서 한다.
🙋 학생 질문 — "튜터님, 메모장으로도 코드가 써진다면서요. 그럼 그냥 익숙한 메모장 쓰면 안 돼요?"
당연히 됩니다. 코드 몇 줄짜리 연습이라면 메모장으로도 충분히 돌아가요. 처음엔 익숙한 도구가 마음 편하기도 하고요.
그런데 코드가 조금만 길어져도 메모장은 금방 답답해져요. 예를 들어 코드가 50줄쯤 되는데 어디가 틀렸는지 찾아야 한다고 해 봐요. 줄 번호도 없고, 명령어와 글자가 전부 같은 검정이라 구조가 안 보이고, 괄호를 하나 빠뜨려도 알려 주는 사람이 없어요. 눈이 금방 피로해지고 실수를 놓치기 쉽죠.
코드 에디터는 바로 그 피로와 실수를 줄여 줘요. 색으로 구조가 보이고, 줄 번호로 위치를 찾고, 오타에 미리 밑줄을 그어 주니까요. 그래서 "써지긴 써진다"와 "편하게 잘 써진다"는 다른 이야기예요. 비유하자면, 메모장으로 코딩하는 건 어두운 방에서 글씨 쓰는 것과 같고, 에디터는 불을 켜고 쓰는 것과 같아요. 오늘은 도구의 이름과 역할만 알면 충분하니, 부담 갖지 마세요.
Step 3: "명령을 글자로 — 터미널과 CLI"
개발자가 코드를 짜는 화면을 본 적 있나요? 영화나 사진에서요. 한쪽엔 색색의 코드가 떠 있고, 다른 한쪽엔 검은 창에 흰 글자가 좌르륵 흐르죠. 그 검은 창이 오늘 만날 마지막 도구, 터미널이에요. "명령줄", 영어로 CLI(Command Line Interface, 명령줄 인터페이스)라고도 불러요.
터미널을 이해하려면, 우리가 평소 컴퓨터를 쓰는 방식부터 견줘야 해요. 보통 우리는 마우스로 아이콘을 클릭하고, 폴더를 더블클릭해서 열죠. 이렇게 그림(아이콘·버튼·창)을 보고 마우스로 조작하는 방식을 GUI(Graphical User Interface, 그래픽 사용자 인터페이스)라고 해요. 반대로 터미널은 글자로 명령을 적어 컴퓨터를 부려요.
| 견주는 점 | GUI (그래픽) | CLI (명령줄·터미널) |
|---|---|---|
| 조작 | 마우스로 아이콘·버튼 클릭 | 글자로 명령을 적고 엔터 |
| 비유 | 메뉴판 보고 손가락으로 가리키기 | 주문서에 직접 적어 건네기 |
| 장점 | 직관적이고 배우기 쉬움 | 빠르고·정확하고·자동화하기 좋음 |
| 예 | 폴더를 더블클릭해서 연다 | "그 폴더로 가" 한 줄을 친다 |
터미널 — 검은 창에 깜빡이는 한 칸
$ _
└ 여기에 명령을 글자로 적고 엔터를 누르면 컴퓨터가 그대로 실행한다
자연스럽게 이런 의문이 들 거예요. "마우스로 클릭하면 편한데, 왜 굳이 검은 창에 글자를 치지?" 좋은 질문이에요. 답은 빠르고 정확하기 때문이에요. 예를 들어 폴더 100개를 만들어야 한다고 해 봐요. 마우스로는 100번 오른쪽 클릭하고 "새 폴더"를 눌러야 하지만, 터미널에선 명령 한 줄로 한 번에 끝나요. 똑같은 일을 매번 정확히 반복하기에도 글자 명령이 훨씬 유리해요.
그렇다고 오늘 터미널 명령을 외울 필요는 없어요. 사실 오늘 우리가 쓸 브라우저 도구에는 큼지막한 실행 버튼이 있어서, 터미널을 직접 칠 일이 없거든요. 그러니 지금은 "개발자 화면의 그 검은 창이 바로 명령을 글자로 내리는 터미널이구나" 하고 정체만 알아 두면 돼요. 진짜 터미널 명령을 익히는 건 후속 linux 과목에서 본격적으로 배웁니다.
💡 한 줄 정리
GUI는 마우스로 그림을 클릭해 조작하는 방식이고, CLI(터미널)는 글자로 명령을 적어 컴퓨터를 부리는 방식이며 — 글자 명령은 빠르고 정확하고 자동화에 강해 개발자가 즐겨 쓴다(진짜 명령은 후속 과목에서).
🙋 학생 질문 — "튜터님, 마우스로 클릭하면 편한데 개발자는 왜 굳이 검은 창에 글자를 쳐요? 불편해 보여요."
처음 보면 정말 불편하고 옛날 방식처럼 느껴지죠. 그런데 익숙해지면 오히려 글자 명령이 훨씬 빠르고 강력해요. 이유가 몇 가지 있어요.
첫째, 반복에 강해요. 똑같은 작업을 여러 번 해야 할 때, 마우스로는 매번 클릭을 반복해야 하지만 명령은 한 줄을 한 번 더 치거나 아예 자동으로 돌릴 수 있어요. 둘째, 정확해요. "이 폴더 안의, 이름이 이렇게 끝나는 파일만" 같은 까다로운 조건도 글자로는 또박또박 적을 수 있어요. 마우스로 일일이 고르는 것보다 빈틈이 없죠. 셋째, 멀리 있는 컴퓨터도 다룰 수 있어요. 화면 없이 글자만 오가는 서버 컴퓨터는 마우스가 아예 없어서, 명령줄로만 다뤄요.
그래서 "마우스가 나쁘고 터미널이 좋다"가 아니라, 일에 따라 알맞은 도구가 다르다는 거예요. A-5에서 "문제마다 맞는 해법이 따로 있다"고 했던 것과 똑같은 이야기예요. 일상적인 일엔 마우스가 편하고, 반복되거나 정밀한 개발 작업엔 터미널이 강해요. 오늘은 그 검은 창이 무섭지 않다는 것만 느끼면 돼요.
Step 4: "진짜 첫 코드 한 줄 — 화면에 글자 띄우기"
자, 드디어 오늘의 주인공 순간이에요. 지금까지 다섯 시간 동안 우리는 코드를 단 한 줄도 실제로 실행해 본 적이 없어요. 전부 종이 위 의사코드였죠. 이번 Step에서 그 벽을 넘습니다. 진짜 코드 한 줄을 직접 실행해, 화면에 글자를 띄워 볼 거예요.
먼저 도구부터요. 우리는 아무것도 설치하지 않습니다. 인터넷 브라우저(크롬·엣지·사파리 무엇이든)만 있으면 돼요. 브라우저에서 바로 코드를 쓰고 실행할 수 있는 무료 샌드박스가 있거든요. "샌드박스(sandbox)"는 모래놀이터라는 뜻인데, 마음껏 만들고 부숴도 안전한 연습 공간이라는 의미예요.
강의를 혼자 따라오는 분도 헤매지 않도록, 갈 곳을 딱 한 군데 짚어 드릴게요. 브라우저 주소창에 programiz.com/python-programming/online-compiler 를 입력해 들어가 보세요. 가입도 로그인도 필요 없어요. 화면은 코드를 적는 칸, 큼지막한 Run(실행) 버튼, 결과가 뜨는 칸 이렇게 세 부분으로 나뉘어 있어요. 혹시 이 사이트가 안 열리거나 모양이 달라졌으면, 검색창에 "온라인 파이썬 실행" 또는 "online python compiler"로 검색하면 똑같이 생긴 무료 사이트가 여럿 나와요. 어느 걸 골라도 "코드 칸 + 실행 버튼 + 결과 칸" 구성은 같으니 안심하세요.
브라우저 무료 샌드박스 (설치도 계정도 없이)
① 코드 칸에 코드를 한 줄 적는다
② 실행 버튼(Run ▶)을 누른다
③ 결과 칸에 글자가 뜬다
이제 코드 칸에 적을 단 한 줄을 보여 드릴게요. 이게 이 과목 전체에서 유일하게 등장하는 진짜 코드예요. 지금까지 의사코드만 봤으니, 진짜 코드는 처음이죠.
print("내 첫 코드가 살아 움직인다!")
한 줄을 뜯어볼게요. print는 영어로 "출력하라", 곧 "화면에 보여 줘라"는 명령이에요. 그 뒤 괄호 ( ) 안에, 큰따옴표 " "로 감싼 글자를 넣었죠. 이 큰따옴표 안의 글자가 화면에 그대로 뜰 내용이에요. 그러니 이 한 줄은 통째로 "큰따옴표 안의 이 글자를 화면에 출력하라"는 명령이에요. 실행 버튼을 누르면 결과 칸에 이렇게 떠요.
▶ 실행 결과
내 첫 코드가 살아 움직인다!
방금 무슨 일이 일어난 걸까요? 여러분이 적은 글자 한 줄이, 컴퓨터를 움직여 화면에 글자를 띄웠어요. A-2에서 "프로그램은 컴퓨터에게 내리는 명령의 순서"라고 했죠. 방금 그 명령을 여러분이 직접 한 줄 내려 본 거예요. 그리고 컴퓨터는 A-1에서 배운 대로 "시킨 것만" 충실히 했어요. 출력하라니까 출력했죠. 짧지만, 이게 진짜 프로그래밍의 첫걸음이에요.
큰따옴표 안의 글자는 자유롭게 바꿀 수 있어요. 자기 이름을 넣어도 되고, 좋아하는 문장을 넣어도 돼요. print("나는 오늘 개발자가 되었다")로 바꾸고 실행하면 그 글자가 그대로 떠요. 직접 바꿔 가며 실행해 보세요. 화면이 내 말에 반응하는 그 느낌, 그게 코딩의 첫 재미예요.
💡 한 줄 정리
설치도 계정도 없는 브라우저 무료 샌드박스에서, print("...") 한 줄(이 과목 유일의 진짜 코드)을 적고 실행 버튼을 누르면 큰따옴표 안의 글자가 화면에 그대로 출력된다 — 내가 내린 명령에 컴퓨터가 처음으로 반응하는 순간이다.
🙋 학생 질문 — "튜터님, 이게 진짜 코드 맞아요? 너무 짧은데요. 그리고 왜 하필 파이썬이에요?"
네, 진짜 코드 맞아요. 길어야 대단한 코드인 건 아니에요. 세상의 모든 큰 프로그램도 결국 이런 한 줄 한 줄이 모여서 된 거예요. 첫 줄이 짧은 건 오히려 좋은 거예요. 한 줄로도 "코드가 실제로 돈다"는 걸 느낄 수 있으니까요.
왜 파이썬이냐고요? 좋은 눈썰미예요. 사실 이 과목은 줄곧 "특정 언어 문법은 안 가르친다"고 했고, 오늘 이 한 줄이 그 약속의 유일한 예외예요. 파이썬을 고른 건 print가 "출력하라"는 뜻 그대로라 처음 보는 사람도 읽기 쉽기 때문이에요. 다른 언어에도 "화면에 출력하라"는 명령이 똑같이 있어요. 모양만 조금씩 다를 뿐이죠. 어떤 언어로 본격적으로 시작할지(단단한 Java냐, 가벼운 Python이냐)는 바로 다음 시간(A-7)에 함께 고를 거예요.
그러니 지금 이 한 줄을 보고 "아, 파이썬을 배워야 하는구나"라고 생각하지 마세요. "코드 한 줄이 화면을 움직인다"는 감각 하나만 챙기면 돼요. 그 감각은 어느 언어로 가든 똑같이 쓰여요.
Step 5: "방금 무슨 일이? — 저장에서 실행까지"
방금 우리는 코드 한 줄을 실행해 화면에 글자를 띄웠어요. 신기하긴 한데, 그 사이에 정확히 무슨 일이 일어난 걸까요? 이번 Step에서 그 흐름을 차분히 정리해 볼게요. 마법처럼 보였던 그 순간을, 또렷한 단계로 풀어내는 거예요.
내가 적은 코드 한 줄이 화면의 결과가 되기까지는 이런 길을 지나가요.
내가 적은 코드가 결과가 되기까지
에디터(코드 칸)에 코드를 작성
│
▼
파일로 저장 (예: 첫코드.py)
│
▼
실행 — 컴퓨터가 그 코드를 읽어 시킨 대로 한다
│
▼
화면(결과 칸)에 글자 출력
하나씩 짚어 볼게요. 먼저 작성이에요. Step 2에서 본 에디터(브라우저 샌드박스에선 코드 칸)에 코드를 적죠. 다음은 저장이에요. 적은 코드는 Step 1에서 배운 대로 파일 하나로 저장돼요. 파이썬 코드니까 .py로 끝나는 파일이 되겠죠. 브라우저 샌드박스에선 실행 버튼을 누를 때 이 저장이 자동으로 일어나서, 우리가 따로 신경 쓸 일은 거의 없어요. 그다음이 실행이에요. 컴퓨터가 그 파일 속 코드를 한 줄씩 읽어, 시킨 대로 해요. 마지막이 출력이에요. print 명령이 시킨 대로, 큰따옴표 안의 글자가 화면에 떠요.
여기서 A-2의 한 장면이 떠올라야 해요. 컴파일과 인터프리터 기억하시죠? 번역서를 미리 만들어 두는 컴파일러, 곁에서 바로바로 한 줄씩 통역해 주는 통역사 비유요. 우리가 방금 쓴 브라우저 샌드박스는 통역사처럼 동작해요. 코드를 미리 통째로 번역해 두는 게 아니라, 실행 버튼을 누르는 순간 한 줄씩 읽어 바로 실행하거든요. 그래서 적자마자 결과가 빠르게 떠요.
이 흐름을 더 익숙한 모양으로도 볼 수 있어요. A-3에서 배운 입력→처리→출력(IPO) 기억하시죠? 방금 한 일도 똑같아요. 내가 적은 코드가 입력, 컴퓨터가 코드를 읽어 실행하는 게 처리, 화면에 뜬 글자가 출력이에요. 우리가 종이에서 그렸던 그 IPO 모델이, 이번엔 진짜 컴퓨터 위에서 한 바퀴 돈 거예요. 종이의 사고가 실제 실행으로 이어지는 순간이죠.
💡 한 줄 정리
내가 적은 코드는 작성→저장(파일)→실행→출력의 흐름을 지나 화면의 결과가 되며 — 브라우저 샌드박스는 A-2의 통역사처럼 한 줄씩 읽어 바로 실행하고, 이 흐름은 A-3에서 배운 입력→처리→출력(IPO) 모델 그대로다.
🙋 학생 질문 — "튜터님, 그럼 제가 적은 코드는 어디에 저장돼요? 브라우저를 닫으면 다 사라지나요?"
현실적인 걱정이에요. 애써 쓴 코드가 사라지면 속상하니까요.
브라우저 샌드박스에서 코드는 보통 그 서비스의 인터넷 저장 공간에 저장돼요. 내 컴퓨터의 폴더가 아니라, 그 사이트가 대신 보관해 주는 거죠. 그래서 계정을 만들어 로그인해 두면, 브라우저를 닫았다 다시 열어도 코드가 남아 있어요. 다만 계정 없이 그냥 써 본 경우엔, 브라우저를 닫으면 사라질 수도 있어요. 그래서 마음에 드는 코드는 따로 복사해 두거나, 가벼운 계정 하나를 만들어 저장해 두면 안전해요.
지금은 이게 크게 중요하진 않아요. 오늘 우리가 쓴 건 한 줄짜리 연습이고, 언제든 다시 적으면 되니까요. 본격적으로 코드를 내 컴퓨터의 폴더에 파일로 저장하고 관리하는 건, 후속 언어 과목에서 로컬 환경(VS Code 같은)을 갖추면서 배워요. 그땐 코드가 정확히 어느 폴더의 어떤 파일로 저장되는지 내 눈으로 보게 될 거예요. 더 나아가 코드를 안전하게 보관하고 되돌리는 도구는 git-github 과목에서 따로 배우고요.
Step 6: "빨간 줄은 친구 — 에러를 처음 만나기"
마지막 Step이에요. 그리고 지난 시간에 했던 중요한 약속을 지킬 차례죠. "다음 시간엔 컴퓨터가 빨간 줄로 '여기 틀렸어요'라고 알려 주는 에러를 처음 만난다"고 했어요. 빨간 줄이 무서운 게 아니라 고마운 친구라고도 했고요. 지금 그 친구를 만나러 갑니다.
방법은 간단해요. 일부러 한 글자를 틀려 볼 거예요. A-5 마지막에 부등호 한 글자를 거꾸로 써서 절차가 망가지는 걸 봤죠? 진짜 코드에서도 똑같은 일이 벌어져요. 우리가 잘 실행했던 한 줄에서, 닫는 괄호 ) 하나만 빠뜨려 볼게요.
print("내 첫 코드가 살아 움직인다!"
원래 줄과 비교해 보세요. 맨 끝의 닫는 괄호 )가 사라졌죠. 여는 괄호 (는 있는데 닫는 짝이 없어요. 딱 한 글자 차이예요. 사람 눈엔 별것 아닌 것 같지만, 컴퓨터는 이걸 그냥 넘기지 못해요. 실행 버튼을 누르면, 결과 칸 대신 빨간 글자가 떠요. 이렇게요.
▶ 실행 결과 (빨간 줄)
line 1
print("내 첫 코드가 살아 움직인다!"
^
SyntaxError: '(' was never closed
처음 보면 영어라 무섭죠. 그런데 겁먹지 말고 천천히 뜯어보면, 사실 컴퓨터가 아주 친절하게 알려 주고 있어요. 세 가지를 말해 주거든요. 어디서(line 1, 1번째 줄에서), 무엇이 잘못됐는지(SyntaxError, 문법 오류), 그리고 왜('(' was never closed, 여는 괄호 (를 열고 끝까지 안 닫았다)예요. 친절하게 화살표(^)로 "이 근처를 봐"라고 짚어 주기까지 해요.
메시지를 우리말로 풀면 이래요. "1번째 줄에서 문법이 어긋났어요. 괄호 (를 열어 놓고 닫지를 않았네요." 그러면 답은 뻔하죠. 빠뜨린 닫는 괄호 )를 다시 넣어 주면 돼요. 고쳐서 다시 실행하면, 빨간 줄은 사라지고 "내 첫 코드가 살아 움직인다!"가 멀쩡히 떠요. 한 글자가 망가뜨린 걸, 한 글자로 되살린 거예요. (참고로 샌드박스마다 메시지 문구는 조금씩 달라요. 하지만 "어디·무엇·왜"를 알려 준다는 핵심은 어디서나 같아요.)
여기서 오늘 가장 중요한 마음가짐을 하나 챙겨 가세요. 에러는 실패가 아니에요. A-5에서 "틀리는 건 부끄러운 게 아니다"라고 했죠. 그 말이 진짜 컴퓨터 위에서도 똑같이 통해요. 빨간 줄은 "너 못한다"고 혼내는 게 아니라, "여기 한 군데만 봐 줘"라고 알려 주는 안내예요. 종이에서 우리가 trace로 틀린 줄을 손수 찾았다면, 이제는 컴퓨터가 빨간 줄로 그 위치를 먼저 짚어 줘요. 종이에서 기른 디버깅의 눈에, 컴퓨터라는 든든한 친구가 더해진 거죠.
그러니 앞으로 빨간 줄을 보면 한숨 쉬지 말고 반갑게 읽어 보세요. "어디서, 무엇이, 왜." 그 세 가지만 차분히 읽으면, 거의 모든 에러는 길을 알려 주는 친구가 됩니다.
💡 한 줄 정리
에러(빨간 줄)는 실패가 아니라 "어디서·무엇이·왜" 틀렸는지 짚어 주는 안내이며 — 종이에서 trace로 틀린 곳을 찾던 디버깅의 눈에, 이제는 빨간 줄로 위치를 먼저 알려 주는 컴퓨터가 친구로 더해진다.
🙋 학생 질문 — "튜터님, 에러가 나면 제가 컴퓨터를 망가뜨린 건 아닌가요? 빨간 줄이 너무 무서워요."
그 마음 정말 잘 알아요. 처음 빨간 글자를 만나면 "내가 뭘 부순 건가" 싶어 손이 굳죠. 그런데 안심하세요. 에러가 났다고 컴퓨터가 망가지는 일은 없어요. 절대로요.
에러는 컴퓨터가 "이 명령은 내가 이해를 못 하겠어요" 하고 정중히 멈춰 서는 거예요. 망가지는 게 아니라, 오히려 안전하게 멈추는 거죠. 잘못 알아들은 채로 엉뚱한 일을 벌이는 게 아니라, "여기 이상해요" 하고 깔끔히 서서 우리한테 물어보는 거예요. 그러니 빨간 줄은 사고가 아니라, 컴퓨터가 우리를 보호하며 도움을 청하는 신호예요.
그리고 한 가지 더. 에러는 누구나, 매일, 수없이 만나요. 수십 년 경력의 개발자도 코드를 짜면 하루에도 몇 번씩 빨간 줄을 봐요. 그게 일하는 정상적인 모습이에요. 차이는 "에러를 안 만나는 것"이 아니라 "에러를 차분히 읽고 고치는 것"에 있어요. 오늘 닫는 괄호 하나를 고쳐 빨간 줄을 없앤 그 경험이, 앞으로 여러분이 평생 수천 번 하게 될 그 일의 첫 번째예요. 무서워하던 빨간 줄이, 곧 가장 친한 친구가 될 거예요.
마무리
여섯 번째 시간, 정말 큰 고비를 넘으셨어요. 오늘 우리는 다섯 시간 동안 머물던 종이를 떠나, 처음으로 진짜 컴퓨터로 들어갔어요. 코드가 사는 곳(파일·폴더·확장자)을 알았고, 코드를 다루는 두 도구(에디터·터미널)를 만났죠. 그리고 무엇보다, 설치 하나 없이 브라우저에서 진짜 코드 한 줄을 직접 실행해 화면에 글자를 띄웠어요. 마지막엔 일부러 오타를 내 빨간 에러까지 만나, 그게 무섭지 않다는 것도 배웠고요. 종이 위 사고가 마침내 살아 움직이는 코드가 된, 특별한 날이었어요.
오늘 배운 핵심 세 가지
- 💡 코드에도 사는 곳과 다루는 도구가 있다. 코드는 폴더 안에 확장자(
.py등)가 붙은 파일로 산다. 코드를 쓰는 전용 도구가 코드 에디터(가장 널리 쓰는 무료 에디터는 VS Code)이고, 명령을 글자로 내리는 검은 창이 터미널(CLI)이다. - 💡 진짜 코드 한 줄을 직접 실행했다. 설치도 계정도 없는 브라우저 무료 샌드박스에서
print("...")한 줄을 실행해 화면에 글자를 띄웠고, 작성→저장→실행→출력의 흐름(A-2 통역사·A-3 IPO와 같은 모습)을 경험했다. - 💡 에러는 친구다. 빨간 줄은 실패가 아니라 "어디서·무엇이·왜" 틀렸는지 짚어 주는 안내다. 메시지를 차분히 읽고 한 글자를 고치면 코드는 다시 돈다. 틀리는 건 누구나 매일 하는 일이다.
다음 시간 예고
오늘 코드 한 줄을 직접 실행해 봤으니, 이제 "그래서 나는 어디로 갈까"를 정할 차례예요. 다음 시간(A-7)은 이 과목의 마지막 시간이자, 진짜 코드 세계로 나가는 문이에요. 개발자의 세계가 어떻게 생겼는지 지도를 펼쳐 볼 거예요. 화면을 만드는 프론트엔드, 보이지 않는 곳을 떠받치는 백엔드, 손안의 앱을 만드는 모바일, 데이터와 AI를 다루는 분야, 그 모두가 돌아가게 하는 인프라 — 각자 무엇을 만드는지 한눈에요.
그리고 오늘 잠깐 만난 파이썬 같은 언어를 무엇부터 시작할지 고르는 가이드도 드려요. 단단하고 꼼꼼한 Java로 갈지, 가볍고 빠른 Python으로 갈지, 여러분에게 맞는 첫 언어를 함께 골라요. 마지막으로, 2026년 지금 꼭 짚어야 할 이야기 — AI 시대에 코딩을 어떻게 배워야 하는가를 솔직하고 균형 있게 다뤄요. AI가 코드를 대신 써 주는 시대에, 왜 기초가 오히려 더 중요해졌는지를요. 이 과목의 마지막을 멋지게 장식하러, 다음 시간에 만나요.
과제
오늘은 두 종류의 연습이 섞여 있어요. 종이로 정리하는 것도 있고, 직접 손으로 실행해 보는 것도 있어요. 특히 [심화]는 오늘 배운 모든 걸 직접 해 보는 거라, 꼭 한 번 해 보시길 권해요. 화면이 내 코드에 반응하는 그 느낌은, 글로 읽는 것과 완전히 달라요.
[기초] 내 컴퓨터의 폴더 트리 그리기
내 컴퓨터(또는 머릿속)의 폴더 한 곳을 골라, Step 1의 트리를 본보기로 폴더 트리를 그려 보세요. 예를 들어 "내문서" 폴더 아래에 어떤 폴더들이 있고, 그 안에 어떤 파일들이 있는지를요. 그리면서 두 가지를 표시해 보세요. 첫째, 폴더와 파일을 구분(폴더 끝엔 /를 붙이기). 둘째, 각 파일의 확장자를 보고 "이건 어떤 종류의 파일이고, 무엇으로 여는가"를 옆에 적기. 다 그렸으면 스스로 물어보세요. "이 중 코드 파일(.py·.html 등)은 어떤 거지?" 아직 코드 파일이 없다면, 다음에 만들 첫코드.py를 어디에 둘지 정해 보는 것도 좋아요.
[응용] 마우스로 하던 일을 글자 명령으로 상상해 적기
평소 컴퓨터에서 마우스로 하는 일 세 가지를 골라(예: 폴더 열기, 파일 이름 바꾸기, 사진을 다른 폴더로 옮기기), 각각을 "글자 명령으로 시킨다면 어떻게 말할까"를 평범한 한국어 명령문으로 적어 보세요. 진짜 터미널 명령어를 알 필요는 없어요(그건 후속 과목에서 배워요). 예를 들어 "사진 폴더를 열어라", "프로필.png의 이름을 메인.png로 바꿔라"처럼요. 다 적었으면 생각해 보세요. 이 중 어떤 일은 마우스가 편하고, 어떤 일은 글자 명령이 더 빠를까요? Step 3의 GUI vs CLI 표를 떠올리며 견줘 보세요.
[심화] 브라우저 샌드박스에서 직접 실행하고, 일부러 에러 내 보기
오늘의 진짜 실습이에요. Step 4에서 안내한 무료 샌드박스(브라우저 주소창에 programiz.com/python-programming/online-compiler, 가입 없이 바로 써요. 안 열리면 "온라인 파이썬 실행"으로 검색하면 돼요)에 들어가세요. 그리고 Step 4의 한 줄을 직접 적고 실행해, 화면에 글자가 뜨는 걸 확인하세요. 큰따옴표 안의 글자를 자기 이름이나 좋아하는 문장으로 바꿔서도 실행해 보고요. 그다음이 핵심이에요. 일부러 한 글자를 틀려 보세요. 닫는 괄호 )를 빼거나, 큰따옴표 한쪽을 지우거나, print를 prnt로 잘못 적거나요. 실행하면 빨간 에러가 뜰 거예요. 그 메시지를 Step 6처럼 "어디서·무엇이·왜"로 차분히 읽어 보고, 틀린 곳을 고쳐 다시 실행해 보세요. 빨간 줄이 사라지고 코드가 다시 도는 그 경험이, 오늘 배운 "에러는 친구"를 몸으로 느끼게 해 줄 거예요.
생각해볼 주제
정답이 하나로 떨어지지 않는 질문들이에요. 혼자 곰곰이 생각해도 좋고, 같이 공부하는 사람과 이야기 나눠도 좋습니다.
1. 왜 설치가 입문자에게 그렇게 큰 벽일까?
오늘 우리는 일부러 아무것도 설치하지 않고, 브라우저 샌드박스로 첫 코드를 실행했어요. 많은 입문서나 강의가 "먼저 언어를 설치하세요"로 시작하는데, 이 과목은 그 순서를 미뤘죠. 왜 설치가 비전공자에게 그렇게 큰 벽이 될까요? 컴퓨터에 새 프로그램을 깔다가 막혔던 경험을 떠올려 보세요. "설치만 하면 되는데" 싶은 일이 왜 초보자에겐 좌절의 지점이 되는지, 그리고 그 벽을 낮추려면 무엇이 도움이 될지 생각해 보세요.
2. "에러는 친구"라는 말은 정말 무슨 뜻일까?
Step 6에서 빨간 에러를 만나고 "에러는 실패가 아니라 안내"라고 했어요. 머리로는 알겠는데, 막상 빨간 줄을 보면 여전히 가슴이 철렁하죠. 에러를 진짜로 "친구"처럼 반갑게 여기려면, 틀림에 대한 어떤 태도가 필요할까요? A-5에서 배운 "틀리는 건 부끄러운 게 아니다"와 이어서 생각해 보세요. 그리고 만약 컴퓨터가 에러를 전혀 알려 주지 않고 조용히 엉뚱한 결과만 낸다면, 그게 오히려 더 무섭지 않을지도요.
3. 메모장으로도 코드가 써지는데, 개발자는 왜 굳이 전문 도구를 쓸까?
Step 2와 Step 3에서 코드 에디터와 터미널을 봤어요. 둘 다 "안 써도 되긴 하는데, 쓰면 훨씬 편한" 도구였죠. 메모장으로도 코드는 써지고, 마우스로도 폴더는 열려요. 그런데도 개발자들이 전용 도구를 쓰는 이유는 뭘까요? 도구가 단순히 "편하게" 해 주는 걸 넘어, 우리가 생각하고 일하는 방식 자체를 어떻게 바꾸는지 떠올려 보세요. 좋은 도구가 있으면 더 어려운 일에 도전하게 되는, 그런 경험이 다른 분야(요리·운동·악기 등)에도 있었는지 함께 생각해 봐도 좋아요.
✅ 예시 답안정답 보기
이 문서는 A-6 「개발 환경 첫걸음」의 과제와 생각해볼 주제에 대한 예시답안입니다. 정답을 외우는 용도가 아니라, 도구를 어떻게 이해하고·직접 실행해 보고·에러를 어떻게 읽는지 그 흐름을 참고하는 용도로 보세요. 특히 [심화] 과제는 직접 손으로 실행해 본 사람만 느낄 수 있는 게 있으니, 답을 읽기 전에 꼭 한 번 해 보시길 권합니다.
과제 예시답안
🎯 [과제 1 예시답안] 내 컴퓨터의 폴더 트리 그리기
채점 포인트
| 항목 | 배점 | 기준 |
|---|---|---|
| 폴더·파일 구분 | 35% | 폴더(끝에 /)와 파일을 구분해 표시했는가 |
| 확장자 읽기 | 35% | 각 파일의 확장자로 종류·여는 도구를 짚었는가 |
| 트리 구조 | 30% | 폴더 안의 폴더·파일을 가지 구조로 그렸는가 |
풀이 예시
"바탕화면" 폴더를 골라 그려 봤습니다.
바탕화면/
├── 학교/
│ ├── 과제1.txt
│ └── 발표자료.pdf
├── 사진/
│ ├── 가족여행.jpg
│ └── 강아지.png
└── 코딩연습/
└── 첫코드.py
각 파일의 확장자를 읽어 보면 이렇습니다.
| 파일 | 확장자 | 종류 | 여는 도구 |
|---|---|---|---|
과제1.txt |
.txt |
글자 메모 | 메모장·에디터 |
발표자료.pdf |
.pdf |
문서 | PDF 뷰어 |
가족여행.jpg |
.jpg |
사진 | 사진 뷰어 |
첫코드.py |
.py |
파이썬 코드 | 코드 에디터·파이썬 |
이 중 코드 파일은 코딩연습/ 안의 첫코드.py 하나입니다. 다음에 만들 코드는 여기에 두면 정리가 깔끔하겠죠.
💡 튜터의 한마디 — 아주 잘 그렸어요. 이 과제의 핵심은 "코드도 결국 폴더 안에 확장자가 붙은 파일로 산다"는 Step 1의 감각을 내 컴퓨터에 직접 적용해 보는 거예요. 폴더 끝에 /를 붙여 파일과 구분한 것, 그리고 사진/ 안에 사진 파일을 묶은 것처럼 가지 구조로 그린 게 좋아요. 무엇보다 .py 코드 파일을 따로 코딩연습/ 폴더에 모은 게 인상적이에요. 실제 개발에서도 코드는 코드끼리, 사진은 사진끼리 폴더로 정리하거든요. 확장자만 봐도 "이건 뭐고 무엇으로 여는지" 알 수 있다는 걸 표로 정리한 것도 정확합니다. 정답인 트리는 없어요. 자기 컴퓨터를 자기 방식으로 정리한 게 다 맞아요.
🎯 [과제 2 예시답안] 마우스로 하던 일을 글자 명령으로 상상해 적기
채점 포인트
| 항목 | 배점 | 기준 |
|---|---|---|
| 세 가지 작업 선정 | 30% | 마우스로 하던 일 세 가지를 골랐는가 |
| 명령문으로 표현 | 40% | 각 작업을 또박또박한 한국어 명령으로 적었는가 |
| GUI/CLI 견주기 | 30% | 어떤 일에 마우스가/명령이 유리한지 견줘 봤는가 |
풀이 예시
평소 마우스로 하는 일 세 가지를 골라, 글자 명령으로 시킨다면 어떻게 말할지 적어 봤습니다.
| 마우스로 하던 일 (GUI) | 글자로 시킨다면 (CLI 상상) |
|---|---|
| 사진 폴더를 더블클릭해서 연다 | "사진 폴더를 열어라" |
프로필.png의 이름을 메인.png로 바꾼다 |
"프로필.png의 이름을 메인.png로 바꿔라" |
| 사진 50장을 골라 백업 폴더로 옮긴다 | "사진 폴더의 .png 파일을 전부 백업 폴더로 옮겨라" |
견줘 보니, 첫 번째와 두 번째처럼 한 번만 하는 단순한 일은 마우스가 편했습니다. 그런데 세 번째처럼 "여러 개를 한꺼번에, 조건에 맞는 것만" 하는 일은 글자 명령이 훨씬 빠르겠더라고요. 마우스로는 50번 골라 옮겨야 하지만, 명령 한 줄이면 끝나니까요.
💡 튜터의 한마디 — 견주는 눈이 정확해요. 이 과제의 목적은 진짜 터미널 명령어를 외우는 게 아니라(그건 후속 과목에서 배워요), GUI와 CLI가 "각각 어떤 일에 강한가"를 감각으로 잡는 거예요. 특히 세 번째 예시가 좋아요. "조건에 맞는 것만 한꺼번에"는 마우스로는 지치는 일이지만, 글자 명령은 단번에 해내죠. 이게 Step 3에서 말한 "명령은 반복과 정밀함에 강하다"의 핵심이에요. 반대로 한 번 하고 마는 단순한 일엔 마우스가 편하다는 것도 정확히 봤고요. "무조건 터미널이 좋다"가 아니라 "일에 맞는 도구를 고른다"는 결론에 스스로 도달한 게 가장 훌륭합니다.
🎯 [과제 3 예시답안] 브라우저 샌드박스에서 직접 실행하고, 일부러 에러 내 보기
채점 포인트
| 항목 | 배점 | 기준 |
|---|---|---|
| 직접 실행 | 30% | 샌드박스에서 print 한 줄을 실행해 결과를 확인했는가 |
| 일부러 에러 내기 | 35% | 한 글자를 틀려 빨간 에러를 만났는가 |
| 에러 읽고 고치기 | 35% | "어디·무엇·왜"로 읽고 고쳐 다시 실행했는가 |
풀이 예시
브라우저에서 "온라인 파이썬 실행"을 검색해 무료 샌드박스에 들어갔습니다. 먼저 한 줄을 적고 실행했어요.
print("나의 첫 코드, 드디어 실행!")
실행 버튼을 누르니 결과 칸에 나의 첫 코드, 드디어 실행!이 그대로 떴습니다. 화면이 제 코드에 반응하는 게 신기했어요.
그다음 일부러 닫는 괄호 )를 빼 봤습니다.
print("나의 첫 코드, 드디어 실행!"
실행하니 결과 대신 빨간 글자가 떴어요. 대략 이런 메시지였습니다.
line 1
print("나의 첫 코드, 드디어 실행!"
^
SyntaxError: '(' was never closed
Step 6에서 배운 대로 "어디·무엇·왜"로 읽어 봤어요. 어디서는 line 1, 1번째 줄. 무엇이는 SyntaxError, 문법 오류. 왜는 '(' was never closed, 여는 괄호 (를 안 닫았다는 뜻이었죠. 그래서 빠뜨린 )를 다시 넣고 실행하니, 빨간 줄이 사라지고 글자가 멀쩡히 떴습니다.
한 번 더, 이번엔 print를 prnt로 잘못 적어 봤어요. 그랬더니 이번엔 NameError: name 'prnt' is not defined처럼 "그런 이름은 모른다"는 다른 메시지가 떴습니다. 오타 종류에 따라 에러 메시지도 다르다는 걸 알았어요.
💡 튜터의 한마디 — 직접 손을 움직여 본 게 가장 큰 수확이에요. 이 과제의 진짜 목적은 "코드가 화면을 움직인다"와 "에러는 무섭지 않다"를 머리가 아니라 몸으로 느끼는 거예요. 닫는 괄호 하나로 코드가 멈췄다가, 그 하나를 되살리니 다시 도는 경험. 그게 A-5에서 본 "한 글자가 절차를 망가뜨린다"와 정확히 이어지죠. 특히 에러 메시지를 "어디·무엇·왜"로 또박또박 읽어낸 게 훌륭해요. 영어라 무섭다고 닫아 버리지 않고, 컴퓨터가 알려 주는 단서를 차분히 읽은 거잖아요. print를 prnt로 바꿨을 때 다른 에러가 뜬 걸 관찰한 것도 좋아요. 오타마다 에러가 다르다는 건, 에러가 그만큼 친절히 종류를 구분해 알려 준다는 뜻이에요. 오늘 빨간 줄과 친구가 됐네요.
생각해볼 주제 예시답안
🤔 [생각해볼 주제 1] 왜 설치가 입문자에게 그렇게 큰 벽일까
문제 상황 요약
이 과목은 일부러 아무것도 설치하지 않고 브라우저 샌드박스로 첫 코드를 실행했다. 많은 입문 강의가 "먼저 언어를 설치하세요"로 시작하는데, 이 과목은 그 순서를 미뤘다. 왜 설치가 비전공자에게 큰 벽이 되는지, 그 벽을 낮추려면 무엇이 도움이 될지 생각해 보는 주제다.
튜터의 가이드 및 해설
설치가 왜 벽인지 이해하려면, 설치가 실제로 어떤 일인지 떠올려 보면 된다. 언어 하나를 설치한다는 건 단순히 프로그램 하나를 까는 게 아니다. 내 컴퓨터가 윈도우인지 맥인지에 따라 방법이 다르고, 버전을 골라야 하고, "환경 변수"라는 낯선 설정을 건드려야 할 때도 있다. 이 과정에서 한 군데라도 어긋나면, 입문자는 무엇이 잘못됐는지 짐작조차 못 한다. 코드를 한 줄도 써 보기 전에, 알 수 없는 설정 화면 앞에서 막혀 버리는 것이다.
더 큰 문제는 이때 만나는 에러가 "내 코드의 에러"가 아니라 "환경의 에러"라는 점이다. 우리가 Step 6에서 본 에러는 적어도 "내가 짠 한 줄"에 대한 것이라 고칠 수 있었다. 그런데 설치 단계의 에러는 컴퓨터 깊숙한 곳의 설정 문제라, 입문자가 읽어도 손쓸 도리가 없다. "아직 시작도 안 했는데 벌써 막혔다"는 좌절. 비전공자가 가장 많이 포기하는 지점이 바로 여기다.
그래서 이 과목은 그 벽을 통째로 치웠다. 브라우저 샌드박스는 설치도, 버전 선택도, 환경 설정도 없다. 브라우저만 열면 누구의 컴퓨터에서나 똑같이 코드가 돈다. 덕분에 우리는 "설치 지옥"을 건너뛰고, 곧장 "코드가 실행된다"는 핵심 경험으로 갈 수 있었다. 벽을 낮추는 가장 좋은 방법은, 처음엔 그 벽을 아예 없는 곳에서 시작하는 것이다.
그렇다고 설치를 영영 안 하는 건 아니다. 본격적으로 개발하려면 결국 내 컴퓨터에 언어와 에디터를 갖춰야 한다. 다만 그건 "코드가 뭔지 이미 아는" 상태에서 하면 훨씬 덜 무섭다. 한 번에 하나씩 — 먼저 코드를 익히고, 그다음 환경을 갖추는 순서. 설치는 후속 언어 과목에서, 코드에 익숙해진 뒤에 차근차근 만난다.
💡 핵심을 한마디로
설치는 운영체제·버전·환경 설정이 한꺼번에 얽혀 있고, 거기서 나는 에러는 "내 코드"가 아니라 "환경"의 문제라 입문자가 손쓸 수 없어 좌절하기 쉽다. 그래서 설치 없는 브라우저 샌드박스로 "코드가 돈다"는 경험을 먼저 주고, 환경 설치는 코드에 익숙해진 뒤로 미루는 것이 벽을 낮추는 길이다.
🤔 [생각해볼 주제 2] "에러는 친구"라는 말은 정말 무슨 뜻일까
문제 상황 요약
Step 6에서 빨간 에러를 만나고 "에러는 실패가 아니라 안내"라고 했다. 머리로는 알겠는데, 막상 빨간 줄을 보면 가슴이 철렁한다. 에러를 진짜 "친구"처럼 반갑게 여기려면 틀림에 대한 어떤 태도가 필요한지, 그리고 컴퓨터가 에러를 알려 주지 않는다면 오히려 더 무섭지 않을지 생각해 보는 주제다.
튜터의 가이드 및 해설
"에러는 친구"라는 말이 와닿지 않는 이유는, 우리가 살면서 "틀림 = 혼남"으로 배워 왔기 때문이다. 시험에서 틀리면 점수가 깎이고, 일에서 틀리면 지적을 받는다. 그래서 빨간 줄을 보면 반사적으로 "내가 못했구나" 하고 움츠러든다. 그런데 코딩의 에러는 그런 종류의 틀림이 아니다.
에러는 컴퓨터가 우리를 혼내는 게 아니라, 도움을 청하며 멈춰 서는 신호다. "당신이 시킨 이 줄을 제가 이해를 못 하겠어요. 여기 좀 봐 주세요"라고 정중히 손을 드는 것이다. Step 6의 에러 메시지가 "어디서·무엇이·왜"를 또박또박 알려 준 걸 떠올려 보라. 혼내는 사람은 그렇게 친절하게 위치와 이유를 짚어 주지 않는다. 에러는 우리를 탓하는 게 아니라, 우리가 길을 찾도록 돕고 있다.
그래서 필요한 태도는 단 하나다. "틀림 = 실패"가 아니라 "틀림 = 정보"라고 다시 보는 것. 에러는 "여기까지는 됐고, 이 지점만 다르게 하면 된다"는 구체적인 정보다. A-5에서 "틀리는 건 부끄러운 게 아니라 차분히 찾아 고치면 되는 일상"이라고 했던 그 마음이, 진짜 코드 위에서도 똑같이 통한다. 빨간 줄을 보고 한숨 쉬는 대신 "오, 단서가 왔네" 하고 읽기 시작하면, 그 순간부터 에러는 적이 아니라 친구가 된다.
여기서 한 걸음 더 들어가 보자. 만약 컴퓨터가 에러를 전혀 알려 주지 않는다면 어떨까? 괄호를 빠뜨려도 아무 말 없이, 그냥 조용히 엉뚱한 결과만 툭 내놓는다면? 그게 훨씬 더 무섭다. 무엇이 틀렸는지, 어디를 고쳐야 하는지 단서가 하나도 없으니까. 실제로 "에러도 안 나는데 결과만 이상한" 상황이 개발에서 가장 잡기 어려운 문제다. 그렇게 보면, 빨간 줄로 "여기 틀렸어요"라고 시끄럽게 알려 주는 에러는 오히려 고마운 친구다. 침묵하는 컴퓨터보다, 잔소리하는 컴퓨터가 백배 낫다.
💡 핵심을 한마디로
에러는 우리를 혼내는 게 아니라 "어디서·무엇이·왜" 틀렸는지 짚어 주며 도움을 청하는 신호이므로, "틀림 = 실패"가 아니라 "틀림 = 길을 알려 주는 정보"로 다시 보면 친구가 된다. 아무 말 없이 엉뚱한 답만 내는 침묵보다, 빨간 줄로 시끄럽게 알려 주는 에러가 훨씬 고맙다.
🤔 [생각해볼 주제 3] 메모장으로도 코드가 써지는데, 개발자는 왜 굳이 전문 도구를 쓸까
문제 상황 요약
Step 2와 Step 3에서 코드 에디터와 터미널을 봤다. 둘 다 "안 써도 되긴 하는데, 쓰면 훨씬 편한" 도구였다. 메모장으로도 코드는 써지고, 마우스로도 폴더는 열린다. 그런데도 개발자들이 전용 도구를 쓰는 이유는 무엇인지, 도구가 단순히 편리함을 넘어 우리가 일하고 생각하는 방식을 어떻게 바꾸는지 생각해 보는 주제다.
튜터의 가이드 및 해설
먼저 분명히 해 두자. 메모장으로도 코드는 써진다. 마우스로도 대부분의 일은 된다. 그러니 "안 되니까 전용 도구를 쓴다"는 답은 틀렸다. 핵심은 "되느냐"가 아니라 "얼마나 수월하게, 그리고 얼마나 멀리 갈 수 있느냐"에 있다.
도구가 주는 첫 번째 변화는 실수가 줄어드는 것이다. 코드 에디터는 괄호 짝을 맞춰 주고, 오타에 밑줄을 긋고, 줄 번호로 위치를 짚어 준다. 메모장이라면 일일이 눈으로 찾아야 할 실수를, 도구가 미리 잡아 준다. 사람의 주의력은 한정돼 있어서, 사소한 실수를 도구에 맡기면 그만큼 진짜 중요한 생각에 집중할 수 있다. 이게 도구의 첫 번째 힘이다.
그런데 더 깊은 변화가 있다. 좋은 도구는 우리가 더 어려운 일에 도전하게 만든다. 이건 도구가 단순히 "지금 하는 일을 편하게" 하는 걸 넘어선다. 예를 들어 코드가 수천 줄로 길어져도, 에디터가 구조를 색으로 보여 주고 원하는 곳으로 단번에 데려다주니 "긴 코드"에 겁먹지 않게 된다. 터미널로 반복 작업을 자동화할 수 있으니, 손으로는 엄두도 못 낼 규모의 일을 시도하게 된다. 도구가 없었다면 "그건 너무 복잡해서 못 해"라며 포기했을 일을, 도구가 있으니 "해 볼 만하다"로 바꾸는 것이다.
이건 다른 분야에서도 똑같이 보인다. 좋은 칼이 있는 요리사는 더 정교한 요리에 도전하고, 좋은 악기가 있는 연주자는 더 어려운 곡을 시도한다. 도구가 솜씨를 대신해 주는 건 아니지만, 솜씨가 닿을 수 있는 범위를 넓혀 준다. 개발 도구도 마찬가지다. 에디터와 터미널은 코드를 대신 짜 주지 않는다. 다만 우리가 더 크고 복잡한 문제에 손을 뻗을 수 있게 받쳐 준다.
그래서 "왜 전용 도구를 쓰는가"의 답은 이렇다. 단지 편해서가 아니라, 도구가 우리가 다룰 수 있는 문제의 크기 자체를 키우기 때문이다. 입문 단계에선 메모장이든 샌드박스든 무엇으로 시작해도 좋다. 다만 앞으로 더 큰 걸 만들고 싶어질 때, 좋은 도구가 그 길을 열어 준다는 걸 기억해 두자.
💡 핵심을 한마디로
전용 도구를 쓰는 이유는 단지 편해서가 아니라, 사소한 실수를 도구에 맡겨 진짜 생각에 집중하게 하고 — 나아가 혼자서는 엄두도 못 낼 크고 복잡한 문제에 도전할 수 있게 다룰 수 있는 범위 자체를 넓혀 주기 때문이다. 도구는 솜씨를 대신하지 않지만, 솜씨가 닿는 범위를 키운다.