알고리즘이란 무엇일까요? - 데이비드 J. 말란: 영어 학습 노트

TED-Ed

학습 난이도
799단어 203단어/분

동영상 개요: 사람 수를 세는 방법을 단계적으로 개선하는 과정을 통해 알고리즘의 기본 개념과 의사 코드, 반복문, 정확성, 효율성, 경계 상황 테스트, 버그, 조건 분기를 설명합니다. 주요 영어 학습 포인트: 1. algorithm — 어휘 의미와 사용역: 컴퓨터 과학에서는 단순히 일반적인 ‘방법’이 아니라 문제 해결을 위한 명확한 명령의 순서를 뜻한다는 점을 이해하고, 절차가 어떻게 표현되고 실행되는지 다루는 기술 설명을 따라갈 수 있습니다. 2. corner case — 어휘 의미와 사용역: 결함을 드러낼 수 있는 드물거나 경계에 놓인 상황을 가리키는 공학 용어임을 파악하고, 프로그램이나 규칙, 제안된 해결책이 일반적인 예시 밖에서도 올바른지 확인할 때 사용할 수 있습니다. 3. only executes if — 문법과 문장 패턴: 명시된 조건이 충족될 때에만 명령이나 분기가 실행되는 조건 논리를 표현하는 법을 익혀, 프로그램 흐름과 규칙의 작동 조건, 예외 처리를 정확하게 설명할 수 있습니다.

해설 목록

What's an algorithm?

0:15

알고리즘이란 무엇일까요?

In computer science,

0:16

컴퓨터 과학에서,

an algorithm is a set of instructions for solving some problem, 어휘 쓰임

0:17

알고리즘은 어떤 문제를 해결하기 위한 일련의 지시 사항으로,

step by step. 표현 묶음

0:20

단계별로 진행됩니다.

어휘 쓰임

algorithm: 문제를 해결하는 명확한 절차

algorithm은 문제를 해결하기 위한 명확한 일련의 명령을 뜻합니다. 단순히 막연한 생각이나 요령이 아니라, 사람이나 컴퓨터가 그 단계에 따라 실행할 수 있습니다. 이 문장에서 step by step은 이러한 명령이 순서가 있는 절차를 이룬다는 점을 보여 줍니다. 반복문과 조건문은 어떤 단계를 반복하거나 선택할지 제어할 수 있습니다.

연습

이 문장에서 algorithm은 무엇을 뜻하나요?

  1. 문제를 해결하기 위한 명확한 일련의 단계
  2. 컴퓨터와 관련된 모든 생각
  3. 계산을 수행하는 기계
정답 보기

문제를 해결하기 위한 명확한 일련의 단계

표현 묶음

step by step: 한 단계씩

step by step은 어떤 일을 여러 단계로 나누어 하나씩 순서대로 하는 것을 뜻합니다. 이 문장에서는 명령이 순서가 있는 과정을 따라 문제를 해결한다는 점을 보여 줍니다. 여기서 step은 실제 계단이 아니라 과정 속의 한 단계를 뜻합니다.

연습

‘한 단계씩’이라는 뜻의 고정 표현을 넣어 지시문을 완성하세요: To avoid mistakes, follow the checklist ____.

정답 보기

step by step

Typically, algorithms are executed by computers,

0:21

일반적으로 알고리즘은 컴퓨터에 의해 실행되지만,

but we humans have algorithms as well. 표현 묶음

0:23

우리 인간도 알고리즘을 가지고 있습니다.

표현 묶음

문장 끝의 as well: ‘~도’

여기서 as well은 ‘또한, ~도’라는 뜻입니다. 절 끝에 놓이며, 앞에서 알고리즘을 컴퓨터와 연결한 뒤 인간도 설명에 추가합니다. 즉, 인간에게도 알고리즘이 있다는 뜻입니다. 이 용법에서는 as well을 정보를 덧붙이는 하나의 완전한 표현으로 이해하세요. 여기서 well은 ‘잘’이라는 뜻이 아닙니다.

연습

‘~도’라는 뜻의 학습한 표현을 넣어 문장을 완성하세요: Nina wants to join the game, and Omar wants to join ____.

정답 보기

as well

For instance, how would you go about counting the number of people in a room? 해설

0:26

예를 들어, 방에 있는 사람 수를 세려면 어떻게 하시겠습니까?

전개 흐름

구체적인 예를 알리는 For instance

For instance는 이제 구체적인 예가 나올 것임을 듣는 사람에게 알려 줍니다. 여기서는 ‘인간이 알고리즘을 사용한다’는 일반적인 생각에서 ‘방 안의 사람 수를 세는 일’이라는 구체적인 과제로 넘어갑니다. 정보를 정리하는 표현으로서, 이 예를 앞의 일반적인 생각과 연결하도록 도와줍니다. 한 사건이 다른 사건 다음에 일어난다는 뜻은 아닙니다.

연습

이 짧은 글에서 For instance는 어떤 역할을 하나요? “Many materials can be recycled. For instance, clean glass jars can go in the recycling bin.”

  1. 시간 순서에서 다음 단계를 표시합니다.
  2. 말하는 사람이 앞의 실수를 바로잡고 있음을 나타냅니다.
  3. 일반적인 내용에 대한 구체적인 예를 제시합니다.
정답 보기

일반적인 내용에 대한 구체적인 예를 제시합니다.

표현 묶음

go about counting: 과제를 수행할 방법 묻기

go about doing something 구조에서 go about은 어떤 방식으로 일을 시작하고 처리한다는 뜻입니다. 여기서 how would you go about counting은 사람을 셀 수 있는지를 묻는 것이 아니라, 어떤 방법으로 셀지를 묻습니다. about 뒤의 동사는 -ing 형태를 씁니다. 예를 들면 go about counting, go about fixing입니다. 이 표현은 어떤 장소를 돌아다닌다는 뜻이 아니라 접근 방법이나 과정에 초점을 둡니다.

연습

repair의 올바른 형태로 질문을 완성하세요: How should we go about ____ the damaged chair?

정답 보기

repairing

Well, if you're like me, 말투와 의도

0:29

음, 저와 같으시다면,

you probably point at each person,

0:31

아마 각 사람을 가리키며,

말투와 의도

if you're like me: 듣는 사람의 공감 이끌기

If you're like me는 글자 그대로 보면 ‘당신이 나와 비슷하다면’이라는 조건을 제시하지만, 여기서는 친근하게 말을 시작하는 구어 표현입니다. 말하는 사람은 자신의 습관을 제시하면서 듣는 사람도 같은 습관이 있을 수 있다고 암시합니다. 이 표현은 단정을 부드럽게 만듭니다. 모든 사람이 한 명씩 가리킨다고 말하지 않고, 자신은 그렇게 하며 듣는 사람도 그럴 수 있다고 제시합니다. 보통 현재 주제와 관련된 한 가지 습관이나 선호를 비교할 뿐, 두 사람의 전체 성격을 비교하지는 않습니다.

연습

용법을 판단하세요: 친근한 발표에서 If you're like me는 모든 사람이 그렇게 행동한다고 주장하지 않으면서 말하는 사람 자신의 습관을 소개할 수 있습니다.

  1. 틀리다
  2. 맞다
정답 보기

맞다

one at a time, 표현 묶음

0:33

한 번에 한 명씩,

and count up from zero. 구동사

0:34

0부터 세어 올라갈 것입니다.

표현 묶음

one at a time: 한 차례에 한 사람이나 한 가지씩

one at a time은 한 차례에 한 사람이나 한 가지만 다룬다는 뜻입니다. 이 문장에서는 사람을 가리키는 방식을 설명합니다. 한 사람을 먼저 가리킨 뒤 다음 사람을 가리켜야 순서대로 셀 수 있습니다. at a time은 한 차례에 다루는 수량을 나타냅니다. 시계의 시간이나 특정 시점을 뜻하지 않습니다.

연습

