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

처음이어도 괜찮아요 · 그림부터 시작해요

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

오늘의 질문

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

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

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

02 · 먼저 해 본 뒤 이름 붙이기

인공지능이 만든 설계를 고치는 수리소에서 오늘 장면 하나를 천천히 살펴봐요

동네책방 대상 카드

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

반복 글을 줄여 주는 도구도 들어온 내용 확인, 안쪽 정보의 변화 막기와 안전한 화면 표시를 대신하지 않아요.
01 · 오늘 마주칠 생활 장면

가진 수보다 많이 쓰려 하자 실패하지만 지갑에는 원래 5가 그대로 남습니다.

이 장면을 짧은 컴퓨터 글로 옮겨 천천히 확인해 볼게요.

02 · 먼저 잡아 둘 쉬운 뜻

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

책에서 쓰는 정확한 이름은 직접 살펴본 뒤에 붙여요.

03 · 실제 첫 글 읽기

한 줄에서 한 가지 행동만 찾아요

표시를 전부 외우지 않아도 괜찮아요. 오른쪽의 쉬운 행동만 먼저 읽으세요.

  1. class Wallet:

    같은 정보와 일을 함께 쓸 새 종류의 설명을 시작해요.

    class
    같은 정보와 일을 함께 쓸 새 종류를 설명하기 시작하는 말로, 이 설명 묶음을 클래스라고 불러요
    Wallet
    같은 정보와 일을 함께 쓸 새 종류에 붙인 수업용 이름
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
  2. def __init__(self, number): self.number = number

    나중에 이름으로 부를 일 묶음과 받을 자리를 등록해요.

    def
    나중에 이름으로 불러 쓸 일 묶음을 등록하겠다는 말
    __init__
    이 일 묶음을 나중에 다시 부르려고 붙인 수업용 이름
    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    number
    이름 붙인 일 묶음(함수)이 실제 내용을 받을 빈칸에 붙인 수업용 이름
    =
    오른쪽에서 준비한 내용을 왼쪽 이름표로 다시 찾게 잇는 표시
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    ,
    여러 내용이나 입력 자리를 서로 나누는 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  3. def spend(self, amount):

    나중에 이름으로 부를 일 묶음과 받을 자리를 등록해요.

    def
    나중에 이름으로 불러 쓸 일 묶음을 등록하겠다는 말
    spend
    이 일 묶음을 나중에 다시 부르려고 붙인 수업용 이름
    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    amount
    이름 붙인 일 묶음(함수)이 실제 내용을 받을 빈칸에 붙인 수업용 이름
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    ,
    여러 내용이나 입력 자리를 서로 나누는 표시
  4. if amount > self.number: raise ValueError

    뒤의 물음이 맞을 때만 바로 아래의 들여쓴 일을 해요.

    if
    뒤의 물음이 맞을 때만 다음 일을 하라는 말
    amount
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    number
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    raise
    정해 둔 멈춤 안내를 일부러 일으키라는 말
    ValueError
    받은 내용의 종류는 맞지만 허용한 범위를 벗어났다고 알려 주는 멈춤 안내
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  5. self.number -= amount

    이 줄의 영어 이름과 표시를 하나씩 풀어 읽고, 앞줄에서 달라진 내용을 이어 봐요.

    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    number
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    amount
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    =
    오른쪽에서 준비한 내용을 왼쪽 이름표로 다시 찾게 잇는 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  6. wallet = Wallet(5)

    오른쪽 일을 먼저 한 뒤 나온 내용을 왼쪽 이름표로 다시 찾게 해요.

    wallet
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    Wallet
    앞에서 설명한 새 종류로 실제 대상 하나를 만들려고 부르는 이름
    =
    오른쪽에서 준비한 내용을 왼쪽 이름표로 다시 찾게 잇는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
  7. try: wallet.spend(8)

    앞에서 준비한 일 묶음을 부르고 괄호 안의 실제 내용을 건네요.

    try
    일단 해 보고 멈춤 안내가 생기는지 살펴보라는 말
    wallet
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    spend
    앞에서 준비한 일 묶음을 지금 실제로 시키려고 부르는 이름
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  8. except ValueError: print(wallet.number)

    앞에서 준비한 일 묶음을 부르고 괄호 안의 실제 내용을 건네요.

    except
    앞에서 일이 멈췄을 때 정해 둔 복구 일을 하라는 말
    ValueError
    받은 내용의 종류는 맞지만 허용한 범위를 벗어났다고 알려 주는 멈춤 안내
    print
    괄호 안 내용을 화면에 보여 주는 도구
    wallet
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    number
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
아직 결과를 보지 않고, 대상과 붙은 정보 가운데 무엇부터 확인하면 좋을까요?

먼저 하나를 고르면 첫 글을 따라 한 결과를 열 수 있어요.

