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

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

안쪽 사정을 감추고 필요한 일만 열기

오늘의 질문

일반 서점에서는 이런 장면과 닮았어요. “손님은 계산대 단추만 쓰고 금고 안 장치는 만지지 않는 것과 닮았어요.”

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

수를 직접 고치지 않고 더하기 문을 거쳐 현재 수를 읽습니다. 이 장면을 살펴보는 까닭은 “대상이 내용을 어떻게 간직하는지는 안쪽에 두고 바깥에는 안전하게 시킬 일만 보여 주는 설계예요”라는 기준을 익혀, 비슷해 보이는 두 경우도 안전하게 나누기 위해서예요.

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

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

동네책방 대상 카드

안쪽 사정을 감추고 필요한 일만 열기

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

수를 직접 고치지 않고 더하기 문을 거쳐 현재 수를 읽습니다.

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

02 · 먼저 잡아 둘 쉬운 뜻

쉬운 말로 풀면 이런 뜻이에요. “대상이 내용을 어떻게 간직하는지는 안쪽에 두고 바깥에는 안전하게 시킬 일만 보여 주는 설계예요.”

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

03 · 실제 첫 글 읽기

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

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

  1. class Counter:

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

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

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

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

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

    def
    나중에 이름으로 불러 쓸 일 묶음을 등록하겠다는 말
    add
    이 일 묶음을 나중에 다시 부르려고 붙인 수업용 이름
    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    _number
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    +=
    왼쪽 이름표의 현재 내용에 오른쪽 내용을 더해 다시 붙이는 표시
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  4. def value(self): return self._number

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

    def
    나중에 이름으로 불러 쓸 일 묶음을 등록하겠다는 말
    value
    이 일 묶음을 나중에 다시 부르려고 붙인 수업용 이름
    self
    지금 이 일을 맡은 한 대상을 가리키는 첫 번째 받을 자리예요. 파이썬에서는 보통 self라고 적어요
    return
    결과를 불렀던 자리로 돌려주고 이번 일을 끝내라는 말
    _number
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    :
    이 줄 다음에 안쪽으로 들여쓴 일이 이어진다고 알리는 표시
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  5. counter = Counter()

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

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

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

    counter
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    add
    앞에서 준비한 일 묶음을 지금 실제로 시키려고 부르는 이름
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
  7. print(counter.value())

    괄호 안 내용을 다음 계산으로 보내지 않고 화면에 보여줘요.

    print
    괄호 안 내용을 화면에 보여 주는 도구
    counter
    수업용 값이나 중간 결과를 다음 줄에서 다시 찾으려고 붙인 이름
    value
    앞에서 준비한 일 묶음을 지금 실제로 시키려고 부르는 이름
    ()
    받을 자리를 적거나 준비한 일을 실제로 시키는 둥근 표시
    .
    앞의 내용에 딸린 행동이나 저장된 정보를 골라 쓰는 점 표시예요
아직 결과를 보지 않고, 대상과 붙은 정보 가운데 무엇부터 확인하면 좋을까요?

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

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

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

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

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

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

  2. 안 해 주는 일 적기

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

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

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

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

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

03 · 이제 내가 해볼 차례

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

수를 직접 고치지 않고 더하기 문을 거쳐 현재 수를 읽습니다. 이 장면을 살펴보는 까닭은 “대상이 내용을 어떻게 간직하는지는 안쪽에 두고 바깥에는 안전하게 시킬 일만 보여 주는 설계예요”라는 기준을 익혀, 비슷해 보이는 두 경우도 안전하게 나누기 위해서예요.

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

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

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

04 · 자주 헷갈리는 지점

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

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

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

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

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

02처음에는 “손님은 계산대 단추만 쓰고 금고 안 장치는 만지지 않는 것과 닮았어요”라는 비유만 보고 비슷한 두 경우가 언제나 같다고 생각하기 쉬워요.

한 번 더 생각해 볼 질문“안쪽 사정을 감추고 필요한 일만 열기” 장면에서 첫 글과 바꾼 글의 확인 내용에서 무엇이 달라졌는지, “대상이 내용을 어떻게 간직하는지는 안쪽에 두고 바깥에는 안전하게 시킬 일만 보여 주는 설계예요”라는 기준과 “information hiding은 이름 앞에 밑줄을 붙이거나 철자를 자동으로 바꾸는 것만으로 생기지 않아요. 이 언어에서는 서로 지키기로 한 약속과 바깥에 열어 둘 일을 잘 고르는 것이 중요해요”라는 주의점을 써서 설명해 보세요. 그런 다음 “재고 수를 직접 대입하게 할 때와 안전한 입출고 일만 열 때 바뀌는 규칙의 위치를 비교해 보세요” 장면에서는 무엇부터 확인할지도 설명해 보세요.

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

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

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

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

05 · 더 궁금할 때만 보기

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

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