선생님이 아이들에게 모두 함께가 아니라 한 명씩 책상 앞으로 오라고 하려고 합니다. 가장 알맞은 지시는 무엇인가요?

  1. Please come to my desk at one time.
  2. Please come to my desk one time.
  3. Please come to my desk one at a time.
정답 보기

Please come to my desk one at a time.

구동사

count up: 작은 수에서 큰 수로 세기

count up은 0, 1, 2, 3처럼 숫자를 커지는 순서로 말하거나 기록한다는 뜻입니다. 이 문장에서는 0부터 시작하여 각 사람이 포함될 때마다 숫자가 증가합니다. 소사 up은 동사에 수치가 증가하는 방향을 더합니다. 물리적으로 위쪽으로 움직인다는 뜻은 아닙니다.

연습

숫자가 증가함을 나타내는 소사를 넣어 지시를 완성하세요: Start at zero and count ____ to ten.

정답 보기

up

1 2 3 4 and so forth. 표현 묶음

0:35

1, 2, 3, 4 등등.

표현 묶음

and so forth: 분명한 목록이나 규칙이 계속됨을 나타내기

and so forth는 목록이나 규칙적인 나열이 같은 종류의 항목으로 더 이어진다는 것을 듣는 사람에게 알려 줍니다. “1 2 3 4” 다음의 숫자는 쉽게 예측할 수 있으므로 말하는 사람이 모두 말하지 않은 것입니다. 이 표현은 비슷한 항목이 계속된다는 뜻의 목록 마무리 표현 하나로 이해해야 합니다. forth의 방향을 나타내는 문자 그대로의 뜻으로 해석하지 않습니다. and so on과 의미가 비슷합니다.

연습

“The club offers chess, music, painting, and so forth”에서 and so forth는 무엇을 나타내나요?

  1. 목록이 새로운 주제로 바뀌었습니다.
  2. 같은 종류의 항목이 더 이어집니다.
  3. 나열된 항목들이 잘못된 것이었습니다.
정답 보기

같은 종류의 항목이 더 이어집니다.

Well, that's an algorithm.

0:38

글쎄요, 그것이 바로 알고리즘입니다.

In fact, let's try to express it a bit more formally in pseudocode, 해설

0:39

사실, 그것을 의사코드(pseudocode)로 조금 더 형식적으로 표현해 봅시다.

English-like syntax that resembles a programming language.

0:43

의사코드는 프로그래밍 언어와 닮은 영어 같은 구문입니다.

표현 묶음

a bit more formally: 격식을 조금 더 높이는 표현

a bit more formally는 “조금 더 격식을 갖춘 방식으로”라는 뜻입니다. more formally는 생각을 어떤 방식으로 표현할지를 나타내고, a bit는 변화의 정도가 작다는 것을 나타냅니다. 여기서 말하는 사람은 일상적인 설명에서 의사 코드로 옮겨 갑니다. 이 표현은 완전히 문체를 바꾸는 것이 아니라 변화의 폭이 작다는 느낌을 줍니다.

연습

“조금 더 격식을 갖춘 방식으로”라는 뜻의 이번 학습 표현으로 문장을 완성하세요: Could you state the rule ____?

정답 보기

a bit more formally

어휘 쓰임

pseudocode: 실행 가능한 코드 없이 알고리즘 논리 설명하기

pseudocode(의사 코드)는 알고리즘의 단계와 논리를 사람이 읽기 쉽게 설명하는 비형식적인 방법입니다. 프로그래밍 언어처럼 보이는 경우가 많지만, 특정 언어의 정확한 문법을 따를 필요는 없습니다. 이 문장에서 in pseudocode는 그 생각을 어떤 형식으로 표현할지를 알려 줍니다. 뒤에 나오는 영어식 지시문은 알고리즘을 분명하게 설명하기 위한 것이며, 반드시 컴퓨터에서 실행하기 위한 것은 아닙니다.

연습

pseudocode에 대한 설명으로 옳은 것은 무엇인가요?

  1. 프로그램 실행 중 발견된 오류의 목록입니다.
  2. 프로그래밍 언어의 정확한 규칙을 따라야 하는 source code입니다.
  3. 알고리즘을 코드와 비슷한 형식으로 설명하지만, 바로 실행할 수 있는 것은 아닐 수 있습니다.
정답 보기

알고리즘을 코드와 비슷한 형식으로 설명하지만, 바로 실행할 수 있는 것은 아닐 수 있습니다.

Let n equal zero. 문법

0:45

n을 0이라고 합시다.

문법

Let n equal zero: 변수의 초깃값 설정하기

수학과 pseudocode에서 Let n equal zero.는 n의 값을 0으로 정의하거나 설정한다는 뜻입니다. 뒤의 단계에서 n을 사용하거나 바꾸기 전에 초깃값을 정합니다. 여기서 let은 정의나 가정을 제시하며, ‘허락하다’라는 뜻이 아닙니다. 구조는 Let + variable + equal + value이고, let 뒤에서는 equal을 원형으로 씁니다.

연습

Let ... equal ... 구조를 사용해 다음 pseudocode 지시문을 완성하세요: ____ total ____ zero before counting.

정답 보기

Let · equal

For each person in room, 문법

0:47

방에 있는 각 사람에 대해,

문법

For each person in room: 의사 코드 반복문

For each ...는 반복을 시작하는 표현입니다. 다음 명령을 한 집단의 각 구성원에게 한 번씩 실행합니다. 여기서는 person in room이 처리할 집단을 가리키므로 방 안의 사람마다 다음 단계가 실행됩니다. 일반적인 영어 문장에서는 보통 for each person in the room이라고 합니다. 의사 코드는 명령을 짧게 만들기 위해 the 같은 짧은 단어를 생략하기도 합니다.

연습

이 의사 코드에서 For each person in room은 무엇을 하라는 뜻인가요?

  1. 방 안에 있는 첫 번째 사람에게만 다음 명령을 실행한다
  2. 방 안에 있는 모든 사람에게 다음 명령을 한 번씩 실행한다
  3. 각 사람을 위해 방을 하나씩 준비한다
정답 보기

방 안에 있는 모든 사람에게 다음 명령을 한 번씩 실행한다

set n = n + 1. 어휘 쓰임

0:49

n = n + 1로 설정합니다.

어휘 쓰임

set n = n + 1: 변수 업데이트

의사 코드에서 set은 변수에 값을 할당하라는 뜻입니다. 먼저 n의 현재 값을 사용해 n + 1을 계산한 다음, 그 결과를 다시 n에 저장합니다. 이 명령을 한 번 실행할 때마다 n은 1씩 증가합니다. 여기서 등호는 할당 명령의 일부이며, n과 n + 1이 수학적으로 항상 같다는 뜻이 아닙니다.

연습

의사 코드 set n = n + 1을 한 번 실행하면 어떻게 되나요?

  1. 프로그램이 n과 n + 1이 같은지 확인한다
  2. n의 값이 지워진다
  3. n의 현재 값이 1 증가한다
정답 보기

n의 현재 값이 1 증가한다

How to interpret this pseudocode? 전개 흐름

0:52

이 의사코드를 어떻게 해석할까요?

전개 흐름

제목형 질문으로 쓰인 How to interpret ...?

이 문장에서 How to interpret this pseudocode?는 제목처럼 쓰인 질문입니다. 의사 코드를 보여 주는 단계에서 각 줄의 의미를 설명하는 단계로 내용을 전환합니다. how to + 동사원형은 어떤 일을 하는 방법을 나타냅니다. 여기서는 How should we interpret this pseudocode?와 같은 완전한 직접 의문문을 줄인 형태이며, 다음 설명을 체계적으로 시작하는 것이 주된 역할입니다.

연습

맞는지 틀린지 판단하세요: 튜토리얼에서 How to interpret this pseudocode?는 설명을 도입하는 제목형 전환 표현으로 쓰일 수 있습니다.

  1. 맞음
  2. 틀림
정답 보기

맞음

Well, line one declares, so to speak, 해설

0:54

음, 첫 번째 줄은 말하자면,

