학습 본문으로 건너뛰기
오늘은 질문 하나만 해결해요214 / 216

따라 해보기 · 직접 바꿔보기

실패하면 시작 전 모습 그대로 두기

오늘의 질문

일반 서점에서는 이런 장면과 닮았어요. “송금 도중 문제가 나면 한 통장에서만 돈이 빠진 채 두지 않는 것과 닮았어요.”

아직 답을 몰라도 괜찮아요. 아래 작은 예시를 보고 먼저 예상해 보세요.
왜 배우는지 쉬운 설명 보기

가진 수보다 많이 쓰려 하자 실패하지만 지갑에는 원래 5가 그대로 남습니다. 이 장면을 살펴보는 까닭은 “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요”라는 기준을 익혀, 비슷해 보이는 두 경우도 안전하게 나누기 위해서예요.

01 · 같이 연습해요

작은 문제부터 하나씩 직접 풀어봐요

먼저 예상하고, 한 단계씩 확인하고, 막힌 곳을 고쳐 봐요. 도움을 열어도 괜찮아요. 도움을 본 문제는 나중에 모양을 바꿔 다시 풀어보면 됩니다.

연습에서 작성 중인 답0 / 8
문제를 읽기 전에

지금 문제의 중심 낱말 하나를 천천히 풀어요

중심 낱말은 여덟 칸으로 익혀요. 함께 나오는 낯선 말은 정확한 이름과 쉬운 뜻을 한 줄에 붙여 빠르게 확인해요.

