프로그래밍웹 교과서
이 페이지의 목차
1단원 · 8차시

개발 환경 준비하기

통합 개발 환경(IDE)편집기디버거웹 기반 실행 환경

코드 예제: Python · C · 예상 50분

학습 목표

  • 통합 개발 환경이 제공하는 기능을 설명한다.
  • 학습에 쓸 개발 환경을 준비하고 첫 프로그램을 실행한다.

관련 성취기준

  • 프그01-04

    디지털 기술을 통한 프로그래밍 공동 개발 환경의 필요성과 공유 및 협업을 통한 프로그래밍을 경험할 수 있다.

생각 열기 — 코드는 있는데 실행이 안 된다

친구가 만든 Python 프로그램을 파일로 받았다. 열어 보니 코드가 제대로 들어 있다. 그런데 더블클릭해도 아무 일이 없다. 친구는 “내 컴퓨터에서는 잘 되는데”라고 한다.

개발에 필요한 도구들

프로그램을 만들려면 도구가 여럿 필요하다. 각자 하는 일이 다르다.

  • 적는 도구

    편집기

    코드를 입력하고 저장한다. 문법에 색을 입혀 오타를 눈에 띄게 해 준다.

  • 옮기는 도구

    컴파일러 또는 인터프리터

    2차시에서 다룬 번역기다. 이것이 없으면 코드는 글자 파일일 뿐이다.

  • 들여다보는 도구

    디버거

    실행을 멈춰 놓고 변수에 어떤 값이 들어 있는지 확인한다.

  • 돌리는 자리

    실행 환경

    번역한 결과가 실제로 돌아가는 곳. 운영체제와 필요한 라이브러리가 여기 든다.

생각 열기의 문제는 여기서 답이 나온다. 친구의 컴퓨터에는 Python 인터프리터가 설치돼 있었고 내 컴퓨터에는 없었다. 코드는 번역기가 있어야 실행된다.

통합 개발 환경 — 도구를 한자리에 모은 것

통합 개발 환경(IDE, Integrated Development Environment) — 편집기·번역기·디버거·실행 기능을 하나의 프로그램에 모아 놓은 개발 도구은 앞의 도구들을 하나의 프로그램에 모아 놓은 것이다. 편집기에서 코드를 쓰고 단추 하나로 번역과 실행까지 한다.

통합 개발 환경이 해 주는 일
기능하는 일없으면
문법 강조키워드·문자열·주석에 다른 색을 입힌다문자열의 따옴표를 안 닫은 것을 눈으로 못 찾는다
자동 완성이름의 앞부분만 쳐도 나머지를 보여 준다print 를 prnit 로 적는 실수가 늘어난다
오류 표시문법이 어긋난 곳에 실행 전에 줄을 긋는다실행해 봐야 오타를 안다
실행 단추저장·번역·실행을 한 번에 한다명령을 손으로 여러 번 입력한다
디버거실행을 멈춰 놓고 값을 들여다본다값을 보려고 출력문을 여기저기 끼워 넣는다
파일 관리여러 파일로 나뉜 프로그램을 함께 다룬다파일마다 따로 열고 관계를 외운다
분류하기이 도구는 무슨 일을 하는가

카드를 누른 뒤, 넣을 통을 누른다. 통 안의 카드를 누르면 다시 나온다.

편집기

번역기

디버거

실행 환경

디버거 — 실행을 멈춰 놓고 안을 들여다본다

디버거(debugger) — 프로그램 실행을 원하는 지점에서 멈추고 변수 값과 실행 순서를 확인하는 도구는 논리 오류를 찾는 도구다. 5차시에서 논리 오류가 가장 찾기 어렵다고 했다. 프로그램이 멈추지도, 오류 메시지를 내지도 않고 그냥 답이 틀리기 때문이다. 디버거는 그 틀린 답이 만들어지는 과정을 보여 준다.

  • 중단점 — 여기서 멈추라고 표시해 둔 줄이다. 실행이 그 줄에 닿으면 멈춘다.
  • 한 단계 실행 — 멈춘 곳에서 한 줄씩 실행한다. 어느 줄에서 값이 틀어지는지 짚을 수 있다.
  • 변수 값 보기 — 멈춘 순간의 모든 변수 값을 표로 보여 준다.

디버거가 없어도 print 를 끼워 넣어 값을 확인할 수 있다. 실제로 그 방법도 널리 쓰인다. 다만 확인하고 나면 끼워 넣은 출력문을 반드시 지워야 한다. 남겨 두면 쓰는 사람에게 알 수 없는 값이 보인다.

웹 기반 실행 환경 — 설치 없이 브라우저에서

학교 컴퓨터에는 프로그램을 새로 설치할 수 없는 경우가 많다. 이때 쓰는 것이 웹 기반 실행 환경(web-based runtime) — 브라우저 안에서 코드를 실행해 주는 개발 환경이다. 브라우저만 있으면 코드를 적고 실행할 수 있다.

