4주차: 컴퓨팅 사고의 4대 원리 I - 분해와 패턴 인식

개요

지난 주 복습: AI 도구 탐색과 GitHub Copilot

지난 3주차에서 우리는 바이브 코딩의 5가지 핵심 원칙을 배웠습니다. 의도 중심, 대화적 개발, 컨텍스트 기반, 반복적 개선, 검증 중심. 이 원칙들이 어떻게 작동하는지 이해했고, 특히 GitHub Copilot의 다양한 기능들(인라인 제안, Chat 모드, 코드 설명, 테스트 생성)을 직접 경험했습니다.

ChatGPT, Claude 같은 다른 AI 도구들도 탐색했지만, 이 강의에서는 GitHub Copilot에 집중하기로 했습니다. 개발 환경에 통합되어 있어 가장 실용적이고, 바이브 코딩의 전 과정을 효과적으로 지원하기 때문입니다.

이제 우리는 도구를 손에 쥐었습니다. 하지만 도구만으로는 충분하지 않습니다. 무엇을 요청할지, 어떻게 생각할지를 알아야 합니다.

이번 주부터: 생각하는 방법 배우기

지난 3주 동안 여러분은 바이브 코딩의 세계를 탐험하고, 컴퓨팅 사고의 중요성을 이해하며, GitHub Copilot이라는 강력한 도구를 손에 넣었습니다. 이제는 컴퓨팅 사고의 핵심을 이루는 4대 원리를 하나씩 깊이 있게 학습할 시간입니다.

컴퓨팅 사고의 4대 원리는 분해, 패턴 인식, 추상화, 그리고 알고리즘적 사고입니다. 복잡해 보일 수 있지만, 걱정하지 마세요. 이번 주에는 그 중에서도 가장 기본이 되는 분해패턴 인식을 함께 배워봅시다. 사실 이 두 가지는 여러분이 이미 일상에서 자연스럽게 사용하고 있는 방법들입니다.

분해는 복잡한 문제를 작고 관리 가능한 조각으로 나누는 능력입니다. 마치 거대한 산을 앞에 두고 막막해하는 대신, 그것을 작은 언덕들로 나누어 하나씩 올라가는 전략이죠. 패턴 인식은 문제들 사이의 유사성과 반복되는 구조를 발견하는 능력입니다. 이미 해결한 문제의 패턴을 새로운 문제에 적용하면, 훨씬 빠르고 효과적으로 해결할 수 있습니다.

이 두 원리는 바이브 코딩에서 특히 빛을 발합니다. AI에게 "쇼핑몰을 만들어줘"라고 요청하는 것보다, "먼저 상품 목록 표시 기능을 만들고, 그 다음 장바구니 기능을 추가해줘"라고 분해하여 요청하는 것이 훨씬 더 나은 결과를 만들어냅니다. 또한 "이전에 만든 파일 읽기 코드와 비슷하게"라고 패턴을 참조하면, AI가 여러분의 의도를 정확히 이해하고 일관된 스타일로 코드를 생성해줍니다.

학습 목표:

  • 분해(Decomposition)의 개념과 실전 적용 방법 마스터하기
  • 패턴 인식(Pattern Recognition)의 원리와 활용법 체득하기
  • 일상 문제에서 분해와 패턴 발견하는 연습하기
  • GitHub Copilot에 분해된 문제를 효과적으로 전달하기
  • 패턴을 활용한 프롬프트 작성법 익히기
  • 실전 프로젝트를 통해 두 원리 통합 적용하기

분해(Decomposition): 큰 문제를 작은 문제로

분해란 무엇인가

분해는 복잡한 문제나 시스템을 더 작고 관리하기 쉬운 부분으로 나누는 과정입니다. 마치 큰 퍼즐을 작은 조각들로 나누듯이, 해결하기 어려운 큰 문제를 여러 개의 작은 문제로 분리하는 것이죠. 각각의 작은 문제는 독립적으로 해결할 수 있으며, 모든 작은 문제를 해결하면 전체 문제도 자연스럽게 해결됩니다.

왜 분해가 이렇게 중요할까요? 우리 두뇌는 한 번에 복잡한 문제 전체를 처리하는 데 어려움을 겪습니다. 하지만 작은 문제들은 쉽게 이해하고 해결할 수 있죠. 또한 분해된 문제는 여러 사람이 동시에 작업할 수 있고, 각 부분을 독립적으로 테스트하고 개선할 수 있습니다. 훨씬 효율적이고 체계적인 접근이 가능해지는 것입니다.

바이브 코딩에서 분해는 더욱 빛을 발합니다. AI에게 복잡한 전체 시스템을 한 번에 요청하면 제대로 된 결과를 얻기 어려울 수 있습니다. 하지만 작은 단위로 나누어 순차적으로 요청하면, 각 단계에서 완벽한 결과를 얻을 수 있고, 문제가 발생해도 쉽게 수정할 수 있습니다. 여러분의 의도를 AI가 정확히 이해할 수 있도록 도와주는 것이죠.

// 이미지로 교체되어야 함 : 복잡한 문제가 작은 조각들로 분해되는 과정 프롬프트: A visual metaphor of decomposition: left side shows a large complex tangled ball of colorful yarn, middle shows process of separating into individual strands (with scissors icon), right side shows neatly organized separate colored threads, clean infographic style, bright colors, educational illustration, white background

분해의 핵심 원칙

원칙 1: 의미 있는 단위로 나누기

분해할 때는 임의로 자르는 것이 아니라, 각 조각이 명확한 의미와 목적을 가져야 합니다.

나쁜 분해:
- 프로그램의 앞부분 만들기
- 프로그램의 뒷부분 만들기

좋은 분해:
- 사용자에게 정보 받기
- 받은 정보가 올바른지 확인하기
- 정보 처리하기
- 처리한 결과 저장하기
- 결과를 화면에 보여주기

원칙 2: 독립성 유지

각 조각은 가능한 한 다른 조각과 독립적으로 작동해야 합니다.

독립적 분해:
- 파일 읽기 → 독립적인 작업 부분
- 데이터 정제 → 독립적인 작업 부분
- 분석 수행 → 독립적인 작업 부분
- 결과 출력 → 독립적인 작업 부분

각각을 따로 테스트하고 수정 가능

원칙 3: 적절한 크기

너무 작게 나누면 오히려 복잡해지고, 너무 크면 분해의 이점이 없습니다.

너무 작음:
- 값을 담는 상자 만들기
- 값 넣기
- 값 화면에 보여주기

적절한 크기:
- 사용자 정보 입력받기
- 정보 검증하기
- 정보 저장소에 저장하기

너무 큼:
- 전체 시스템 구현