말투와 의도

so to speak: 대략적이거나 비유적인 설명 표시하기

so to speak는 '이렇게 표현해도 된다면'이라는 뜻의 삽입 표현입니다. 여기서는 declares의 단정적인 느낌을 누그러뜨립니다. 화자는 이해에 도움이 되는 기술 용어를 빌려 쓰는 것이며, 그것만이 완전히 정확한 설명이라고 주장하는 것은 아닙니다. 이 표현은 해당 말을 대략적이거나 비유적인 것으로 이해하라는 신호입니다. 실제로 누군가에게 말하라고 지시하는 뜻은 아닙니다.

연습

second home이 문자 그대로의 설명이 아님을 나타내는 세 단어 표현으로 문장을 완성하세요: After so many late nights there, the library became our second home, ____.

정답 보기

so to speak

a variable called n and initializes its value to zero.

0:56

n이라는 변수를 선언하고 그 값을 0으로 초기화하는 것입니다.

어휘 쓰임

프로그래밍에서의 declares ... initializes its value to zero

프로그래밍 설명에서 declares a variable은 변수를 코드나 의사 코드에 도입하고, 보통 이름과 경우에 따라 자료형을 정한다는 뜻입니다. 여기서 변수의 이름은 n입니다. initializes its value to zero는 그 변수의 시작 값을 0으로 지정한다는 뜻입니다. 한 줄에서 두 가지를 모두 수행할 수 있지만, 선언과 초기화는 서로 다른 동작입니다.

연습

declare와 initialize를 알맞은 형태로 바꾸세요: The first line ____ a variable named total and ____ it to zero.

정답 보기

declares · initializes

This just means that at the beginning of our algorithm,

0:59

이는 단지 우리 알고리즘의 시작 부분에서,

the thing with which we're counting has a value of zero. 문법

1:02

우리가 세는 수단이 되는 값이 0이라는 것을 의미합니다.

문법

with which we're counting: 전치사를 which 앞에 놓는 격식 있는 관계절

with which we're counting은 the thing을 꾸미는 관계절입니다. which는 the thing을 다시 가리키고, with는 그것이 수를 세는 데 쓰는 도구임을 나타냅니다. 즉, '우리가 수를 세는 데 사용하는 것'이라는 뜻입니다. 전치사를 which 앞에 놓으면 더 격식 있는 preposition + which 구조가 됩니다. 이 문장에서 the thing은 변수 n입니다. 수를 기록하는 카운터이지, 세어지는 대상이 아닙니다.

연습

사물을 가리키는 관계대명사로 격식 있는 관계절을 완성하세요: The camera with ____ we filmed the birds was very light.

정답 보기

which

After all, before we start counting, 전개 흐름

1:05

어쨌든, 우리가 세기 시작하기 전에는,

we haven't counted anything yet. 문법

1:06

아직 아무것도 세지 않았으니까요.

전개 흐름

After all: 앞의 말을 뒷받침하는 이유 덧붙이기

After all은 바로 앞의 말을 뒷받침하거나 설명하는 이유를 덧붙입니다. 여기서는 아직 세기 시작하지 않았으므로 0을 처음 값으로 삼는 것이 타당하다는 뜻을 나타냅니다. 먼저 판단이나 결론을 말하고, 그다음에 이유를 상기시키는 방식으로 정보를 구성합니다. 이 쓰임은 대략 ‘이 사실을 기억해 보면’이라는 뜻이며, 시간 순서상 ‘모든 일 뒤에’라는 뜻이 아닙니다.

연습

after all을 사용해 앞의 말을 뒷받침하는 이유를 덧붙인 문장은 무엇인가요?

  1. After all the work, we went home.
  2. We should check the map; after all, this is our first visit.
  3. We checked the map after all the visitors left.
정답 보기

We should check the map; after all, this is our first visit.

문법

haven't counted anything yet: 현재까지 아무것도 세지 않음

Haven't counted는 현재완료의 부정형으로, have not + 과거분사 구조입니다. 과거부터 현재 시점까지 세는 일이 한 번도 일어나지 않았으므로 현재의 개수는 여전히 0이라는 뜻입니다. 부정문에서 anything은 아무것도 세지 않았다는 뜻입니다. 문장 끝의 yet은 현재까지도 그 행동이 이루어지지 않았음을 나타내며, 나중에는 일어날 가능성이나 기대를 담는 경우가 많습니다.

연습

현재까지 어떤 테스트도 하지 않았다는 뜻이 되도록 축약형 haven't ... yet을 사용해 문장을 완성하세요: We ____ run any tests ____.

정답 보기

haven't · yet

Calling this variable n is just a convention. 어휘 쓰임

1:08

이 변수를 n이라고 부르는 것은 단지 관례일 뿐입니다.

어휘 쓰임

just a convention: 흔한 방식이지만 규칙은 아님

이 기술 문맥에서 convention은 사람들이 보통 함께 따르는 방식을 뜻하며, 회의나 의무 사항을 뜻하지 않습니다. just a convention은 변수 이름으로 n을 쓰는 것이 흔한 선택이지만 다른 유효한 이름을 써도 된다는 뜻입니다. 관례가 선택 사항이라는 것은 프로그래밍 언어가 그 방식을 강제하지 않는다는 뜻입니다. 그래도 관례를 따르면 다른 사람이 코드를 더 쉽게 읽을 수 있습니다.

연습

이 문장에서 just a convention은 무슨 뜻인가요?

  1. 모든 프로그램이 따라야 하는 규칙이다.
  2. 흔한 방식이지만 다른 유효한 이름도 사용할 수 있다.
  3. 변수 이름에 관한 공식 회의이다.
정답 보기

흔한 방식이지만 다른 유효한 이름도 사용할 수 있다.

I could have called it almost anything. 문법

1:10

거의 어떤 이름으로든 부를 수 있었죠.

문법

could have called it: 과거에 가능했지만 선택하지 않은 이름

Could have called it은 could have + 과거분사를 사용해 과거에 가능했지만 실제로 선택하지 않은 일을 돌아보는 표현입니다. 화자는 다른 이름을 선택할 수도 있었지만 실제로는 n을 선택했습니다. 여기서 called는 ‘이름을 붙였다’라는 뜻이며 구조는 call + 목적어 + 이름입니다. have가 가능성을 과거로 옮깁니다. could call it은 보통 현재나 미래의 선택을 나타냅니다.

연습

could와 call을 사용해 과거에 선택하지 않은 이름을 나타내도록 문장을 완성하세요: We ____ something else, but we chose Horizon.

정답 보기

could have called it

Now, line two demarks the start of a loop, 어휘 쓰임

1:12

자, 두 번째 줄은 루프의 시작을 나타냅니다.

a sequence of steps that will repeat some number of times.

1:14

루프는 일정 횟수만큼 반복될 일련의 단계입니다.

어휘 쓰임

loop: 프로그램에서 반복되는 일련의 단계

프로그래밍에서 loop는 일련의 단계를 반복해서 실행하는 구조인 ‘루프’를 뜻합니다. loop 뒤의 구절이 그 뜻을 직접 설명합니다. 해당 단계들이 여러 번 반복된다는 뜻입니다. 여기서 loop는 단순히 둥근 모양이 아니라 프로그램의 실행 흐름을 나타냅니다. 코드나 의사 코드에서 loop를 보면 어떤 명령들이 반복되는 블록에 속하는지 확인해야 합니다.

연습

프로그래밍 설명에서 “The loop checks every message in the inbox”의 loop는 무엇을 뜻하나요?

  1. 한 번만 실행할 수 있는 단일 명령
  2. 화면에 표시되는 둥근 이미지
  3. 일련의 명령을 반복하는 구조
정답 보기

일련의 명령을 반복하는 구조

So, in our example, the step we're taking is counting people in the room.

1:17

따라서 우리 예제에서, 우리가 밟고 있는 단계는 방에 있는 사람들을 세는 것입니다.

Beneath line two is line three,

1:20