오늘 깊이 익힐 낱말

  1. 1. 왜 알아야 하나요?

    가진 수보다 많이 쓰려 하자 실패하지만 지갑에는 원래 5가 그대로 남습니다. 이 장면을 살펴보는 까닭은 “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요”라는 기준을 익혀, 비슷해 보이는 두 경우도 안전하게 나누기 위해서예요.

  2. 2. 아주 쉬운 뜻

    쉬운 말로 풀면 이런 뜻이에요. “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요.”

  3. 3. 동네책방 장면

    일반 서점에서는 이런 장면과 닮았어요. “송금 도중 문제가 나면 한 통장에서만 돈이 빠진 채 두지 않는 것과 닮았어요.”

  4. 4. 방금 본 작은 예

    “실패하면 시작 전 모습 그대로 두기” 장면의 첫 글에서 직접 확인한 내용: “5”. 한 곳만 바꾼 글에서 확인한 내용: “-3”. 두 확인 내용에서 처음 달라진 곳을 찾아 오늘의 쉬운 뜻과 연결해요.

  5. 5. 책에서 쓰는 이름을 쉬운 뜻과 붙이기failure atomicity — 쉬운 뜻: 쉬운 말로 풀면 이런 뜻이에요. “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요.”
    ValueError
    쉬운 말로 풀면 이런 일이에요. “받은 내용의 생김새는 맞아도 허용한 범위나 약속에서 벗어나 멈춘다는 뜻이에요.”
    __init__
    쉬운 말로 풀면 이런 뜻이에요. “새 대상이 준비된 뒤 처음 필요한 정보를 채우는 단계예요.”
    number
    쉬운 말로 풀면 다음과 같은 일이에요. “소수점이 없는 수와 있는 수가 서로 다른 Python 값으로 읽힐 수 있어요.”
    except
    쉬운 말로 풀면 이런 일이에요. “앞에서 멈춘 까닭이 적어 둔 종류와 맞을 때만 안쪽 일을 해요.”
    print
    쉬운 말로 풀면 다음과 같은 일이에요. “글이나 숫자를 화면에 보이게 하되 다음 계산값으로 돌려주지는 않는 도구”
    raise
    쉬운 말로 풀면 이런 일이에요. “더 진행하면 안 되는 자리에서 어떤 일이 잘못됐는지 바로 밖으로 알려요.”
    class
    쉬운 말로 풀면 이런 뜻이에요. “비슷한 대상들이 가질 정보와 할 일을 한곳에 적은 설명서예요.”
    self
    쉬운 말로 풀면 이런 뜻이에요. “낱개가 일을 시킬 때 그 낱개 자신을 첫 자리에서 받아요.”
    try
    쉬운 말로 풀면 이런 일이에요. “중간에 멈출 수 있는 부분을 따로 둘러싸고 먼저 따라가 보는 자리예요.”
    이름
    코드에서 어떤 내용을 나중에 다시 찾도록 붙이는 글자표예요.
    if
    앞의 물음이 맞을 때만 아래에 묶인 일을 하게 하는 문이에요.

    문제를 풀 때는 이 한 줄로 뜻을 먼저 되살려요. 정확한 기술 설명은 개념 활동에서 함께 나오는 낯선 말의 쉬운 뜻까지 붙여 차례로 확인해요.

  6. 6. 비슷해 보여도 다른 때

    “실패하면 시작 전 모습 그대로 두기” 장면에서 한 곳을 바꾼 두 번째 글의 확인 내용: “-3”.

  7. 7. 비유가 끝나는 곳

    서점 비유는 “송금 도중 문제가 나면 한 통장에서만 돈이 빠진 채 두지 않는 것과 닮았어요” 장면을 처음 떠올리는 데까지만 맞아요. 비유만으로 판단할 수 없는 차이: “failure atomicity는 ‘실패했다’는 알림만 띄운다고 생기지 않아요. 안쪽 내용을 바꾸는 차례와 돈 보내기나 알림 보내기처럼 바깥에 남는 일의 차례까지 함께 정해야 해요”. 실제 글과 두 결과를 다시 확인해야 해요.

  8. 8. 내 말로 다시 설명하기

    “실패하면 시작 전 모습 그대로 두기” 장면에서 첫 글과 바꾼 글의 확인 내용에서 무엇이 달라졌는지, “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요”라는 기준과 “failure atomicity는 ‘실패했다’는 알림만 띄운다고 생기지 않아요. 안쪽 내용을 바꾸는 차례와 돈 보내기나 알림 보내기처럼 바깥에 남는 일의 차례까지 함께 정해야 해요”라는 주의점을 써서 설명해 보세요. 그런 다음 “재고와 결제를 함께 바꾸는 일에서 두 번째 단계가 실패할 때 첫 변화가 남는지 확인해 보세요” 장면에서는 무엇부터 확인할지도 설명해 보세요.

  1. 01

    찾아보기 · 기초

    먼저 볼 한 곳 찾기: 실패하면 시작 전 모습 그대로 두기

    짧은 이야기

    생활 장면은 이래요. 가진 수보다 많이 쓰려 하자 실패하지만 지갑에는 원래 5가 그대로 남습니다. 다음 모습을 먼저 예상하고 짧은 Python 코드, 즉 컴퓨터가 따라 할 글로 확인합니다.

    이번에 해볼 것

    아래 글에서 ① 처음 주어진 내용을 담은 줄과 ② 마지막 모습을 바꾸는 줄을 각각 번호와 함께 그대로 옮겨 적으세요. class Wallet: def __init__(self, number): self.number = number def spend(self, amount): if amount > self.number: raise ValueError self.number -= amount wallet = Wallet(5) try: wallet.spend(8) except ValueError: print(wallet.number)

    먼저 볼 것
    • 첫 글: class Wallet: def __init__(self, number): self.number = number def spend(self, amount): if amount > self.number: raise ValueError self.number -= amount wallet = Wallet(5) try: wallet.spend(8) except ValueError: print(wallet.number)
    • 공개 풀이를 보기 전에 예상과 그렇게 생각한 까닭을 먼저 적습니다.
    • 실제 이름·연락처·계정 정보 대신 수업용 글자와 작은 수만 사용합니다.
    정답 대신 4단계 힌트 보기
    1. 먼저 볼 것

      대상, 붙은 정보, 시킨 일과 마지막 모습을 서로 이어 보세요.

    2. 뜻 풀기

      쉬운 말로 풀면 이런 뜻이에요. “여러 일을 하다가 하나가 실패하면 반만 바뀐 모습을 남기지 않고 처음 모습으로 돌리는 약속이에요.”

    3. 다음 도움

      내 생각을 먼저 적고 ‘풀이 확인’을 누르면, 풀 순서와 더 자세한 도움을 열어 드려요.

    정답과 비교