원칙 4: 계층적 분해

큰 조각을 작은 조각으로, 작은 조각을 더 작은 조각으로 계층적으로 분해할 수 있습니다.

레벨 1: 온라인 쇼핑몰
  ├─ 레벨 2: 상품 관리
  │    ├─ 레벨 3: 상품 등록
  │    ├─ 레벨 3: 상품 수정
  │    └─ 레벨 3: 상품 삭제
  ├─ 레벨 2: 주문 처리
  │    ├─ 레벨 3: 장바구니
  │    ├─ 레벨 3: 결제
  │    └─ 레벨 3: 배송
  └─ 레벨 2: 사용자 관리
       ├─ 레벨 3: 회원가입
       ├─ 레벨 3: 로그인
       └─ 레벨 3: 프로필 관리

분해의 실전 기법

기법 1: 기능별 분해

시스템이 제공하는 기능을 기준으로 분해합니다.

예시: 할일 관리 앱

기능 목록:
1. 할일 추가
2. 할일 목록 보기
3. 할일 완료 표시
4. 할일 삭제
5. 할일 수정
6. 마감일 설정
7. 우선순위 지정
8. 검색 기능

각 기능은 독립적으로 개발하고 테스트할 수 있습니다.

기법 2: 정보 흐름에 따른 분해

정보가 어떻게 흐르는지에 따라 단계를 나눕니다.

예시: 정보 분석 프로그램

정보 흐름:
입력 → 정리 → 분석 → 그래프로 만들기 → 출력

단계별 분해:
1. 엑셀이나 파일에서 정보 읽기
2. 빠진 정보 처리하기
3. 이상한 값 제거하기
4. 평균이나 합계 계산하기
5. 그래프 만들기
6. 보고서로 저장하기

기법 3: 사용자 시나리오 기반 분해

사용자가 시스템을 사용하는 시나리오를 따라 분해합니다.

예시: 로그인 시스템

시나리오: 사용자가 로그인한다

단계 분해:
1. 로그인 화면 보여주기
2. 사용자 이름 입력 받기
3. 비밀번호 입력 받기
4. 입력이 비어있지 않은지 확인하기
5. 저장된 정보에서 사용자 찾기
6. 비밀번호가 맞는지 확인하기
7. 로그인 성공 시 접속 상태 기억하기
8. 메인 화면으로 이동하기
9. 로그인 실패 시 오류 메시지 보여주기

기법 4: 계층별 분해

시스템을 여러 계층으로 나누어 각 계층을 독립적으로 분해합니다.

예시: 웹 프로그램

화면 부분
├─ 페이지 배치
├─ 입력 양식 디자인
└─ 결과 보여주기

처리 부분
├─ 입력 내용 확인하기
├─ 계산하기
└─ 규칙 적용하기

저장 부분
├─ 정보 보관함 연결하기
├─ 기본 작업들 (저장, 찾기, 수정, 삭제)
└─ 정보 형태 바꾸기

바이브 코딩에서 분해 활용하기

전략 1: 단계별 구현 요청

전체를 한 번에 요청하지 말고, 단계별로 나누어 요청합니다.

❌ 나쁜 요청:
"완전한 블로그 시스템을 만들어줘"

✅ 좋은 요청 (단계별):
1단계: "글 목록을 보여주는 페이지 만들어줘"
2단계: "개별 글을 볼 수 있는 상세 페이지 추가해줘"
3단계: "새 글 작성 기능 추가해줘"
4단계: "댓글 기능 추가해줘"

전략 2: 작업 단위 요청

큰 프로그램을 작업 단위로 나누어 각각 요청합니다.

Copilot에게:
"다음 작업들을 만들어줘:

1. read_csv_file(filename) 
   - CSV 파일을 읽어서 리스트로 반환

2. filter_data(data, condition)
   - 조건에 맞는 데이터만 필터링

3. calculate_average(data, column)
   - 특정 열의 평균 계산

4. save_results(data, filename)
   - 결과를 파일로 저장"

전략 3: 점진적 기능 추가

기본 기능부터 시작해서 점차 확장합니다.

1차: "숫자 두 개를 더하는 계산기"
2차: "빼기, 곱하기, 나누기도 추가해줘"
3차: "계산 히스토리 기능 추가해줘"
4차: "괄호 계산도 지원하게 해줘"

패턴 인식(Pattern Recognition): 반복되는 규칙 발견

패턴 인식이란 무엇인가

패턴 인식은 문제나 데이터에서 반복되는 특성, 규칙, 구조를 발견하는 능력입니다. 사실 여러분은 이미 일상생활에서 끊임없이 패턴을 인식하고 있습니다. 교통 신호등의 색상 패턴, 날씨의 계절적 패턴, 사람들의 행동 패턴 등이 그 예입니다. 자연스럽게 하고 있던 것이죠!

프로그래밍에서 패턴 인식은 두 가지 멋진 역할을 합니다. 첫째, 이미 해결한 문제와 유사한 새로운 문제를 발견하여 기존 솔루션을 재사용할 수 있습니다. 바퀴를 다시 발명할 필요가 없는 것이죠. 둘째, 반복되는 구조를 발견하여 코드를 간결하고 효율적으로 만들 수 있습니다.

바이브 코딩에서 패턴 인식은 AI와의 협업을 훨씬 더 효과적으로 만들어줍니다. "이전에 만든 X와 비슷한 Y를 만들어줘"라고 패턴을 참조하면, AI가 여러분의 의도를 정확히 이해하고 일관된 스타일과 구조로 코드를 생성합니다. 또한 반복되는 작업을 패턴으로 인식하면 자동화할 수 있어요. 지루한 반복 작업은 AI에게 맡기고, 여러분은 더 창의적인 일에 집중할 수 있습니다.

패턴의 종류

1. 구조적 패턴 (Structural Patterns)

데이터나 코드의 구조에서 반복되는 형태입니다.

예시: 학생 정보 관리

학생1 = {"이름": "김철수", "나이": 20, "학번": "2024001"}
학생2 = {"이름": "이영희", "나이": 21, "학번": "2024002"}
학생3 = {"이름": "박민수", "나이": 20, "학번": "2024003"}

패턴 발견: 모든 학생 정보는 같은 구조 (이름, 나이, 학번)
→ 이 패턴을 활용하여 학생 클래스나 함수 만들기

2. 행동 패턴 (Behavioral Patterns)

작업 수행 방식에서 반복되는 절차입니다.

예시: 파일 처리

PDF 파일 처리:
1. 파일 열기
2. 내용 읽기
3. 처리 수행
4. 파일 닫기