두 번째 줄 아래에는 세 번째 줄이 있으며,

which describes exactly how we'll go about counting.

1:22

이는 우리가 정확히 어떻게 세어나갈지를 설명합니다.

The indentation implies that it's line three that will repeat. 어휘 쓰임

1:25

들여쓰기는 세 번째 줄이 반복될 것임을 암시합니다.

어휘 쓰임

The indentation implies: 서식이 코드 구조를 보여 줌

indentation은 줄의 시작 부분에 공백을 두어 내용을 오른쪽으로 옮기는 ‘들여쓰기’를 뜻합니다. 코드나 의사 코드에서는 이 간격으로 어떤 명령들이 같은 블록에 속하는지 나타낼 수 있습니다. The indentation implies that...은 서식이 뒤따르는 결론의 근거가 된다는 뜻입니다. 여기서는 들여쓰기를 통해 세 번째 줄이 루프 안에 있으므로 그 줄이 반복되는 부분임을 알 수 있습니다.

연습

코드 설명“The indentation implies that the message is part of the loop”에서 “The indentation implies”는 무엇을 뜻하나요?

  1. 간격 때문에 프로그램이 메시지를 표시합니다.
  2. 간격이 코드 구조에 관한 단서를 제공합니다.
  3. 간격이 메시지에 오류가 있음을 보여 줍니다.
정답 보기

간격이 코드 구조에 관한 단서를 제공합니다.

So, what the pseudocode is saying is that after starting at zero, 해설

1:28

그래서 의사코드가 말하는 것은, 0에서 시작한 후,

for each person in the room, we'll increase n by one. 표현 묶음

1:32

방에 있는 각 사람에 대해 n을 1씩 증가시키겠다는 것입니다.

전개 흐름

what the pseudocode is saying is that...: 의사 코드의 의미 설명하기

What X is saying is that...은 X의 정보를 쉬운 말로 풀어 설명하는 틀입니다. 여기서 saying은 실제로 말한다는 뜻이 아니라 ‘표현하다, 의미하다’라는 뜻입니다. what절은 해석할 정보의 출처를 먼저 밝히고, is that은 그 해석을 시작합니다. 따라서 정보의 출처와 뒤에 나오는 설명을 분리해서 전달할 수 있습니다.

연습

What X is saying is that... 틀을 사용해 설명을 완성하세요: ____ every visitor must sign in.

정답 보기

What the notice is saying is that

문법

after starting at zero: after + -ing로 단계의 순서 나타내기

after starting at zero는 after + -ing를 사용해 한 단계가 다음 단계보다 먼저 일어남을 나타냅니다. 이 문장에서는 먼저 0에서 세기 시작한 다음 n을 늘립니다. starting은 전치사 after 뒤에 쓰인 -ing 형태이며 현재진행형의 주동사가 아닙니다. 이런 짧은 구조는 과정이나 조작 방법을 설명할 때 자주 쓰입니다.

연습

확인이 먼저 일어남을 after + -ing 구로 나타내세요: ____, click Submit.

정답 보기

After checking the address

표현 묶음

increase n by one: by는 변화량을 나타냄

increase n by one에서 n은 바뀌는 값이고, by one은 변화량을 나타냅니다. 현재 값에 1을 더한다는 뜻이며, 최종 값이 1이라는 뜻은 아닙니다. 응용할 수 있는 구조는 increase + 값 + by + 변화량입니다. 예를 들어 n이 4라면, 1만큼 증가시킨 뒤에는 5가 됩니다.

연습

카운터가 7에서 8로 바뀝니다. by와 영어 숫자 단어를 사용해 문장을 완성하세요: Increase the counter ____.

정답 보기

by one

Now, is this algorithm correct?

1:35

자, 이 알고리즘이 맞을까요?

Well, let's bang on it a bit. 관용구

1:38

자, 조금 검증해 봅시다.

관용구

bang on it a bit: 비격식적인 실전 테스트

여기서 bang on it a bit은 시스템이나 아이디어를 여러 경우로 시험해 보며 문제가 생기는지 확인한다는 뜻의 비격식적인 기술 비유입니다. 실제로 무언가를 두드린다는 뜻은 아닙니다. 단순히 살펴보는 것이 아니라 어느 정도 압력을 가해 본다는 이미지가 있습니다. 하지만 다른 문맥에서는 bang on it이 실제로 반복해서 두드린다는 뜻일 수 있으므로, 여기서 ‘시험하다’라는 해석은 기술 논의의 문맥에서 나옵니다.

연습

소프트웨어에 관한 대화에서 "Let's bang on it a bit"은 무엇을 뜻할 가능성이 가장 높습니까?

  1. 몇 가지 경우로 시험한다.
  2. 작업을 중단한다.
  3. 컴퓨터를 반복해서 두드린다.
정답 보기

몇 가지 경우로 시험한다.

Does it work if there are two people in the room? 문법

1:39

방에 두 명이 있다면 제대로 작동할까요?

문법

Does it work if ...?:조건을 바꾸어 확인하기

Does it work if ...?는 if 뒤에 나오는 조건에서도 어떤 방법, 시스템 또는 계획이 계속 효과가 있는지 묻는 표현입니다. 여기서 it은 앞에서 나온 알고리즘을 가리키며, work는 ‘일하다’가 아니라 ‘의도한 대로 작동하다’ 또는 ‘유효하다’라는 뜻입니다. Does it work if + 조건?을 사용하면 가정을 시험하거나 해결책이 어느 조건까지 제대로 통하는지 확인할 수 있습니다.

연습

설계자가 정전 중에도 스마트 잠금장치를 사용할 수 있는지 확인하려고 합니다. 이 뜻을 나타내는 질문은 무엇인가요?

  1. Does it work if the power goes out?
  2. Does it work because the power goes out?
  3. Does it work, so the power goes out?
정답 보기

Does it work if the power goes out?

Let's see.

1:42

봅시다.

In line one, we initialize n to zero.

1:43

첫 번째 줄에서 우리는 n을 0으로 초기화합니다.

For each of these two people, we then increment n by one. 어휘 쓰임

1:45

이 두 사람 각각에 대해, 그런 다음 우리는 n을 1씩 증가시킵니다.

어휘 쓰임

increment n by one:변수에 1 더하기

Increment는 ‘수치를 정해진 양만큼 늘리다’라는 뜻의 기술적인 동사입니다. increment n by one에서 n은 바뀌는 값이고, by one은 변화량을 나타냅니다. 즉 새 값은 이전 값에 1을 더한 값입니다. 이 문장은 반복되는 갱신을 설명합니다. 사람 한 명을 처리할 때마다 n에 1을 더합니다. 다른 상황에도 쓸 수 있는 구조는 increment + 값 + by + 변화량입니다.

연습

변화량을 나타내는 전치사를 넣어 기술 지시를 완성하세요: Increment the retry count ____ one after each failed attempt.

정답 보기

by

So, on the first trip through the loop, we update n from zero to one. 관용구

1:49

따라서 루프를 첫 번째 돌 때, 우리는 n을 0에서 1로 업데이트합니다.

관용구

trip through the loop: 루프 한 번의 반복

이 문장에서 a trip through the loop는 루프 본문을 한 번 실행하는 것, 즉 한 번의 반복을 뜻합니다. the first trip은 루프 안의 단계들이 처음 실행되는 때입니다. trip은 추상적인 과정을 길을 따라가는 것에 비유합니다. 루프에 들어가 단계를 한 번 따라간 뒤 나온다고 생각하면, 그 한 번의 전체 과정이 one trip through the loop입니다.

연습

강조된 비격식 기술 표현으로 문장을 완성하세요: On the second ____, the program removes one duplicate.

정답 보기

trip through the loop

On the second trip through that same loop, we update n from one to two.

1:52

같은 루프를 두 번째 돌 때, 우리는 n을 1에서 2로 업데이트합니다.

And so, by this algorithm's end, 표현 묶음

1:56

그래서 이 알고리즘이 끝날 때쯤,