한꺼번에 여덟 문제를 펼치지 않아요. 내 생각을 적고 맞춰 볼 기준을 확인하면 다음 문제 하나만 열립니다.

8개 답이 남았습니다.

02 · 막힌 곳을 찾아요

틀린 답에서 생각이 갈라진 첫 지점 찾기

전부 다시 풀지 않아도 돼요.괜찮아요. 대상과 그 대상에 붙은 정보부터 하나씩 다시 볼까요?

막히는 이유와 고치는 방법 자세히 보기같은 곳에서 다시 막혔을 때 필요한 설명만 펼쳐 보세요.
헷갈림 01

다음 두 경우를 나누는 선을 확인하지 않았어요: “failure atomicity는 ‘실패했다’는 알림만 띄운다고 생기지 않아요. 안쪽 내용을 바꾸는 차례와 돈 보내기나 알림 보내기처럼 바깥에 남는 일의 차례까지 함께 정해야 해요”.

겉으로 보이는 막힘
어느 대상의 정보가 어디에서 왔고, 한 곳을 바꾸면 무엇이 달라지는지 설명하지 못했어요.
막힌 까닭
쉬운 비유에서 멈추고 첫 글과 한 곳을 바꾼 글의 실제 결과를 나란히 확인하지 않았어요.
다시 해보는 방법
대상, 붙은 정보, 시킨 일과 마지막 모습을 네 칸에 적은 뒤 두 글의 다른 한 곳부터 다시 확인하세요.
헷갈림 02

내 예상은 적지 않고 공개 풀이부터 읽어요.

겉으로 보이는 막힘
이름이나 수가 바뀐 새 문제에서 어느 곳을 먼저 볼지 고르기 어려워요.
막힌 까닭
보인 답은 기억했지만 대상, 정보, 행동과 결과 사이의 까닭을 만들지 않았어요.
다시 해보는 방법
풀이를 닫고 바뀐 글에서 예상, 직접 확인한 내용과 지켜야 할 약속을 새로 적어요.
헷갈림 03

생각한 모습과 직접 본 모습을 같은 칸에 섞어 써요.

겉으로 보이는 막힘
예상이 어긋났을 때 어느 생각을 고쳐야 하는지 찾기 어려워요.
막힌 까닭
확인하기 전 생각과 확인한 뒤 사실을 나누지 않았어요.
다시 해보는 방법
왼쪽에는 예상, 오른쪽에는 직접 본 내용, 아래에는 처음 달랐던 까닭을 적어요.

03 · 내게 맞는 도움 고르기

같은 목표를 원하는 도움만큼 연습해요

안내 받으며

한 단계씩

네 단계 중 지금 필요한 한 단계만 열어 천천히 따라가요.

도움을 봐도 괜찮아요.
혼자 해보기

내 힘으로

“실패하면 시작 전 모습 그대로 두기”에서 보았던 것과 이름이나 수만 다른 새 책방 장면을 만들어 보세요. 먼저 예상한 모습, 직접 확인한 모습과 바뀌어도 지켜야 할 약속을 서로 다른 칸에 적어요.

이름과 숫자만 바뀐 작은 문제부터 시작해요.
더 도전하기

하나 더 바꾸기

시작점이나 선 하나를 더 바꾸고, 답이 달라지는지 먼저 예상해요.

한 번에 한 가지만 바꿔요.
내게 맞는 연습 방법 자세히 보기한 단계 도움, 혼자 하기, 한 걸음 더를 쉬운 말로 나눴어요.

한 단계 도움: 그림에서 지금 볼 한 곳만 짚고, 내 생각을 먼저 고른 뒤 다음 칸을 열어요.

혼자 해보기: “실패하면 시작 전 모습 그대로 두기”에서 보았던 것과 이름이나 수만 다른 새 책방 장면을 만들어 보세요. 먼저 예상한 모습, 직접 확인한 모습과 바뀌어도 지켜야 할 약속을 서로 다른 칸에 적어요.

한 걸음 더: 한 번에 약속 하나만 바꾸고 답이 어떻게 달라지는지 먼저 예상한 뒤 확인해요.