Excel 파일 처리:
1. 파일 열기
2. 내용 읽기
3. 처리 수행
4. 파일 닫기

패턴 발견: 파일 종류와 관계없이 절차 동일
→ 공통 함수로 추출 가능

3. 데이터 패턴 (Data Patterns)

데이터에서 발견되는 규칙이나 경향입니다.

예시: 판매 데이터

월요일: 판매량 적음
화요일: 판매량 적음
수요일: 판매량 보통
목요일: 판매량 보통
금요일: 판매량 많음
토요일: 판매량 매우 많음
일요일: 판매량 많음

패턴: 주말에 판매량 증가
→ 주말 할인 프로모션 자동화

4. 문제 해결 패턴 (Problem-Solving Patterns)

유사한 문제들이 공유하는 해결 방법입니다.

검색 문제:
- 파일 검색
- 데이터베이스 검색
- 웹 페이지 검색

공통 패턴:
1. 검색 조건 받기
2. 대상 탐색하기
3. 조건과 비교하기
4. 일치하는 결과 수집하기
5. 결과 반환하기

패턴 인식의 핵심 기법

기법 1: 유사성 찾기 (Similarity Detection)

서로 다른 것처럼 보이는 문제들 사이의 공통점을 발견합니다.

문제 A: 학생 성적 관리 시스템
문제 B: 직원 급여 관리 시스템

표면적 차이: 학생 vs 직원, 성적 vs 급여

패턴 (유사성):
- 사람 정보 저장
- 데이터 입력/수정/삭제
- 통계 계산
- 리포트 생성

→ 같은 구조 재사용 가능

기법 2: 반복 발견

같은 작업이 반복되는 것을 찾아냅니다.

예를 들어, 여러 학생의 정보를 화면에 보여줌 때 같은 형식이 계속 반복되는 것을 발견할 수 있습니다. 이럴 때는 반복되는 동일한 형식을 한 번만 설명하고, 그것을 여러 번 사용하도록 요청할 수 있습니다.

기법 3: 추세 파악 (Trend Analysis)

시간에 따라 변화하는 패턴을 발견합니다.

웹사이트 트래픽:

아침 7-9시: 접속 증가
점심 12-1시: 접속 감소  
저녁 7-10시: 접속 최대
심야 1-5시: 접속 최소

패턴: 생활 리듬과 연관된 주기적 변화
→ 시간대별 서버 자원 자동 조정

기법 4: 예외 인식 (Exception Recognition)

일반적인 패턴에서 벗어난 것을 찾습니다.

정상 패턴: 월 평균 판매량 100-150개
예외: 12월 판매량 500개

→ 특별한 이벤트 (크리스마스) 영향
→ 연말 특별 대응 전략 필요

바이브 코딩에서 패턴 활용하기

활용법 1: 이전 코드 참조

이미 만든 코드의 패턴을 새 코드에 적용합니다.

Copilot에게:
"이전에 만든 read_csv_file 함수와 비슷하게
read_excel_file 함수도 만들어줘"

→ Copilot이 일관된 구조로 생성

활용법 2: 반복 작업 자동화

반복되는 패턴을 발견하면 자동화를 요청합니다.

수동 작업:
- report_jan.pdf 생성
- report_feb.pdf 생성
- report_mar.pdf 생성

패턴 인식: 매월 같은 형식의 리포트

Copilot에게:
"매월 같은 형식의 리포트를 자동으로 생성하는
프로그램 만들어줘"

활용법 3: 일관성 유지

프로젝트 전체에서 일관된 패턴을 유지합니다.

예를 들어, 사용자 정보를 가져오는 기능을 만들었다면, 상품 정보를 가져오는 기능도 같은 방식으로 만들 수 있습니다. Copilot에게 "사용자 정보 가져오기와 같은 방식으로 상품 정보 가져오기 기능 만들어줘"라고 요청하면, 이름 짓기 방식, 구조, 설명 스타일이 모두 일관되게 만들어집니다.

활용법 4: 비슷한 문제 해결

비슷한 문제는 비슷한 방법으로 해결합니다.

이미 이메일 주소가 올바른지 확인하는 기능을 만들었다면, 전화번호가 올바른지 확인하는 기능도 같은 방식으로 만들 수 있습니다. Copilot에게 "이메일 확인 기능과 비슷한 구조로 전화번호 확인 기능 만들어줘"라고 요청하면, 같은 패턴이 적용됩니다.

패턴 라이브러리 만들기

여러분만의 패턴 모음을 만들어두면 정말 편리합니다. 마치 요리책처럼 자주 사용하는 레시피를 모아두는 것이죠!

나만의 패턴 컬렉션:

1. 파일 읽기 패턴
   - 오류가 나도 프로그램이 멈추지 않게 처리
   - 파일을 다 쓰면 자동으로 닫기
   - 한글이 깨지지 않게 설정

2. 데이터 검증 패턴
   - 빈 값 확인하기
   - 올바른 형태인지 확인
   - 허용 범위 안에 있는지 확인
   - 형식이 맞는지 확인

3. 목록 처리 패턴
   - 조건에 맞는 것만 걸러내기
   - 형태 바꾸기
   - 순서대로 정렬하기
   - 비슷한 것끼리 묶기

4. 사용자 입력 패턴
   - 사용자에게 입력 받기
   - 올바른 입력인지 검증하기
   - 잘못되면 다시 입력 요청하기
   - 입력하지 않으면 기본값 사용하기

Copilot에게 요청할 때 이 패턴들을 참조하면 일관되고 좋은 품질의 결과를 얻을 수 있습니다.


일상 생활 속 사례로 이해하기

사례 1: 저녁 식사 준비하기 - 분해의 실전

저녁 식사를 준비한다고 생각해봅시다. "저녁 식사 준비"라는 큰 작업을 어떻게 나누시나요? 여러분은 아마 이미 자연스럽게 분해하고 계실 거예요.

큰 문제: 가족 4인 저녁 식사 준비

분해 1단계 (주요 작업):

  1. 메뉴 정하기
  2. 재료 준비하기
  3. 조리하기
  4. 상 차리기

분해 2단계 (세부 작업):

메뉴 정하기:

  • 가족 기호 확인
  • 냉장고 재료 확인
  • 메뉴 3가지 후보 선정
  • 최종 메뉴 결정

재료 준비하기:

  • 부족한 재료 목록 작성
  • 마트 방문 또는 배달 주문
  • 재료 씻기
  • 재료 손질하기

조리하기:

  • 밥 짓기
  • 국 끓이기
  • 반찬 만들기
  • 메인 요리 조리

상 차리기:

  • 그릇 준비
  • 음식 담기
  • 수저 놓기
  • 물과 반찬 배치