n is two, which indeed matches the number of people in the room. 전개 흐름

1:58

n은 2가 되며, 이는 실제로 방에 있는 사람 수와 일치합니다.

표현 묶음

by this algorithm's end: 끝점까지 성립하는 결과

여기서 by this algorithm's end는 ‘이 알고리즘이 끝날 때까지’라는 뜻입니다. by는 끝이 되는 시점을 나타냅니다. 그 시점에 도달하면 n은 이미 2가 되어 있습니다. 이 표현에서 by는 ‘이 알고리즘을 사용해서’라는 뜻이 아닙니다. this algorithm's end는 the end of this algorithm을 소유격으로 표현한 형태입니다. by + 끝나는 시점은 그 시점보다 늦지 않게 완료되거나 성립하는 결과를 말할 때 유용합니다.

연습

보고서가 오후 5시보다 늦지 않게 완성되어야 한다는 뜻의 문장은 무엇인가요?

  1. The report must be worked on through 5 p.m.
  2. The report must be finished at 5 p.m.
  3. The report must be finished by 5 p.m.
정답 보기

The report must be finished by 5 p.m.

전개 흐름

which indeed matches: 앞의 결과가 일치함을 확인하기

여기서 which는 추가 설명을 하는 관계절을 이끌며, 앞에 나온 결과 전체인 n is two를 가리킵니다. people이나 the room을 가리키는 것이 아닙니다. 이 절은 그 결과가 실제 사람 수와 일치한다는 확인을 덧붙입니다. indeed는 확인의 뜻을 더 강하게 만듭니다. 따라서 which indeed matches...는 결과를 먼저 말한 뒤 그 결과를 데이터, 예상 또는 실제 사실과 대조할 때 유용합니다.

연습

예문에서 which는 무엇을 가리키나요?

  1. 방
  2. 앞에 나온 결과 n is two
  3. people이라는 단어
정답 보기

앞에 나온 결과 n is two

So far, so good. 관용구

2:02

지금까지는 좋습니다.

관용구

So far, so good: 긍정적이지만 잠정적인 진행 상황 확인

So far, so good.은 현재 시점까지 일이 잘 진행되었다는 뜻의 고정 표현입니다. 지금까지의 진행 상황을 긍정적으로 평가하지만, 앞으로 어떻게 될지는 열어 둡니다. 여기서는 중간 결과를 정리하는 것이지 최종 성공을 선언하는 것이 아닙니다. 두 so에 똑같은 뜻을 따로 부여하지 말고, 문장 전체를 하나의 고정 표현으로 이해합니다.

연습

다음 설명을 판단하세요. So far, so good.은 전체 과제가 끝났고 반드시 성공한다는 뜻이다.

  1. 틀리다
  2. 맞다
정답 보기

틀리다

How about a corner case though? 어휘 쓰임

2:03

하지만 코너 케이스(예외적인 상황)는 어떨까요?

어휘 쓰임

corner case: 드문 테스트 조건

기술적인 논의에서 corner case는 정상적으로 사용할 때는 나타나지 않는 시스템 문제를 드러낼 수 있는 드문 조건이나 입력을 뜻합니다. 여기서는 ‘사람이 0명인 상황’을 그런 특별한 테스트 조건으로 선택합니다. 실제 모퉁이에 있는 사례라는 뜻이 아니라, 극단적이거나 드문 입력에서도 세는 방법이 제대로 작동하는지 시험한다는 뜻입니다.

연습

소프트웨어 테스트에서 corner case라고 하기에 가장 적절한 상황은 무엇인가요?

  1. 유효한 계정으로 일반적인 로그인 과정 테스트하기
  2. 목록에 항목이 0개일 때 어떤 일이 생기는지 테스트하기
  3. 로그인 버튼의 새 색상 고르기
정답 보기

목록에 항목이 0개일 때 어떤 일이 생기는지 테스트하기

Suppose that there are zero people in the room, 문법

2:05

방에 사람이 0명 있다고 가정해 봅시다.

besides me, who's doing the counting.

2:07

수를 세고 있는 저를 제외하고 말이죠.

문법

Suppose that: 가정 조건 설정하기

Suppose that은 토론, 계산 또는 테스트의 다음 단계에서 일시적으로 참이라고 받아들일 조건을 제시합니다. 추론의 출발점을 설정하는 표현이며, 화자가 그 조건이 아마 사실일 것이라고 추측한다는 뜻은 아닙니다. 형태는 Suppose that + 절입니다. that은 생략할 수 있으며, Suppose there are zero people도 같은 뜻입니다.

연습

Suppose that을 사용해 다음 가상의 테스트 조건을 설정하세요: ____ the phone has no saved contacts. What should the app display?

정답 보기

Suppose that

In line one, we again initialize n to zero.

2:09

첫 번째 줄에서 우리는 다시 n을 0으로 초기화합니다.

This time though, line three doesn't execute at all, 어휘 쓰임

2:12

하지만 이번에는 세 번째 줄이 전혀 실행되지 않습니다.

since there isn't a person in the room,

2:14

방에 사람이 없기 때문입니다.

어휘 쓰임

doesn't execute at all: 코드가 한 번도 실행되지 않음

여기서 execute는 코드 한 줄을 ‘실행하다’라는 뜻의 프로그래밍 동사입니다. Line three doesn't execute는 프로그램 흐름이 그 줄에 도달하여 실행하는 일이 없다는 뜻입니다. at all은 doesn't의 부정을 강조합니다. 이 표현은 그 줄이 한 번도 실행되지 않는다는 뜻이지, 실행되었지만 잘못된 결과가 나왔다는 뜻이 아닙니다.

연습

프로그래밍에 관한 대화에서 “The line doesn't execute at all”은 무슨 뜻인가요?

  1. 그 줄은 실행되지만 매우 느립니다.
  2. 그 줄은 실행되지만 동작이나 결과가 잘못됩니다.
  3. 그 줄은 한 번도 실행되지 않습니다.
정답 보기

그 줄은 한 번도 실행되지 않습니다.

and so n remains zero,

2:16

그래서 n은 0으로 유지되며,

which indeed matches the number of people in the room.

2:18

이는 실제로 방에 있는 사람 수와 일치합니다.

Pretty simple, right? 말투와 의도

2:20

꽤 간단하죠?

말투와 의도

Pretty simple, right?: 가볍게 확인을 요청하는 표현

여기서 pretty는 ‘꽤’ 또는 ‘상당히’라는 뜻이므로 pretty simple은 그 내용이 이해하기 쉬워 보인다는 말입니다. 이때 pretty는 ‘예쁜’이라는 뜻이 아닙니다. 문장 끝의 짧은 질문 right?는 가벼운 확인을 요청합니다. 화자는 듣는 사람이 동의하거나 설명을 잘 따라오고 있는지 보여 주도록 유도합니다. 편안한 설명에서는 방향이나 권리에 관한 질문이 아니라 빠르게 반응을 확인하는 표현입니다.

연습

“Pretty simple, right?”에서 “right?”의 주요 기능은 무엇인가요?

  1. 과제가 간단하다는 것을 공식적으로 증명합니다.
  2. 듣는 사람에게 동의하거나 잘 따라오고 있는지 가볍게 확인합니다.
  3. 듣는 사람에게 특정 방향으로 움직이라고 말합니다.
정답 보기

듣는 사람에게 동의하거나 잘 따라오고 있는지 가볍게 확인합니다.

But counting people one at a time is pretty inefficient too, no?

2:21

하지만 한 번에 한 명씩 세는 것도 꽤 비효율적이지 않나요?

Surely we can do better. 전개 흐름

2:25

확실히 우리는 더 잘할 수 있습니다.

전개 흐름

Surely we can do better: 개선으로 논의를 전환하기

Surely we can do better는 자신감을 표현하는 데서 그치지 않습니다. 현재 방식이 충분히 좋지 않으며 더 나은 방식이 가능하다고 주장합니다. 전환 표현으로서 비효율적인 방식을 지적하는 단계에서 더 나은 해결책을 찾는 단계로 논의를 옮깁니다. Surely는 그 결론이 합리적이며 듣는 사람도 동의할 것이라는 느낌을 줍니다.