설치형 환경과 웹 기반 환경의 비교
기준설치형 개발 환경웹 기반 실행 환경
준비내려받아 설치한다. 설치 권한이 필요하다주소만 열면 된다
어느 컴퓨터에서나컴퓨터마다 다시 설치해야 한다같은 주소를 열면 같은 환경이다
인터넷설치 뒤에는 필요 없다대체로 필요하다
파일 다루기컴퓨터의 파일을 자유롭게 읽고 쓴다제한된다 — 브라우저 밖으로 못 나간다
성능과 기능컴퓨터의 성능을 그대로 쓴다제한이 있다. 큰 계산에는 불리하다
잘 맞는 곳길게 만드는 프로그램, 파일·장치를 다루는 프로그램수업 시간의 짧은 실습, 여러 컴퓨터를 옮겨 다닐 때

이 웹 교과서의 Python 예제도 브라우저 안에서 실행된다. C 예제는 실행하지 않고 확인된 기대 출력을 함께 싣는다. 브라우저에서 C를 실행하게 해 주는 도구가 한글 출력을 제대로 다루지 못해 수업에 쓸 수 없다고 판단했기 때문이다. C 예제는 복사 단추로 가져가 전산실 컴파일러에서 돌린다.

첫 프로그램으로 환경을 확인한다

환경이 제대로 준비됐는지 확인하는 방법은 짧은 프로그램을 하나 돌려 보는 것이다. 확인할 것은 두 가지다. 실행이 되는가, 그리고 한글이 깨지지 않는가.

예상해 보기

아래 프로그램이 제대로 돌면 화면에 무엇이 찍힐까?

결과 바로 보기
환경 확인 — 한글이 제대로 보이면 성공
2 + 3 = 5
Python환경 확인용 프로그램
print("환경 확인 — 한글이 제대로 보이면 성공")
print("2 + 3 =", 2 + 3)
확인된 실행 결과
환경 확인 — 한글이 제대로 보이면 성공
2 + 3 = 5
C환경 확인용 프로그램확인된 출력
#include <stdio.h>

int main(void)
{
    printf("환경 확인 — 한글이 제대로 보이면 성공\n");
    printf("2 + 3 = %d\n", 2 + 3);
    return 0;
}
실행 결과
환경 확인 — 한글이 제대로 보이면 성공
2 + 3 = 5

한글이 ????? 나 알 수 없는 기호로 나온다면 코드가 잘못된 것이 아니다. 글자를 저장하고 표시하는 방식이 어긋난 것이다. 이때는 파일을 UTF-8로 저장했는지, 명령 창의 글자 설정이 UTF-8인지 확인한다.

입력을 받는 프로그램도 확인해 두면 좋다. 아래는 이름을 받아 인사하는 프로그램이며, 입력으로 정보 를 주었을 때의 결과다.

Python입력이 되는지 확인하기
name = input("이름을 입력하세요: ")
print("반갑다,", name)
입력
확인된 실행 결과
이름을 입력하세요: 반갑다, 정보

안내 문구와 결과가 한 줄에 붙어 나온다. input 이 보여 주는 안내 문구 뒤에 줄바꿈이 없기 때문이다. 문법은 2단원에서 다룬다.

코드 작성

환경 확인 프로그램을 직접 쳐 보기

Python

위의 환경 확인용 Python 코드를 아래 칸에 직접 입력해 두 줄이 그대로 나오는지 확인해 보자. 다 적었으면 준비된 개발 환경으로 옮겨 실행한다.

직접 입력해 보자. 이 칸에는 붙여넣기가 되지 않는다. 예제를 옮겨 적는 것이 아니라 손으로 쳐 보아야 문법이 익는다.

0줄 · 0글자
기대하는 실행 결과 보기
환경 확인 — 한글이 제대로 보이면 성공
2 + 3 = 5

직접 실행해 얻은 결과와 위 내용이 같은지 대조해 보자. 다르면 어느 줄에서 갈렸는지 찾는다.

힌트 보기

print 는 괄호 안의 내용을 화면에 내보낸다. 문자열은 따옴표로 감싸고, 숫자 계산은 따옴표 밖에 둔다. 두 번째 줄처럼 쉼표로 나누면 사이에 공백 하나가 들어간다.

빈칸 채우기정리해 보자

편집기·번역기·디버거·실행 환경을 한자리에 모아 놓은 것을 1라 한다. 답이 조용히 틀리는 논리 오류를 찾을 때는 실행을 멈춰 값을 확인하는 2를 쓴다.

정답 보기
  1. 통합 개발 환경
  2. 디버거

‘내 컴퓨터에서는 되는데’ — 환경을 맞추는 일

같은 코드가 컴퓨터마다 다르게 동작하는 원인은 대체로 셋이다.

  1. 번역기가 없거나 판이 다르다. Python이 설치돼 있지 않거나, 판이 달라 새 문법을 알아듣지 못한다.
  2. 라이브러리가 없다. 코드가 불러 쓰는 라이브러리가 이쪽에만 깔려 있다.
  3. 글자 설정이 다르다. 한글이 깨지거나 파일을 못 읽는다.