이렇게 분해하면 어떤 장점이 있을까요?

장점 1: 명확성 각 단계가 무엇을 해야 하는지 명확합니다. "조리하기"만 생각하면 막막하지만, "밥 짓기"는 구체적이고 실행 가능하죠.

장점 2: 병렬 작업 가족 구성원이 함께 작업할 수 있습니다. 한 사람은 밥을 짓고, 다른 사람은 국을 끓이고, 또 다른 사람은 반찬을 만들 수 있어요.

장점 3: 진행 상황 파악 어디까지 했는지 쉽게 확인할 수 있습니다. 체크리스트처럼 하나씩 완료하면서 성취감도 느낄 수 있고요!

바이브 코딩에 적용:

Copilot에게:
"먼저 재료 목록을 입력받는 부분을 만들어줘"
→ 완성 확인

"이제 레시피를 검색하는 부분을 추가해줘"
→ 완성 확인

"마지막으로 조리 순서를 단계별로 보여주는 부분을 만들어줘"
→ 완성!

사례 2: 옷장 정리하기 - 패턴 인식의 실전

옷장을 정리할 때를 떠올려보세요. 여러분은 이미 훌륭한 패턴 인식 전문가입니다!

패턴 1: 계절별 분류

봄/가을 옷: 얇은 긴팔, 가디건, 바람막이
여름 옷: 반팔, 반바지, 원피스
겨울 옷: 두꺼운 외투, 패딩, 목도리

패턴 발견: 온도에 따라 옷이 분류됨
→ 이 패턴을 파일 정리에도 적용
  (자주 쓰는 파일 vs 보관용 파일)

패턴 2: 색상별 배치

흰색/베이지 → 왼쪽
파란색/검은색 → 가운데
빨간색/초록색 → 오른쪽

패턴 발견: 밝은 색 → 어두운 색 → 포인트 색
→ 이 패턴을 데이터 정리에도 적용
  (중요도별 정렬)

패턴 3: 사용 빈도

자주 입는 옷 (주 3회 이상) → 손 닿기 쉬운 곳
가끔 입는 옷 (월 1-2회) → 조금 안쪽
거의 안 입는 옷 → 맨 안쪽이나 보관함

패턴 발견: 사용 빈도에 따른 접근성
→ 이 패턴을 프로그램 메뉴 구성에도 적용
  (자주 쓰는 기능을 메인에 배치)

바이브 코딩에 적용:

Copilot에게:
"이메일을 중요도로 분류하는 프로그램을 만들어줘.
옷장 정리처럼 자주 확인하는 발신자, 가끔 확인하는 발신자,
거의 안 보는 발신자로 나눠줘"

→ Copilot이 패턴을 이해하고 적절히 구현

사례 3: 여행 계획 - 분해와 패턴 인식의 결합

제주도 3일 여행을 계획한다고 해봅시다. 이때 분해와 패턴 인식을 함께 사용하게 됩니다.

분해 적용:

레벨 1: 3일 여행
├─ 1일차
│  ├─ 오전: 공항 도착 및 렌터카
│  ├─ 점심: 해산물 맛집
│  ├─ 오후: 해변 관광
│  └─ 저녁: 숙소 체크인
├─ 2일차
│  ├─ 오전: 오름 등반
│  ├─ 점심: 흑돼지 맛집
│  ├─ 오후: 박물관
│  └─ 저녁: 야시장
└─ 3일차
   ├─ 오전: 쇼핑
   ├─ 점심: 국수 맛집
   └─ 오후: 공항 출발

패턴 인식 적용:

패턴 1: 매일의 구조
- 오전 활동 → 점심 → 오후 활동 → 저녁
→ 일관된 하루 패턴

패턴 2: 활동 분산
- 체력 소모 활동(오름) + 편한 활동(박물관) 균형
→ 피로도 관리 패턴

패턴 3: 식사 계획
- 각 끼니마다 다른 제주 대표 음식
→ 다양성 확보 패턴

바이브 코딩에 적용:

Copilot에게:
"여행 일정 관리 프로그램을 만들어줘.
각 날짜별로 오전/점심/오후/저녁 활동을 입력하고,
전체 일정을 보기 좋게 표시해줘.
활동 시간이 겹치면 경고를 표시하고,
하루 일정을 복사해서 다른 날에 붙여넣을 수도 있어야 해"

→ 분해된 구조와 패턴을 모두 활용

GitHub Copilot에 문제를 설명하는 기초

이제 분해와 패턴 인식을 실제로 GitHub Copilot과의 협업에 어떻게 적용하는지 배워봅시다.

효과적인 문제 분해 전달법

분해를 Copilot에게 전달할 때는 단순히 작은 조각으로 나누는 것을 넘어, 각 조각을 명확하게 설명해야 합니다. Copilot은 여러분의 의도를 정확히 이해할 때 가장 좋은 결과를 만들어냅니다.

원칙 1: 한 번에 하나씩

복잡한 프로그램을 만들 때 가장 흔한 실수는 모든 것을 한 번에 요청하는 것입니다. 예를 들어 "데이터를 읽고 분석하고 그래프로 만들고 보고서로 저장하는 프로그램"이라고 요청하면, Copilot은 어디서부터 시작해야 할지 막막해합니다.

대신 이렇게 나누어 요청해보세요:

  • 1단계: "엑셀이나 파일에서 정보를 읽어서 목록으로 만들어줘"
  • 2단계: "이제 이 정보에서 평균을 계산해줘"
  • 3단계: "계산한 평균을 막대 그래프로 그려줘"
  • 4단계: "그래프를 이미지 파일로 저장해줘"

각 단계가 완성되면 확인하고, 제대로 작동하는지 테스트한 후 다음 단계로 넘어갑니다. 이 방식의 장점은 명확합니다. 문제가 생기면 어느 단계에서 발생했는지 바로 알 수 있고, 각 단계마다 성취감을 느낄 수 있습니다.

원칙 2: 명확한 입력과 출력 정의

Copilot에게 무엇을 만들어달라고 할 때는 구체적일수록 좋습니다. "데이터 처리 프로그램"이라는 모호한 요청보다는 "엑셀 파일(input.xlsx)을 읽어서 '가격' 열의 평균을 계산하고 결과를 result.txt 파일에 저장해줘"라고 구체적으로 요청하세요.

입력이 무엇이고, 출력이 무엇인지 명확히 하면 Copilot이 여러분의 의도를 정확히 파악합니다. 파일 이름, 폴더 위치, 데이터 형식 같은 구체적인 정보를 제공할수록 원하는 결과에 가까운 프로그램이 만들어집니다.

원칙 3: 작은 성공을 쌓아가기