확인 순서 큰 그림 펼쳐 보기
그림을 글로 다시 읽어요

자동으로 줄인 글과 남은 책임을 나눠요

자동으로 생긴 부분과 사람이 직접 정해야 할 약속을 서로 다른 칸에 놓으세요.

  1. 자동으로 생긴 글 확인하기

    만들기, 보여 주기와 비교 중 생긴 부분을 봐요.

  2. 안 해 주는 일 적기

    들어온 내용이 허용되는지 확인하고 안쪽 정보의 변화까지 막는 일은 별도예요.

  3. 작은 반대 예로 검사하기

    인공지능 제안도 한 곳을 바꾼 예로 채택하거나 거절해요.

첫 글과 바꾼 글을 차례로 확인하면 이 칸이 열려요 · 0 / 240

책 한 권에 붙은 이름표, 책 속 정보와 시킬 일을 먼저 살펴보고 자기 말로 설명한 뒤 정확한 이름 하나와 쉬운 뜻을 함께 엽니다.인공지능이 만든 설계를 고치는 수리소에서 대상, 붙은 정보, 시킨 일과 마지막 모습을 번호·선·모양과 글로 나란히 보여 줍니다.직접 해보기: 그림을 읽고 내 말 설명을 여덟 글자 이상 적으면 현재 장면의 정확한 이름 하나와 여덟 칸 쉬운 풀이를 엽니다. · 화면 움직임을 줄여 쓰는 경우: 자동 재생 없이 고른 뒤 모습을 바로 바꿉니다. 움직임을 줄여도 같은 글 순서와 직접 확인한 내용을 읽을 수 있습니다.

03 · 이제 내가 해볼 차례

여기까지 오면 이런 일을 할 수 있어요

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

  • 컴퓨터가 글을 따라 하기 전에 마지막 모습을 먼저 골라요.
  • 대상, 붙은 정보, 시킨 일과 마지막 모습을 서로 다른 표시로 짚어요.
  • 내가 생각한 모습과 직접 확인한 모습을 나란히 적어요.
  • 무엇이 달랐는지 쉬운 말로 설명한 뒤 책에서 쓰는 정확한 이름 하나를 붙여요.
오늘 해낼 일과 다 했다고 볼 기준 보기쉬운 순서를 익힌 뒤 더 정확히 확인하고 싶을 때 열어요.

짧은 글을 먼저 예상하고 직접 확인한 뒤, 대상에 붙은 정보와 시킨 일이 어디에서 왔는지 자기 말로 설명합니다.

  • 공개 풀이를 보기 전에 마지막 모습과 그렇게 생각한 까닭을 먼저 적습니다.
  • 대상, 붙은 정보, 시킨 일과 마지막 모습을 차례로 짚습니다.
  • 생활말로 먼저 설명한 뒤 오늘의 정확한 이름 하나와 쉬운 뜻을 연결합니다.
  • 이름이나 내용이 달라진 새 장면에서도 같은 확인 순서를 사용합니다.

04 · 자주 헷갈리는 지점

틀린 답도 이유를 알면 다음에는 맞힐 수 있어요

처음부터 모두 맞힐 필요는 없어요.괜찮아요. 대상과 그 대상에 붙은 정보부터 하나씩 다시 볼까요?

헷갈리기 쉬운 이유 세 가지 보기내가 어디에서 다르게 생각했는지 찾고 싶을 때 열어요.
01겉으로 비슷하게 보이면 같은 대상이고 같은 규칙을 써도 돼요.

한 번 더 생각해 볼 질문두 대상을 같은 한 덩어리인지, 담긴 내용이 같은지만지를 나누어 적어 보세요.

이렇게 고쳐 생각해요같은 한 대상인지, 담긴 내용만 같은지와 어떤 종류의 설명을 따르는지 따로 확인해야 해요.

02처음에는 “송금 도중 문제가 나면 한 통장에서만 돈이 빠진 채 두지 않는 것과 닮았어요”라는 비유만 보고 비슷한 두 경우가 언제나 같다고 생각하기 쉬워요.

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

이렇게 고쳐 생각해요첫 글과 한 곳을 바꾼 글에서 처음 달라지는 곳을 찾고, 그 앞과 뒤 모습을 따로 확인해요.

03책에서 쓰는 이름만 외우면 새로운 문제에서도 바로 쓸 수 있어요.

한 번 더 생각해 볼 질문오늘 본 일을 정확한 이름 없이 처음 배우는 친구에게 설명해 보세요.

이렇게 고쳐 생각해요이름보다 먼저 눈앞의 정보와 달라진 행동을 자기 말로 설명해야 새로운 문제에서도 판단할 수 있어요.

05 · 더 궁금할 때만 보기

선생님과 검토자를 위한 믿을 만한 원문

원문과 어디까지 참고했는지 펼쳐 보기처음 배우는 동안에는 열지 않아도 괜찮아요.