연습

발표에서 Surely we can do better는 주로 어떤 역할을 합니까?

  1. 현재 방식을 아마 개선할 수 있다고 주장한다.
  2. 청중에게 그 방식이 실패한 이유를 설명해 달라고 한다.
  3. 현재 방식이 이미 가능한 최선이라고 말한다.
정답 보기

현재 방식을 아마 개선할 수 있다고 주장한다.

Why not count two people at a time? 말투와 의도

2:26

한 번에 두 명씩 세는 건 어떨까요?

말투와 의도

Why not count: Why not + 동사원형으로 제안하기

Why not count...?는 Why not + 동사원형을 사용해 제안하는 표현입니다. 여기서는 한 번에 두 사람씩 세자고 제안하는 것이며, 주된 목적은 이유를 설명해 달라고 묻는 것이 아닙니다. 의문문 형태이므로 제안을 논의할 여지도 남습니다. 그 생각이 효과가 없다면 상대방이 실제 이유를 말할 수도 있습니다.

연습

try를 사용해 제안을 완성하세요: Why not ____ the simpler method?

정답 보기

try

Instead of counting 1 2 3 4 5 6 7 8 and so forth, 문법

2:28

1, 2, 3, 4, 5, 6, 7, 8 등등으로 세는 대신,

why not count 2 4 6 8 and so on.

2:33

2, 4, 6, 8 등등으로 세는 건 어떨까요.

문법

Instead of counting ... why not count: 대안 제안하기

Instead of doing X, why not do Y? 틀은 기존 행동과 제안하는 대안을 나란히 보여 줍니다. 여기서 X는 하나씩 세는 것이고, Y는 둘씩 세는 것입니다. instead of 뒤에는 명사나 -ing형을 쓰므로 counting이 옵니다. why not 뒤에는 동사원형을 쓰므로 count가 옵니다. 이 틀은 다른 방법을 제안할 때 유용합니다.

연습

check와 use를 알맞은 형태로 바꾸어 제안문을 완성하세요: Instead of ____ every email one by one, why not ____ a filter?

정답 보기

checking · use

It even sounds faster and it surely is.

2:36

심지어 더 빠르게 들리고 실제로도 그렇습니다.

Let's express this optimization in pseudocode. 어휘 쓰임

2:39

이 최적화를 의사코드로 표현해 봅시다.

어휘 쓰임

optimization: 효율을 높이는 구체적인 최적화

이 문장에서 optimization은 세는 방법을 더 효율적으로 만드는 구체적인 변경을 뜻합니다. 한 번에 한 명이 아니라 두 명을 처리하도록 바꾸는 것입니다. 기술 문맥에서 optimization은 속도를 높이거나 메모리 사용량 또는 작업량을 줄이는 것처럼 분명한 목표를 위해 알고리즘, 프로그램, 절차를 개선하는 것입니다. 막연히 무언가가 좋아졌다는 뜻이 아니라 의도적인 개선을 말합니다.

연습

프로그램을 더 빠르게 만드는 방법을 논의할 때 optimization은 무엇을 뜻할 가능성이 가장 높습니까?

  1. 시스템을 더 효율적으로 만드는 구체적인 변경
  2. 발생할 수 있는 모든 오류의 전체 목록
  3. 코드를 다른 언어로 번역하는 것
정답 보기

시스템을 더 효율적으로 만드는 구체적인 변경

Let n equal zero.

2:41

n을 0이라고 합시다.

For each pair of people in room,

2:43

방에 있는 각 쌍의 사람에 대해,

set n = n + 2.

2:45

n = n + 2로 설정합니다.

Pretty simple change, right?

2:47

꽤 간단한 변화죠?

Rather than count people one at a time,

2:49

사람을 한 번에 한 명씩 세는 대신,

we instead count them two at a time.

2:51

대신 한 번에 두 명씩 세는 것입니다.

This algorithm is thus twice as fast as the last. 문법

2:53

따라서 이 알고리즘은 이전 것보다 두 배 빠릅니다.

문법

twice as fast as: 속도가 정확히 두 배

twice as fast as는 한 대상의 속도가 비교 대상의 두 배라는 뜻입니다. 여기서는 이 알고리즘의 속도를 이전 알고리즘의 속도와 비교합니다. 구조는 '배수 표현 + as + 형용사 또는 부사 + as + 비교 대상'입니다. twice as fast as the last에서 twice는 배수를, fast는 비교하는 성질을 나타내고, 두 번째 as는 비교 대상을 이끕니다.

연습

배수 비교에서 빠진 두 단어를 채우세요: The new scanner is twice ____ fast ____ the old one.

정답 보기

as · as

But is it correct?

2:56

그런데 이게 맞을까요?

Let's see.

2:57

봅시다.

Does it work if there are two people in the room?

2:58

방에 두 명이 있다면 제대로 작동할까요?

In line one, we initialize n to zero.

3:00

첫 번째 줄에서 우리는 n을 0으로 초기화합니다.

For that one pair of people, we then increment n by two.

3:02

그 한 쌍의 사람에 대해, 우리는 n을 2만큼 증가시킵니다.

And so, by this algorithm's end,

3:06

그래서 이 알고리즘이 끝날 때쯤,

n is two, which indeed matches the number of people in the room.

3:08

n은 2가 되며, 이는 실제로 방에 있는 사람 수와 일치합니다.

Suppose next that there are zero people in the room.

3:11

다음으로 방에 사람이 0명 있다고 가정해 봅시다.

In line one, we initialize n to zero.

3:13

첫 번째 줄에서 우리는 n을 0으로 초기화합니다.

As before, line three doesn't execute at all, 전개 흐름

3:16

이전과 마찬가지로, 세 번째 줄은 전혀 실행되지 않습니다.

전개 흐름

As before: 앞의 동일한 경우와 연결하기

As before는 '앞의 경우와 같은 방식으로'라는 뜻입니다. 이미 나온 정보를 다시 가리키며, 현재 경우도 같은 패턴을 따른다는 것을 알려 줍니다. 여기서는 설명을 정리하는 역할을 합니다. 세 번째 줄은 앞의 경우와 마찬가지로 여전히 실행되지 않습니다. 여기서 As는 이유가 아니라 유사성을 나타냅니다.

연습

여기서 As before는 어떤 역할을 하나요? The first test had no errors. As before, the second test finished without any errors.

  1. 나중에 테스트를 다시 할 것이라고 말합니다.
  2. 이 결과를 앞의 경우에서 나온 동일한 결과와 연결합니다.
  3. 테스트에 오류가 없었던 이유를 알려 줍니다.
정답 보기

이 결과를 앞의 경우에서 나온 동일한 결과와 연결합니다.

since there aren't any pairs of people in the room,

3:18

방에 사람 쌍이 없기 때문입니다.

and so n remains zero,

3:20

그래서 n은 0으로 유지되며,

which indeed matches the number of people in the room.

3:22

이는 실제로 방에 있는 사람 수와 일치합니다.

But what if there are three people in the room? 문법

3:24

그런데 방에 세 명이 있다면 어떨까요?

문법

What if there are ...?로 가능한 경우 점검하기

이 문장에서 What if는 가상의 경우를 제시합니다. 즉, 방 안에 사람이 세 명 있다고 가정해 보라는 뜻입니다. 화자는 현재 인원을 확인하는 것이 아니라, 그 조건에서 이 방법이 어떤 결과를 내는지 묻습니다. there are는 가정 안에서 여러 사람이나 사물이 존재한다는 부분을 만듭니다. 이 구조를 쓰면 조건 하나가 바뀌어도 앞의 주장, 계획, 과정이 계속 성립하는지 점검할 수 있습니다.

연습

강조된 네 단어 구조로 질문을 완성하세요: ____ five passengers in the car?

정답 보기

What if there are