프로그래밍은 마라톤과 같습니다. 작은 성공을 하나씩 쌓아가면서 최종 목표에 도달하는 것이죠. 각 단계를 완성할 때마다 테스트하고 확인하세요.

예를 들어:

  • 단계 1: "사용자 이름을 입력받아서 인사말을 출력해줘" → 테스트: "안녕하세요, 철수님!" 출력 확인 ✓
  • 단계 2: "이제 나이도 입력받고, 성인인지 확인해줘" → 테스트: 나이에 따라 다른 메시지 출력 ✓
  • 단계 3: "입력 내용을 파일에 저장하는 기능 추가해줘" → 테스트: 파일 생성 확인 ✓

이렇게 하면 각 단계에서 무언가 잘못되더라도 이전 단계로 돌아갈 수 있고, 어디가 문제인지 쉽게 찾을 수 있습니다.

패턴을 활용한 요청 방법

패턴 인식은 Copilot과의 협업에서 특히 강력한 도구입니다. 이전에 만든 것을 참조하면 Copilot이 여러분의 스타일과 선호를 이해하고 일관된 결과를 만들어냅니다.

방법 1: 이전 작업 참조

이미 만든 기능을 참조하면 새로운 기능도 비슷한 방식으로 만들 수 있습니다. "아까 만든 파일 읽기 부분과 똑같은 방식으로 이미지 파일도 읽을 수 있게 해줘"라고 요청하면, Copilot은 여러분이 이미 사용한 패턴을 적용하여 일관된 구조로 새로운 기능을 만듭니다.

이 방법의 장점은 프로젝트 전체가 일관된 스타일을 유지한다는 것입니다. 나중에 프로그램을 수정하거나 개선할 때도 훨씬 쉽습니다.

방법 2: 비유와 유사 사례 제시

때로는 일상적인 비유를 사용하는 것이 더 효과적입니다. "학생 정보를 관리하는 프로그램을 만들어줘. 도서관 책 관리 프로그램처럼 추가/삭제/검색 기능이 필요해"라고 요청하면, Copilot은 익숙한 패턴을 새로운 맥락에 적용합니다.

이런 방식은 복잡한 기술 용어를 사용하지 않고도 원하는 것을 정확히 전달할 수 있게 해줍니다.

방법 3: 반복 구조 명시

반복되는 패턴이 있다면 Copilot에게 명확히 알려주세요. "월요일부터 금요일까지, 각 요일마다 같은 형식으로 데이터를 처리해줘. 요일 이름만 바뀌고 나머지는 동일해"라고 요청하면, Copilot이 패턴을 인식하고 자동으로 반복 구조를 만들어줍니다.

실전 팁: 좋은 요청 vs 아쉬운 요청

할일 관리 프로그램을 만든다고 가정해봅시다. 여러분이 Copilot에게 어떻게 요청하느냐에 따라 결과가 크게 달라집니다.

아쉬운 요청: "할일 앱 만들어줘"

이 요청은 너무 모호합니다. Copilot은 무엇을 만들어야 할지 정확히 알 수 없습니다. 할일 앱이라는 것이 무엇인지, 어떤 기능이 필요한지 구체적이지 않기 때문이죠.

좋은 요청: "할일 관리 프로그램을 만들어줘. 다음 기능이 필요해:

1단계:

  • 할일 제목을 입력받아서 목록에 추가
  • 목록에 있는 모든 할일 보여주기

완성되면 2단계 진행할게"

이 요청은 명확하고 단계적입니다. Copilot은 정확히 무엇을 만들어야 하는지 알 수 있고, 단계적으로 진행할 것임을 이해합니다.

더 좋은 요청: "할일 관리 프로그램을 만들어줘.

기본 정보:

  • 각 할일: 제목, 마감일, 중요도(높음/보통/낮음)
  • 정보는 파일로 저장 (프로그램 종료 후에도 유지)

1단계로 먼저:

  • 할일 추가하기 (제목과 마감일 입력)
  • 전체 목록 보기

예시: 입력: 제목='보고서 작성', 마감일='2024-12-01' 출력: ✓ 할일이 추가되었습니다.

이렇게 작동하면 돼"

이 요청은 구체적인 예시까지 제공합니다. Copilot은 데이터 구조, 저장 방식, 사용자 경험까지 정확히 이해하고 여러분이 원하는 프로그램을 만들 수 있습니다.

대화하듯 요청하기

Copilot과의 협업은 대화와 비슷합니다. 처음에는 기본적인 것을 요청하고, 결과를 보면서 점점 개선해나가는 것이죠.

"먼저 간단하게 이름만 입력받는 부분부터 만들어줘"로 시작해서, "좋아, 이제 나이도 추가해줘", "나이가 숫자인지 확인하는 기능도 넣어줘", "잘못 입력하면 다시 물어보게 해줘"처럼 점진적으로 발전시킬 수 있습니다.

이런 방식은 여러분이 원하는 것을 정확히 찾아가는 과정이기도 합니다. 처음부터 완벽한 계획을 세우기보다는, 만들어가면서 "아, 이것도 필요하구나", "이렇게 하면 더 좋겠다"를 발견하게 됩니다.


실습

이제 직접 해볼 시간입니다. 앞에서 배운 분해와 패턴 인식을 실제로 적용해봅시다. 이전 주차에서 배운 GitHub Copilot의 Agent 모드를 활용합니다. Agent 모드는 복잡한 작업을 자율적으로 수행해주므로, 단계별로 분해한 문제를 효과적으로 해결할 수 있습니다.

실습 준비:

  1. VS Code를 열고 새 폴더를 만듭니다
  2. Copilot Chat을 열어 Agent 모드로 전환합니다 (Ctrl+Alt+I → 모드에서 "Agent" 선택)

실습 1: 분해 연습 - 간단한 계산기

목표: 분해의 힘을 직접 체험하기

과제: 사칙연산 계산기를 단계별로 만들기

먼저 여러분이 직접 문제를 분해해보세요. 종이나 메모장에 다음을 적어봅시다:

1단계: 문제 분해하기

큰 문제: 계산기 프로그램

여러분이라면 어떻게 나누시겠어요? 잠시 생각해보고 적어보세요:

  1. ___________________________ (예: 숫자 두 개 입력받기)
  2. ___________________________ (예: 어떤 계산을 할지 선택하기)
  3. ___________________________ (예: 계산하기)
  4. ___________________________ (예: 결과 보여주기)

정답은 없습니다. 여러분이 생각한 방식이 곧 여러분만의 분해 방법입니다.

2단계: Agent 모드로 구현

이제 여러분이 나눈 첫 번째 단계만 Copilot Agent에게 요청해봅시다:

"계산기를 만들려고 해. 먼저 첫 번째 단계로, 사용자에게 숫자 두 개를 입력받는 프로그램을 만들어줘. 첫 번째 숫자와 두 번째 숫자를 각각 물어보고, 입력받은 값을 화면에 보여줘. Python으로 만들어줘."

Agent가 파일을 생성하고 코드를 작성하는 과정을 지켜보세요. 승인을 요청하면 내용을 확인하고 진행합니다.

3단계: 테스트하고 확인하기

Agent가 터미널에서 실행을 제안하면 승인합니다. 프로그램을 실행해보세요:

  • 숫자를 입력했을 때 제대로 받아지나요?
  • 화면에 입력한 값이 제대로 나타나나요?
  • 문자를 입력하면 어떻게 되나요?

이것이 바로 작은 성공입니다. 첫 번째 단계가 잘 작동하는 것을 확인했으니, 이제 다음 단계로 넘어갈 수 있습니다.

4단계: 같은 대화에서 다음 단계 추가

첫 번째 단계가 잘 작동한다면, 같은 대화에서 이어서 요청합니다:

"잘 작동하네! 이제 사용자에게 연산자도 입력받아줘. 더하기(+), 빼기(-), 곱하기(*), 나누기(/) 중 하나를 선택하게 해줘"

Agent는 이전에 만든 파일을 찾아서 자동으로 수정합니다.

5단계: 계속 발전시키기

여러분의 속도로 계속 기능을 추가해보세요:

  • 선택한 연산에 따라 계산하기
  • 계산 결과 보여주기
  • "다시 계산하시겠습니까?" 물어보기
  • 계산 기록을 파일에 저장하기

학습 포인트:

이 실습을 하면서 무엇을 느끼셨나요?

  • 작은 단계로 나누니 어떤가요? 덜 막막하지 않나요?
  • 각 단계마다 테스트하니 어떤가요? 문제를 빨리 찾을 수 있나요?
  • 한 번에 하나씩 완성하니 어떤가요? 성취감이 느껴지나요?

이것이 바로 분해의 힘입니다. 복잡해 보이는 계산기 프로그램도 하나씩 나누면 충분히 만들 수 있습니다.


실습 2: 패턴 인식 연습 - 할일 목록 앱

목표: 패턴을 찾고 활용하는 능력 키우기

과제: 할일을 추가하고 보여주는 간단한 프로그램 만들기

이번에는 패턴 인식에 집중해봅시다. 할일 관리는 매우 흔한 패턴입니다. 이전에 여러분이 사용해본 앱들을 떠올려보세요 - 메모장, 쇼핑 목록, 북마크 등. 모두 비슷한 패턴을 가지고 있습니다.

1단계: 패턴 찾기

다음 작업들의 공통 패턴을 찾아보세요:

  • 메모장: 메모 추가 → 목록 보기 → 메모 삭제
  • 쇼핑 목록: 물건 추가 → 목록 보기 → 체크 표시
  • 북마크: URL 추가 → 목록 보기 → 북마크 삭제

공통 패턴이 보이시나요? → 추가하기 → 목록 보기 → 관리하기

이 패턴을 할일 목록에도 적용할 수 있습니다!

2단계: GitHub Copilot에게 패턴 활용하여 요청하기

Copilot에게 이렇게 요청해보세요:

"할일 목록 프로그램을 만들어줘. 다음 패턴으로 작동해야 해:

  1. 할일 추가하기

    • 사용자가 할일 제목을 입력
    • 목록에 추가됨
  2. 목록 보기

    • 모든 할일을 번호와 함께 보여줌
  3. 완료 표시

    • 할일 번호를 입력하면 완료 표시

메모장이나 쇼핑 목록 앱처럼 간단하게 만들어줘. 먼저 1번(추가)과 2번(보기) 기능만 구현해줘."

3단계: 결과 확인하기

프로그램이 만들어지면 실행해보세요:

  • 할일을 몇 개 추가해봅니다
  • 목록이 제대로 보이는지 확인합니다
  • 여러 번 추가하고 확인하기를 반복합니다

4단계: 패턴 확장하기

기본이 잘 작동한다면, 패턴을 확장해봅시다:

"잘 작동해! 이제 3번 기능도 추가해줘. 할일 번호를 입력하면 그 할일 옆에 ✓ 표시가 나타나게 해줘."

5단계: 다른 영역에 패턴 적용하기 (도전 과제)

이 패턴은 다른 곳에도 적용할 수 있습니다. 예를 들어:

"아까 만든 할일 목록과 똑같은 구조로, 이번에는 독서 목록을 만들어줘.

  • 책 제목 추가
  • 목록 보기
  • 다 읽은 책 표시

할일 목록처럼 만들되, '할일' 대신 '책'으로 바꿔줘."

Copilot은 이전에 만든 패턴을 이해하고, 새로운 맥락에 적용할 것입니다.

학습 포인트:

패턴 인식을 활용하면: ✓ 이전 경험을 새로운 문제에 적용할 수 있습니다 ✓ 비슷한 것을 반복해서 만들 필요가 없습니다 ✓ Copilot이 여러분의 스타일을 이해하고 일관된 결과를 만듭니다


실습 3: 통합 실습 - 나만의 미니 프로젝트

목표: 분해와 패턴 인식을 함께 사용하기

지금까지 분해와 패턴 인식을 각각 연습했습니다. 이제 두 가지를 함께 사용하여 여러분만의 작은 프로젝트를 만들어보세요.

프로젝트 아이디어 (하나 선택):

  1. 간단한 가계부

    • 날짜별 지출 기록
    • 카테고리(식비, 교통비 등) 분류
    • 이번 달 총 지출 계산
  2. 운동 기록장

    • 날짜별 운동 기록
    • 운동 종류별 분류
    • 주간 통계 보기
  3. 일기장

    • 날짜별 일기 작성
    • 감정 태그 (기쁨, 슬픔, 보통)
    • 특정 날짜 검색

진행 방법:

  1. 문제 분해하기 (종이에 적기)

    • 어떤 기능이 필요한가?
    • 어떤 순서로 만들까?
    • 첫 번째 단계는 무엇인가?
  2. 패턴 찾기 (비슷한 것 떠올리기)

    • 이전에 만든 계산기나 할일 목록과 비슷한 점은?
    • 어떤 패턴을 재사용할 수 있을까?
  3. 첫 단계만 구현 (Copilot과 함께)

    • 가장 기본적인 기능 하나만 먼저 만들기
    • 예: 가계부라면 "지출 하나 기록하고 보여주기"만
  4. 테스트하기

    • 실행해서 작동하는지 확인
    • 문제가 있으면 Copilot에게 수정 요청
  5. 다음 단계 추가

    • 첫 단계가 잘 작동하면 기능 하나씩 추가
    • 매번 테스트하면서 진행
  6. 반복!

    • 작은 성공을 쌓아가며 완성