혼자 만들 때는 자기 컴퓨터만 맞으면 된다. 그런데 여럿이 나눠 만들면 이 문제가 곧바로 걸림돌이 된다. 나는 되는데 짝은 안 되고, 합쳐 놓으면 아무도 실행하지 못하는 일이 생긴다.

활동

실습

두 환경에서 같은 코드를 실행해 비교하기

약 20분

1단계 — 웹 기반 환경에서 실행한다.

위의 환경 확인용 Python 코드를 이 페이지의 실행 단추로 돌린다. 결과와 걸린 느낌을 적는다.

2단계 — 설치형 환경에서 실행한다.

같은 코드를 전산실에 준비된 개발 환경에 붙여 넣어 실행한다. C 코드는 컴파일 명령과 실행 명령을 각각 확인한다.

3단계 — 표로 비교한다.

항목 웹 기반 환경 설치형 환경
실행하기까지 걸린 시간
한글이 제대로 나왔는가
실행 단추를 누른 횟수
컴퓨터의 파일을 읽을 수 있는가
인터넷을 끊으면 되는가

4단계 — 일부러 어긋나게 해 본다.

코드에서 따옴표 하나를 지우고 두 환경에서 각각 실행한다. 오류 메시지가 어떻게 다르게 보이는지 적는다. 어느 쪽이 잘못된 줄을 더 빨리 알려 주는가.

5단계 — 정리한다.

“우리 반 수업에서는 어느 환경을 주로 쓰는 것이 좋은가”를 한 문장으로 적고 근거를 두 가지 든다. 4단계에서 지운 따옴표는 되돌려 놓는다.

개념 확인 문제

보기를 누르면 바로 채점된다. 틀려도 해설을 읽으면 된다.

Python 코드 파일을 받았는데 실행되지 않았다. 가장 먼저 확인할 것은?프그01-04

통합 개발 환경이 제공하는 기능이 아닌 것은?프그01-04

디버거의 '중단점'이 하는 일은?프그01-04

설치 권한이 없는 학교 컴퓨터에서 여러 학생이 같은 조건으로 실습하기에 유리한 환경은?프그01-04

[OX] 실행 결과에서 한글이 깨져 보이면 코드의 문법이 잘못된 것이다.프그01-04

더 알아보기

심화'디버그'라는 말의 유래

프로그램의 잘못을 벌레(bug)라 부르고 그것을 잡는 일을 디버그(debug)라 한다. 1947년, 초기 컴퓨터 하버드 마크 Ⅱ가 오작동했을 때 기계 안에서 나방이 발견되었고, 작업 기록에 그 나방을 붙이고 “버그를 발견한 첫 사례”라고 적어 두었다는 기록이 남아 있다. 2차시에 나온 그레이스 호퍼가 이 일화를 널리 알렸다. 다만 bug 라는 말은 그 전부터 기계 고장을 뜻하는 말로 쓰이고 있었다.

실무필요한 것 목록을 파일로 남긴다

프로그램이 쓰는 라이브러리 목록을 파일 하나에 적어 코드와 함께 두는 방법이 널리 쓰인다. 그 파일이 있으면 새 컴퓨터에서 명령 한 줄로 필요한 것이 전부 설치된다. “무엇을 깔아야 하는지”를 말로 전하지 않아도 되는 것이다. 사람마다 다른 것을 깔아 생기는 문제를 없애는 가장 간단한 방법이며, 다음 차시의 공동 개발과 곧바로 이어진다.

심화편집기와 통합 개발 환경은 다른 것이다

코드를 적기만 하는 도구를 편집기라 하고, 번역·실행·디버깅까지 갖춘 것을 통합 개발 환경이라 한다. 그런데 요즘은 경계가 흐릿하다. 가벼운 편집기에 기능을 덧붙여 통합 개발 환경처럼 쓰는 방식이 흔해졌기 때문이다. 어느 것을 쓰든 확인할 것은 같다 — 코드를 적을 수 있는가, 번역기를 부를 수 있는가, 값을 들여다볼 수 있는가. 도구 이름보다 이 셋이 갖춰졌는지가 기준이다.

이어지는 학습

이 차시를 이해하려면 다음을 먼저 알아야 한다.

  • 2차시의 컴파일러와 인터프리터 차이 — 프로그래밍 프그01-01

교과서에서 찾기

교과서해당 위치쪽수
성림출판(Python)프로그래밍의 개요 › 04 프로그래밍 개발 환경42쪽
씨마스커뮤니케이션(Python)프로그래밍 개요 › 4 프로그램 개발 환경46쪽
삼양미디어(Python)프로그래밍의 개요 › 03 프로그램 개발 환경30쪽
삼양미디어(C)프로그래밍의 개요 › 03 프로그램 개발 환경30쪽
씨마스(C)프로그래밍의 개요 › 4 프로그래밍 환경42쪽
웅보출판사(C)프로그래밍의 개요 › Chapter 04 프로그래밍 개발 환경46쪽