How does this algorithm fair?

3:27

이 알고리즘은 어떻게 될까요?

Let's see.

3:29

봅시다.

In line one, we initialize n to zero.

3:30

첫 번째 줄에서 우리는 n을 0으로 초기화합니다.

For a pair of those people, we then increment n by two.

3:33

그 사람들 중 한 쌍에 대해, 우리는 n을 2만큼 증가시킵니다.

But then what? 전개 흐름

3:36

하지만 그 다음엔요?

전개 흐름

But then what?로 빠진 다음 단계 드러내기

But은 앞의 내용에서 방향이 바뀐다는 것을 나타내고, then은 순서상 다음 단계나 결과를 가리킵니다. what은 What happens next? 또는 What do we do next?처럼 더 완전한 질문을 대신합니다. But then what?는 독립된 짧은 질문으로 설명을 잠시 멈추고 빈틈을 드러냅니다. 한 단계는 설명되었지만 전체 과정은 아직 끝나지 않았다는 뜻입니다. 빠진 다음 단계를 요구함으로써 추론을 앞으로 진행합니다.

연습

과정을 설명할 때 But then what?는 보통 어떤 역할을 하나요?

  1. 관련 없는 과거 사건으로 돌아갑니다.
  2. 모든 단계가 끝났다고 알립니다.
  3. 과정이 아직 해결되지 않은 다음 단계에 이르렀음을 지적합니다.
정답 보기

과정이 아직 해결되지 않은 다음 단계에 이르렀음을 지적합니다.

There isn't another full pair of people in the room,

3:37

방에는 온전한 사람 쌍이 더 이상 없으므로,

so line two no longer applies. 표현 묶음

3:39

두 번째 줄은 더 이상 적용되지 않습니다.

표현 묶음

no longer applies: 규칙이 더 이상 적용되지 않음

이 문장에서 no longer applies는 두 번째 줄이 이전에는 상황에 맞았지만, 필요한 조건이 사라져 지금은 더 이상 적용되지 않는다는 뜻입니다. 여기서 apply는 ‘지원하다’가 아니라 ‘어떤 경우에 적용되거나 유효하다’라는 뜻입니다. no longer + 동사는 이전에는 사실이었지만 지금은 그렇지 않다는 변화를 나타냅니다. 규칙, 조건, 지침, 할인 등이 주어일 때 apply는 그것이 특정 상황을 대상으로 한다는 뜻입니다.

연습

The rule no longer applies가 가장 잘 설명하는 상황은 무엇인가요?

  1. 그 규칙은 이전에는 그 상황에 적용되었지만, 변화가 생겨 지금은 관련이 없어졌습니다.
  2. 누군가가 새로운 규칙을 만들어 달라고 신청하고 있습니다.
  3. 그 규칙은 그 상황에 적용된 적이 전혀 없습니다.
정답 보기

그 규칙은 이전에는 그 상황에 적용되었지만, 변화가 생겨 지금은 관련이 없어졌습니다.

And so, by this algorithm's end,

3:41

그래서 이 알고리즘이 끝날 때쯤,

n is still two, which isn't correct.

3:43

n은 여전히 2이며, 이는 맞지 않습니다.

Indeed, this algorithm is said to be buggy, 어휘 쓰임

3:46

실제로 이 알고리즘은 버그가 있다고 할 수 있습니다.

because it has a mistake.

3:48

실수가 포함되어 있기 때문이죠.

어휘 쓰임

buggy: 결함이 있는 소프트웨어나 알고리즘

기술 대화에서 buggy는 소프트웨어, 알고리즘, 기능 등에 버그가 있어서 잘못된 결과를 내거나 불안정하게 작동할 수 있다는 뜻의 형용사입니다. 여기서는 오류가 있는 알고리즘을 설명합니다. buggy는 단순히 wrong이라고 하는 것보다 구체적입니다. 기술 시스템의 설계나 구현에 결함이 있다는 점을 나타냅니다. 여기서 bug는 곤충이 아니라 소프트웨어 또는 공학상의 결함입니다.

연습

기술 문맥에서 buggy를 자연스럽게 사용한 문장은 무엇인가요?

  1. The developer is buggy because she made a typo.
  2. This pencil is buggy because it needs sharpening.
  3. The new app is still buggy and sometimes crashes.
정답 보기

The new app is still buggy and sometimes crashes.

Let's redress with some new pseudocode. 어휘 쓰임

3:49

새로운 의사코드로 바로잡아 봅시다.

어휘 쓰임

redress: 문제를 격식 있게 바로잡거나 해결하다

여기서 redress는 문제를 바로잡거나 해결한다는 뜻입니다. 화자는 알고리즘의 결함을 지적하는 단계에서 새로운 의사 코드로 그것을 고치려는 단계로 넘어갑니다. 이 단어는 잘못된 상태를 바로잡는 데 초점을 둡니다. 이 문맥에서는 옷과 관계가 없습니다.

연습

예문에서 redress는 무슨 뜻인가요?

  1. 문제를 바로잡거나 해결하다
  2. 다른 옷으로 갈아입다
  3. 코드를 빨간색으로 쓰다
정답 보기

문제를 바로잡거나 해결하다

Let n equal zero.

3:51

n을 0이라고 합시다.

For each pair of people in room,

3:52

방에 있는 각 쌍의 사람에 대해,

set n = n + 2.

3:55

n = n + 2로 설정합니다.

If one person remains unpaired,

3:57

만약 한 사람이 짝을 짓지 못하고 남는다면,

set n = n + 1.

4:00

n = n + 1로 설정합니다.

To solve this particular problem,

4:02

이 특정 문제를 해결하기 위해,

we've introduced in line four a condition, 어휘 쓰임

4:03

우리는 네 번째 줄에 조건을 도입했습니다.

otherwise known as a branch,

4:06

분기(branch)라고도 알려진 것으로,

that only executes if there's one person we could not pair with another. 문법

4:08

우리가 다른 사람과 짝을 지을 수 없는 사람이 한 명 있을 때만 실행됩니다.

어휘 쓰임

a condition, otherwise known as a branch: 제어 흐름의 두 용어

이 프로그래밍 설명에서 condition은 어떤 코드가 실행될지를 결정하는 참 또는 거짓 검사이고, branch는 그 검사 결과에 따라 선택되는 코드 경로나 블록입니다. otherwise known as는 설명 중인 조건부 부분을 가리키는 또 다른 이름으로 branch를 소개합니다. 이 문장의 용어 사용은 약간 느슨합니다. 더 정확히 말하면 condition은 검사이고, branch는 한 결과에 대해 프로그램이 실행하는 내용입니다. 여기서는 한 사람이 짝을 이루지 못하고 남았을 때만 관련 branch가 실행됩니다.

연습

condition과 branch를 가장 정확하게 설명한 것은 무엇인가요?

  1. condition은 주석이고, branch는 파일 이름입니다.
  2. branch는 참 또는 거짓 검사이고, condition은 결과에 따라 선택되는 코드 경로입니다.
  3. condition은 참 또는 거짓 검사이고, branch는 결과에 따라 선택되는 코드 경로입니다.
정답 보기

condition은 참 또는 거짓 검사이고, branch는 결과에 따라 선택되는 코드 경로입니다.

문법

only executes if: 실행에 필요한 조건 나타내기

only executes if...에서 only는 실행 횟수가 아니라 실행 조건을 제한합니다. if절의 조건이 참일 때만 동작을 실행할 수 있고, 조건이 거짓이면 실행할 수 없습니다. 한 번만 실행된다는 뜻이 아닙니다. 이 구조는 코드, 명령 또는 자동화 단계가 실행되기 위해 필요한 조건을 if절로 제시합니다.

연습

only executes if를 사용해 조건문을 완성하세요: The shutdown command ____ the temperature rises above 40 degrees.

정답 보기

only executes if

And so now,

4:12

그래서 이제,

whether there's one or three or any odd number of people in the room, 문법

4:12

방에 사람이 한 명이든, 세 명이든, 홀수 명이든,