격려의 말:

완벽하지 않아도 괜찮습니다! 중요한 것은 시도하는 것이에요. 각 단계마다 조금씩 발전하는 것을 느끼실 거예요. 막히면 더 작게 나누어보세요. 항상 더 작은 단계가 있습니다!

시간 가이드:

  • 문제 분해 & 패턴 찾기: 5분
  • 첫 번째 기능 구현: 10분
  • 테스트 및 개선: 5분
  • 추가 기능: 여러분의 속도대로

완성 체크리스트:

  • 기본 기능이 작동합니다
  • 데이터를 추가할 수 있습니다
  • 데이터를 볼 수 있습니다
  • 여러 번 사용해도 잘 작동합니다

축하합니다! 여러분은 방금 분해와 패턴 인식을 활용하여 실제 프로그램을 만들었습니다.

실습 2: 패턴 인식 연습 - 파일 정리 도구

목표: 패턴을 찾고 활용하는 능력 기르기

상황: 다운로드 폴더에 여러 종류의 파일들이 섞여 있습니다.

1단계: 패턴 발견하기

실제로 여러분의 다운로드 폴더를 열어보세요. 어떤 파일들이 있나요? 종이에 적어봅시다:

  • 사진 파일들: _____________________ (예: 여행사진.jpg, 가족사진.png)
  • 문서 파일들: _____________________ (예: 이력서.pdf, 보고서.docx)
  • 기타 파일들: _____________________ (예: 영화.mp4, 노래.mp3)

어떤 패턴이 보이나요?

발견한 패턴:

  1. 파일 종류 패턴: 파일 끝에 붙는 확장자(.jpg, .pdf, .mp4 등)로 파일 종류를 알 수 있어요
  2. 이름 패턴: 비슷한 종류의 파일들은 이름도 비슷한 경우가 많아요 (예: 보고서_1월.pdf, 보고서_2월.pdf)
  3. 크기 패턴: 사진이나 동영상은 크기가 크고, 문서는 상대적으로 작아요

2단계: 패턴 기반 분류 규칙 만들기

발견한 패턴을 바탕으로 파일을 어떻게 정리할지 규칙을 만들어봅시다:

분류 규칙:
- .jpg, .png로 끝나는 파일 → 사진 폴더로
- .pdf, .docx로 끝나는 파일 → 문서 폴더로
- .mp4, .avi로 끝나는 파일 → 동영상 폴더로
- .mp3, .wav로 끝나는 파일 → 음악 폴더로
- 나머지 → 기타 폴더로

3단계: Copilot에게 패턴 설명하기

이제 Copilot에게 우리가 발견한 패턴을 설명해봅시다:

"파일 정리 프로그램을 만들어줘.

패턴:

  • 사진 파일(.jpg, .png)은 모두 'Pictures' 폴더로
  • 문서 파일(.pdf, .docx)은 모두 'Documents' 폴더로
  • 동영상 파일(.mp4)은 모두 'Videos' 폴더로

1단계로 먼저: 특정 폴더의 파일 목록을 보여주는 부분만 만들어줘"

4단계: 패턴 확장하기

프로그램이 작동하면 패턴을 확장해보세요. 이것이 바로 패턴 재사용입니다:

"이전에 만든 파일 분류 규칙에 추가로, 음악 파일(.mp3, .wav)도 'Music' 폴더로 보내줘"

Copilot은 이미 있는 패턴을 이해하고 있으므로, 새로운 규칙을 쉽게 추가할 수 있습니다.

5단계: 직접 실행해보기

실제로 테스트 폴더를 만들고 몇 개의 파일을 넣어서 프로그램이 제대로 작동하는지 확인해보세요. 파일들이 올바른 폴더로 이동하나요?

학습 포인트:

  • 패턴을 찾는 것이 생각보다 어렵지 않죠? 이미 우리 주변에 패턴이 가득합니다.
  • 한 번 만든 패턴을 확장하는 것이 처음부터 만드는 것보다 쉬웠나요?
  • Copilot에게 패턴을 설명할 때 구체적인 예시를 들면 더 잘 이해하나요?

실습 3: 종합 프로젝트 - 독서 기록장

목표: 분해와 패턴 인식을 함께 사용하여 실용적인 프로그램 만들기

프로젝트: 읽은 책을 기록하고 관리하는 프로그램

이번 실습은 여러분이 앞에서 배운 모든 것을 종합하는 시간입니다. 천천히, 단계적으로 진행해봅시다.

단계 1: 큰 그림 그리기 (분해)

먼저 종이에 독서 기록장 프로그램이 어떤 기능을 해야 하는지 그려봅시다:

독서 기록장 프로그램
│
├─ 책 정보 입력
│  ├─ 제목
│  ├─ 저자
│  ├─ 완독 날짜
│  └─ 별점 (1-5점)
│
├─ 기록 보기
│  ├─ 전체 목록
│  ├─ 별점순 정렬
│  └─ 최근 읽은 순
│
└─ 통계 보기
   ├─ 총 읽은 책 수
   ├─ 평균 별점
   └─ 가장 많이 읽은 저자

이렇게 나누니 훨씬 명확하죠? 각 부분을 하나씩 만들면 됩니다.

단계 2: 패턴 찾기

비슷한 프로그램을 생각해보세요. 음악 플레이리스트? 영화 감상 기록? 운동 기록? 모두 비슷한 패턴을 가지고 있습니다:

패턴: "항목 추가 → 목록 보기 → 통계"

이 패턴을 이해하면, 독서 기록장뿐만 아니라 다른 많은 프로그램도 만들 수 있습니다.

단계 3: 첫 번째 기능 구현

가장 기본이 되는 기능부터 시작합시다:

"독서 기록 프로그램을 만들 거예요.

첫 번째 단계:

  • 책 제목과 저자를 입력받기
  • 입력받은 정보를 화면에 보여주기

예시: 제목: 해리포터와 마법사의 돌 저자: J.K. 롤링

→ '해리포터와 마법사의 돌(J.K. 롤링)'이 기록되었습니다."

단계 4: 기능 확장

첫 번째 기능이 잘 작동하면 하나씩 추가해봅시다:

2단계: "여러 권의 책을 기록할 수 있게 목록으로 저장해줘" 3단계: "기록된 모든 책을 보기 좋게 출력해줘" 4단계: "별점(1-5점)도 입력받고 함께 저장해줘" 5단계: "평균 별점을 계산해서 보여줘"

각 단계마다 테스트하고, 잘 작동하는지 확인한 후 다음으로 넘어가세요.

도전 과제:

기본 기능이 완성되면 이런 것들도 추가해보세요:

  • 파일로 저장하기 (프로그램을 껐다 켜도 기록이 남아있게)
  • 특정 저자의 책만 찾아보기
  • 올해 읽은 책만 보기
  • 가장 높은 별점을 받은 책 추천하기

학습 포인트:

  • 처음에는 막막했지만, 나누고 나니 할 수 있겠다는 생각이 드나요?
  • 각 기능을 추가할 때마다 프로그램이 점점 완성되어가는 것이 보이나요?
  • 이전에 만든 기능의 패턴이 다음 기능을 만드는 데 도움이 되나요?

실습 4: 자유 프로젝트 - 여러분만의 도구 만들기

여러분이 정말 필요한 것을 만들어봅시다

이제 여러분이 주도하는 시간입니다. 일상에서 불편하거나 자동화하고 싶은 것이 있나요? 그것을 프로그램으로 만들어봅시다.

아이디어 예시:

  1. 가계부 도우미

    • 날짜별로 지출 내역 기록
    • 카테고리별 합계 (식비, 교통비, 여가비 등)
    • 이번 달과 지난 달 비교
  2. 운동 기록장

    • 매일 운동 종류와 시간 기록
    • 주간 총 운동 시간
    • 목표 달성률 표시
  3. 영단어 암기장

    • 단어와 뜻 저장
    • 랜덤으로 퀴즈 내기
    • 틀린 단어만 다시 보기
  4. 일기장

    • 날짜별 일기 작성
    • 감정 태그 (기쁨, 슬픔, 평온)
    • 특정 날짜 검색

진행 방법:

  1. 문제 분해하기

    • 종이에 프로그램의 기능을 나누어 적어보세요
    • 어떤 정보를 입력받고, 어떤 결과를 보여줄지 정리하세요
  2. 패턴 찾기

    • 비슷한 프로그램이나 경험을 떠올려보세요
    • 반복되는 작업이 있나요?
  3. 첫 단계만 구현

    • 가장 기본이 되는 기능 하나만 Copilot과 함께 만들어보세요
    • 완벽하지 않아도 괜찮아요
  4. 테스트하기

    • 만든 기능이 제대로 작동하나요?
    • 개선할 점은 무엇인가요?
  5. 다음 단계 추가

    • 한 번에 하나씩, 천천히 기능을 추가해보세요
  6. 반복!

    • 만들고, 테스트하고, 개선하는 과정을 반복하세요

실습 중 막힐 때 기억할 것:

  • 더 작게 나누어보세요. 항상 더 작은 단계가 있습니다.
  • Copilot에게 구체적으로 설명하세요. 예시를 함께 제공하면 더 좋습니다.
  • 완벽을 추구하지 마세요. 조금씩 개선해나가면 됩니다.
  • 중간중간 저장하고 테스트하세요.

여러분의 프로젝트를 적어보세요:

내가 만들고 싶은 프로그램: _____________________

필요한 기능들:




첫 번째로 만들 기능: _____________________


실습 결과 요약

오늘 배운 핵심 개념

분해(Decomposition)의 힘

여러분은 이제 복잡한 문제를 작은 조각으로 나누는 방법을 배웠습니다. 이것은 단순히 프로그래밍 기술이 아니라, 삶의 모든 영역에서 사용할 수 있는 강력한 사고 도구입니다.

기억하세요:

  • 큰 문제가 막막하게 느껴질 때는 더 작게 나누세요
  • 각 조각은 독립적으로 해결할 수 있어야 합니다
  • 작은 성공들이 모여 큰 성취가 됩니다

패턴 인식(Pattern Recognition)의 지혜

여러분은 이미 패턴 인식의 전문가였습니다! 일상에서 자연스럽게 사용하던 이 능력을 이제 프로그래밍에도 적용할 수 있게 되었어요.

기억하세요:

  • 비슷한 문제는 비슷한 방법으로 해결됩니다
  • 이전에 했던 것을 참조하면 시간이 절약됩니다
  • 패턴을 발견하는 것 자체가 즐거운 과정입니다

바이브 코딩에서의 적용

AI와 협업할 때:

  • 한 번에 하나씩 명확하게 요청하세요
  • 이전 작업을 참조하면 일관성 있는 결과를 얻습니다
  • 작은 단계로 나누면 AI가 더 정확하게 이해합니다

여러분의 성장

이번 챕터를 통해 여러분은:

개념적 이해

  • 분해의 4가지 핵심 원칙 숙지
  • 패턴의 4가지 종류 이해
  • 분해와 패턴 인식의 관계 파악

실전 능력

  • 일상 속에서 분해와 패턴 발견하기
  • Copilot에게 효과적으로 문제 전달하기
  • 단계적으로 프로그램 완성하기

마인드셋

  • 복잡한 문제도 나눌 수 있다는 자신감
  • 패턴을 찾는 즐거움
  • 작은 성공을 쌓아가는 인내심

다음 주 미리보기

5주차: 컴퓨팅 사고의 4대 원리 II - 추상화와 알고리즘적 사고

다음 주에는 나머지 두 원리를 함께 배웁니다:

추상화 (Abstraction)

  • 본질만 남기고 불필요한 것 제거하기
  • 복잡함 속에서 핵심 찾기
  • AI에게 "꼭 필요한 것"만 전달하기

알고리즘적 사고 (Algorithmic Thinking)

  • 단계별 해결 절차 만들기
  • 조건에 따른 선택 표현하기
  • 반복을 효율적으로 처리하기

준비 과제:

  1. 관찰 일기

    • 이번 주 동안 일상에서 분해와 패턴을 발견하면 메모하기
    • 예: "커피 만들기도 단계가 있네!", "이 문제는 저번과 비슷하네!"
  2. 실습 완성

    • 오늘 시작한 프로젝트 계속 발전시키기
    • 새로운 기능 하나씩 추가해보기
  3. 다음 주 준비

    • 복잡한 것을 간단히 설명하기 연습
    • 일상 작업의 절차를 글로 써보기

격려의 메시지

이번 주에 배운 분해와 패턴 인식은 컴퓨팅 사고의 기둥입니다. 이 두 가지만 잘 활용해도 대부분의 문제를 해결할 수 있어요.

완벽하지 않아도 괜찮습니다. 중요한 것은 계속 시도하고, 조금씩 나아지는 것이에요. 여러분이 만든 작은 프로그램 하나하나가 모두 소중한 학습의 증거입니다.

다음 주에도 함께 성장해요.