this algorithm will now count them.

4:16

이 알고리즘은 이제 그들을 셀 것입니다.

문법

whether there's one or three or any odd number: 모든 경우 포함하기

whether there's one or three or any odd number...에서 whether는 여러 가능성을 제시하고, 각 or는 다른 경우를 하나씩 추가합니다. 주절은 모든 경우에 결과가 같다고 말합니다. 즉, 인원이 어떤 홀수이든 알고리즘이 사람 수를 셉니다. 여기서 whether는 예 또는 아니요로 답하는 질문을 만들지 않습니다. one과 three는 예시이고, any odd number는 범위를 모든 홀수로 넓힙니다. 전체 의미는 ‘어느 경우에 해당하든’입니다.

연습

여기서 whether there's one or three or any odd number는 무슨 뜻인가요?

  1. 화자는 방에 몇 명이 있는지 질문하고 있습니다.
  2. 알고리즘은 인원이 정확히 한 명 또는 세 명일 때만 셉니다.
  3. 알고리즘은 인원이 어떤 홀수인 경우에도 사람 수를 셉니다.
정답 보기

알고리즘은 인원이 어떤 홀수인 경우에도 사람 수를 셉니다.

Can we do even better?

4:18

우리가 더 잘할 수 있을까요?

Well, we could count in threes or fours or even fives and tens, 표현 묶음

4:19

글쎄요, 우리는 3명씩, 4명씩, 심지어 5명이나 10명씩 셀 수도 있지만,

표현 묶음

count in threes or fours: 3씩 또는 4씩 세기

count in threes or fours는 세 개씩 또는 네 개씩 묶거나 그만큼 건너뛰며 센다는 뜻입니다. 예를 들어 3씩 세면 3, 6, 9, 12가 됩니다. 형태는 count in + 복수형 숫자 단어입니다. 예를 들면 count in twos, count in fives, count in tens가 있습니다. 여기서 in은 장소가 아니라 한 묶음의 크기나 세는 간격을 나타냅니다.

연습

3씩 늘려 세는 뜻이 되도록 in + 복수형 숫자로 문장을 완성하세요: Let's count ____: three, six, nine, twelve.

정답 보기

in threes

but beyond that it's going to get a little bit difficult to point. 해설

4:23

그 이상이 되면 손가락으로 가리키기가 조금 어려워질 것입니다.

표현 묶음

beyond that: 앞에서 말한 한계를 넘어서

이 문장에서 beyond that은 ‘방금 언급한 범위나 한계를 넘어서’라는 뜻입니다. that은 앞에서 이야기한 더 큰 세기 간격을 가리키고, beyond는 그보다 더 나아가면 손가락으로 가리키기가 어려워진다는 것을 나타냅니다. beyond는 물리적 공간만 나타내는 말이 아닙니다. 응용 가능한 beyond that 형태는 흔히 ‘그 숫자, 수준, 단계 또는 한계를 넘으면’이라는 뜻입니다.

연습

“The first ten pages are easy, but beyond that the material gets harder,”라는 문장에서 beyond that은 무슨 뜻인가요?

  1. 처음 열 페이지 이후
  2. 열 페이지에 도달하기 전
  3. 책의 뒤쪽
정답 보기

처음 열 페이지 이후

문법

get a little bit difficult to point: 가리키기가 조금 어려워지다

여기서 get은 ‘~해지다’라는 뜻으로, 전에는 쉽게 할 수 있던 동작이 더 어려워지는 변화를 나타냅니다. a little bit은 difficult의 강도를 낮추므로 ‘조금 어렵다’는 뜻이지 ‘전혀 할 수 없다’는 뜻은 아닙니다. to point라는 부정사는 어떤 동작이 어려워지는지를 알려 줍니다. 이 문장에서 point는 ‘사람들을 손가락으로 한 명씩 가리키다’라는 뜻의 동사이며, ‘의견’이나 ‘점수’를 뜻하는 명사가 아닙니다.

연습

‘조금 어려워지다’라는 뜻의 목표 표현으로 문장을 완성하세요: When the directions include too many steps, they ____ follow.

정답 보기

get a little bit difficult to

At the end of the day, 관용구

4:26

결국,

whether executed by computers or humans, 문법

4:27

컴퓨터가 실행하든 사람이 실행하든,

algorithms are just a set of instructions with which to solve problems. 문법

4:30

알고리즘은 문제를 해결하기 위한 일련의 지시 사항에 불과합니다.

관용구

At the end of the day: 최종 결론을 제시하기

At the end of the day는 ‘모든 세부 사항을 고려하고 나면’ 또는 ‘결국’이라는 뜻의 관용 표현입니다. 보충 설명에서 핵심 결론으로 넘어간다는 신호이며, 저녁의 특정 시간을 뜻하지 않습니다. 여기서는 뒤에 나오는 내용을 기억해야 할 핵심 정의로 제시합니다. 컴퓨터가 실행하든 사람이 실행하든 알고리즘은 문제를 해결하기 위한 지시입니다.

연습

실질적인 최종 결론을 이끄는 관용 표현으로 문장을 완성하세요: ____, the team needs a plan everyone can follow.

정답 보기

At the end of the day

문법

whether executed by computers or humans: 축약된 수동 whether절

완전한 절은 whether algorithms are executed by computers or humans입니다. 주절에서 알아낼 수 있으므로 반복되는 주어 algorithms와 수동태에 필요한 be 동사가 생략되었습니다. 이 축약절은 두 행위자 중 누가 동작을 수행하든 상관없다는 조건을 더합니다. algorithms를 수식하고 주절의 내용을 이끌며, 별도의 주절은 아닙니다.

연습

예문의 whether executed by computers or humans를 가장 알맞게 완전한 절로 풀어 쓴 것은 무엇인가요?

  1. whether they are executed by computers or humans
  2. whether they execute computers or humans
  3. whether computers are executed by humans
정답 보기

whether they are executed by computers or humans

문법

with which to solve problems: 수단을 격식 있게 표현하기

with which to solve problems는 a set of instructions를 수식합니다. which는 그 지시 사항을 가리키고, with는 지시 사항이 문제 해결에 사용되는 수단임을 나타냅니다. 「명사 + 전치사 + which + to부정사」는 가능한 목적이나 용도를 간결하고 격식 있게 표현하는 구조입니다. 여기서는 누군가가 문제를 해결하는 데 사용할 수 있는 일련의 지시 사항이라는 뜻이며, instructions를 solve의 문법적 행위자로 만드는 것은 아닙니다.

연습

a set of instructions with which to solve problems를 가장 잘 바꾸어 쓴 것은 무엇인가요?

  1. a set of instructions that someone must solve
  2. a set of instructions that someone can use to solve problems
  3. a set of instructions that solve every problem by themselves
정답 보기

a set of instructions that someone can use to solve problems

These were just three.

4:33

이것들은 단지 세 가지 예시에 불과합니다.

What problem would you solve with an algorithm? 말투와 의도

4:35

당신은 알고리즘으로 어떤 문제를 해결하시겠습니까?

말투와 의도

What problem would you solve...?: 가정적인 선택을 생각하게 하는 질문

What problem would you solve...?는 듣는 사람이 가능한 선택을 상상하고, 어떤 개념을 자신의 상황과 연결해 보도록 하는 열린 질문입니다. 정답이 하나로 정해진 질문이 아닙니다. 여기서 would는 알고리즘을 사용할 수 있다면 어떤 문제를 선택해 해결할지 묻는 가정적인 선택을 나타냅니다. 이 질문에서는 과거를 뜻하지 않습니다.

연습

What problem would you solve with an algorithm?에서 would는 주로 어떤 역할을 하나요?

  1. 듣는 사람이 가능한 선택을 상상하도록 한다.
  2. 듣는 사람에게 특정 문제를 해결하라고 명령한다.
  3. 과거에 이미 해결한 문제를 묻는다.
정답 보기

듣는 사람이 가능한 선택을 상상하도록 한다.