12주차: 바이브 코딩 프로젝트 I - 기획

개요

지난 두 주 복습: 실전 문제 해결

지난 10주차와 11주차에서 여러분은 중요한 경험을 했습니다. 10주차에서는 효과적인 프롬프트 작성법을 배웠고, Chat 창 하단에서 Agent 모드를 선택하여 복잡한 작업을 자율적으로 처리하는 방법을 익혔습니다. 11주차에서는 가계부 정리, 이메일 분류, 일정 관리 같은 실생활 문제들을 직접 해결해보았습니다.

특히 11주차에서 배운 문제 유형별 접근 패턴을 기억하시나요? 데이터 정리 문제, 반복 작업 자동화 문제, 일정 관리 문제 등 각 유형마다 효과적인 접근 방법이 있다는 것을 배웠습니다. 그리고 실제로 간단한 프로그램들을 GitHub Copilot과 함께 만들어보면서 "아, 정말 되네!"라는 확신을 얻었을 것입니다.

이제 여러분은 단편적인 연습을 넘어서, 안정적으로 작동하는 온전한 프로그램을 만들 준비가 되었습니다.

이번 주: 나만의 창조물 시작

드디어 여러분만의 바이브 코딩 프로젝트를 시작할 시간입니다. 지금까지 11주 동안 컴퓨팅 사고의 4대 원리를 배우고, GitHub Copilot과 협업하는 방법을 익히고, 실생활 문제를 해결하는 실습을 해왔습니다. 이제 그 모든 학습의 결실을 맺을 차례입니다.

이번 주차는 프로젝트의 '기획' 단계입니다. 좋은 프로젝트는 좋은 기획에서 시작됩니다. 명확한 목표, 구체적인 계획, 현실적인 범위 설정이 있어야 성공적으로 완성할 수 있습니다. 바이브 코딩 프로젝트도 마찬가지입니다. 무작정 GitHub Copilot에게 "뭔가 만들어줘"라고 하는 것이 아니라, 무엇을 왜 만들 것인지, 어떻게 접근할 것인지를 먼저 생각해야 합니다.

기획이라고 하면 복잡하고 어렵게 느껴질 수 있습니다. 하지만 걱정하지 마세요. 여러분은 이미 기획에 필요한 모든 도구를 가지고 있습니다. 바로 컴퓨팅 사고의 4대 원리입니다. 문제를 분해하고, 패턴을 찾고, 핵심에 집중하고, 단계를 정리하는 것. 이것이 바로 기획의 본질입니다.

이번 주차의 학습 목표:

  • 의미 있고 실현 가능한 프로젝트 주제를 선정하기
  • 문제를 명확하게 정의하고 분석하기
  • 4대 원리를 적용하여 프로젝트를 체계적으로 설계하기
  • GitHub Copilot 활용 전략을 구체적으로 수립하기
  • 다음 주차 개발을 위한 명확한 로드맵 만들기

좋은 프로젝트 주제란 무엇인가

프로젝트의 성공은 주제 선정에서 절반이 결정됩니다. 너무 쉬운 주제는 배움이 없고, 너무 어려운 주제는 완성하지 못할 수 있습니다. 너무 개인적인 주제는 다른 사람과 공유하기 어렵고, 너무 일반적인 주제는 여러분만의 특색이 없을 수 있습니다.

그렇다면 좋은 프로젝트 주제는 무엇일까요? 몇 가지 기준으로 살펴보겠습니다.

실제로 필요한 것

가장 중요한 기준은 "이것이 정말 필요한가?"입니다. 여러분 자신이나 주변 사람들이 실제로 사용할 수 있는, 진짜 문제를 해결하는 프로젝트가 가장 좋습니다.

"멋져 보이지만 쓸 데가 없는" 프로젝트보다는 "소박하지만 매일 쓰는" 프로젝트가 훨씬 가치 있습니다. 완성한 후에도 계속 사용하고, 개선해나갈 동기가 생기기 때문입니다.

예를 들어봅시다. "인공지능 챗봇"은 멋져 보이지만, 구체적으로 무엇을 하는 챗봇인지 불명확합니다. 반면 "우리 가족 일정을 관리하고 중요한 일을 미리 알려주는 도우미"는 훨씬 구체적이고 실용적입니다. 후자가 더 좋은 프로젝트 주제입니다.

여러분의 일상을 돌아보세요. 매일 반복되는 귀찮은 일이 있나요? 정리하고 싶지만 시간이 없어서 미루는 일이 있나요? 수동으로 하기엔 번거롭지만 꼭 필요한 일이 있나요? 그것이 바로 좋은 프로젝트 주제의 씨앗입니다.

2주 안에 완성할 수 있는 것

이 과정에서 프로젝트를 기획하고 개발하는 데 주어진 시간은 2주입니다. 따라서 현실적으로 완성 가능한 범위여야 합니다.

"완벽한 가계부 앱"보다는 "이달 지출을 카테고리별로 정리하고 시각화하는 도구"처럼 범위를 명확히 한정하는 것이 좋습니다. 핵심 기능 하나를 제대로 완성하는 것이, 여러 기능을 중도반단하는 것보다 낫습니다.

프로젝트 범위를 판단할 때는 이렇게 생각해보세요:

  • 이 프로젝트를 작은 단계로 나누면 몇 단계일까?
  • 각 단계는 얼마나 걸릴까?
  • 예상치 못한 문제가 생기면 어떻게 할까?

너무 야심찬 계획보다는, 확실히 완성할 수 있는 계획을 세우고, 시간이 남으면 기능을 추가하는 것이 현명합니다.

바이브 코딩으로 접근할 수 있는 것

모든 문제가 바이브 코딩에 적합한 것은 아닙니다. 11주차에서 배웠듯이, 명확한 규칙이 있고, 데이터를 다루며, 반복적인 작업이 포함된 문제가 바이브 코딩에 적합합니다.

예를 들어:

  • 적합한 주제: "매달 받는 신용카드 명세서 PDF에서 주요 정보를 추출하여 표로 정리"
  • 덜 적합한 주제: "감동적인 시 쓰기"

후자는 창의성과 감성이 중요하므로 AI가 보조할 수는 있어도 완전히 대체하기는 어렵습니다. 전자는 규칙이 명확하고 반복 가능하므로 바이브 코딩에 이상적입니다.

여러분의 프로젝트 아이디어가 바이브 코딩에 적합한지 확인하려면:

  • 이 작업의 규칙을 말로 설명할 수 있는가?
  • 같은 작업을 여러 번 해야 하는가?
  • 데이터나 정보를 처리하는 것이 포함되는가?
  • 결과가 명확하게 정의되는가?

이 질문들에 "예"라고 답할 수 있다면, 바이브 코딩으로 잘 접근할 수 있는 주제입니다.

확장 가능성이 있는 것

처음에는 간단하게 시작하되, 나중에 더 발전시킬 여지가 있는 주제가 좋습니다. 기본 기능을 완성한 후, "이런 것도 추가하면 좋겠네" 싶은 아이디어가 자연스럽게 떠오르는 프로젝트가 이상적입니다.

예를 들어 "독서 목록 관리 도구"를 만든다면:

  • 1단계: 책 제목과 저자를 기록하고 목록으로 보기
  • 2단계: 읽은 책과 읽을 책 구분하기
  • 3단계: 장르별로 분류하기
  • 4단계: 독서 통계 보기 (월별 독서량 등)
  • 5단계: 책 추천 받기

이렇게 단계적으로 확장할 수 있습니다. 1단계만 완성해도 의미가 있지만, 시간이 더 있다면 2, 3단계로 발전시킬 수 있습니다.

다른 사람과 공유할 가치가 있는 것

이 과정의 마지막 주차에는 프로젝트를 발표하고 공유하는 시간이 있습니다. 여러분의 프로젝트가 다른 사람에게도 영감을 줄 수 있다면 더욱 좋습니다.

"나만 쓸 수 있는 것"보다는 "다른 사람도 비슷하게 응용할 수 있는 것"이 좋습니다. 여러분이 회사 업무를 위한 도구를 만들었다면, 학생이나 프리랜서도 같은 방법으로 자신의 도구를 만들 수 있을까요? 그렇다면 좋은 프로젝트입니다.

공유 가치를 판단하는 질문:

  • 다른 사람들도 비슷한 문제를 겪을까?
  • 내가 사용한 방법을 다른 상황에도 적용할 수 있을까?
  • 이 프로젝트를 보면 다른 사람들도 "나도 할 수 있겠다"고 생각할까?

프로젝트 주제 선정하기

이제 실제로 여러분의 프로젝트 주제를 정해봅시다. 이것은 매우 개인적인 선택이지만, 체계적으로 접근하면 더 좋은 결정을 할 수 있습니다.

아이디어 브레인스토밍

먼저 떠오르는 모든 아이디어를 적어보세요. 이 단계에서는 평가하지 말고, 가능한 많이 적는 것이 중요합니다. 좋은 아이디어, 나쁜 아이디어, 현실적인 아이디어, 비현실적인 아이디어 모두 환영입니다.

브레인스토밍 질문:

  • 매일 하는 일 중에서 자동화하고 싶은 것은?
  • 정리하고 싶지만 귀찮아서 미루고 있는 것은?
  • 주변 사람들이 자주 하는 불평은 무엇인가?
  • 취미 생활에서 불편한 점은?
  • 학교나 직장에서 반복적으로 하는 일은?

예를 들어 이런 아이디어들이 나올 수 있습니다:

  • 이메일에서 중요한 정보만 추출해서 정리
  • 운동 기록을 주간별로 요약
  • 요리 레시피를 재료별로 검색할 수 있게 정리
  • 여행 사진을 장소별로 자동 분류
  • 월별 지출 내역을 분석해서 리포트 생성
  • 읽고 싶은 책 목록을 우선순위별로 정리
  • 회의록을 자동으로 요약해서 할 일 목록 생성
  • 음악 플레이리스트를 분위기별로 재구성
  • 학습 진도를 추적하고 복습 알림 생성

10~15개 정도의 아이디어를 적어보세요. 처음 몇 개는 금방 떠오르지만, 그 이후가 중요합니다. 조금 더 생각해야 나오는 아이디어들이 오히려 더 독창적일 수 있습니다.

아이디어 평가하기

이제 적어둔 아이디어들을 평가해봅시다. 각 아이디어에 대해 다음 질문에 답해보세요:

필요성: 이것이 정말 필요한가? (1~5점)

  • 5점: 매우 필요함, 당장 있으면 매일 쓸 것 같음
  • 3점: 있으면 좋음, 가끔 쓸 것 같음
  • 1점: 그냥 재미있을 것 같음

실현 가능성: 2주 안에 완성할 수 있을까? (1~5점)

  • 5점: 매우 현실적임, 충분히 가능함
  • 3점: 도전적이지만 가능할 것 같음
  • 1점: 너무 복잡함, 완성하기 어려울 것 같음

바이브 코딩 적합성: 바이브 코딩으로 잘 접근할 수 있을까? (1~5점)

  • 5점: 규칙이 명확하고 반복 작업이 많음
  • 3점: 일부는 바이브 코딩으로 가능함
  • 1점: 창의적 판단이 많이 필요함

학습 가치: 이 프로젝트를 하면서 많이 배울 수 있을까? (1~5점)

  • 5점: 새로운 것을 많이 배울 수 있음
  • 3점: 적당히 배울 것이 있음
  • 1점: 이미 아는 것의 반복

각 아이디어의 점수를 합산해보세요. 15점 이상인 아이디어들이 좋은 후보입니다. 그 중에서 가장 점수가 높은 2~3개를 최종 후보로 선택하세요.

최종 주제 결정하기

최종 후보 2~3개 중에서 하나를 선택해야 합니다. 점수가 가장 높은 것을 선택하는 것이 합리적이지만, 여러분의 직감도 중요합니다.

이렇게 자문해보세요:

  • 이 프로젝트를 완성한 모습을 상상하면 기분이 좋은가?
  • 작업하는 과정이 즐거울 것 같은가?
  • 완성 후에도 계속 사용하고 개선하고 싶은가?

마음이 끌리는 주제를 선택하세요. 열정이 있어야 끝까지 완성할 수 있습니다. 점수가 조금 낮더라도, 정말 하고 싶은 것을 선택하는 것이 좋습니다.

최종 주제를 한 문장으로 명확하게 적어보세요:

"나는 [누구를 위해] [어떤 문제를 해결하는] [무엇]을 만들 것이다."

예시:

  • "나는 가계부를 쓰는 나 자신을 위해 월별 지출 패턴을 한눈에 보여주는 분석 도구를 만들 것이다."
  • "나는 독서를 좋아하는 사람들을 위해 읽을 책 목록을 관리하고 추천해주는 시스템을 만들 것이다."
  • "나는 프리랜서인 나 자신을 위해 프로젝트별 작업 시간을 추적하고 정산서를 자동 생성하는 도구를 만들 것이다."

이 한 문장이 여러분 프로젝트의 나침반이 됩니다. 작업하다가 방향을 잃으면, 이 문장으로 돌아오세요.

문제 정의 및 분석

주제를 선정했다면, 이제 문제를 명확하게 정의하고 분석해야 합니다. 여기서 컴퓨팅 사고의 4대 원리가 다시 등장합니다.

문제를 명확하게 정의하기

"지출을 정리하고 싶다"는 막연한 바람을 구체적인 문제로 만들어야 합니다.

현재 상황:

  • 지금 무엇이 문제인가요?
  • 왜 이것이 불편한가요?
  • 이 문제로 인해 어떤 어려움을 겪고 있나요?

예를 들어: "매달 신용카드 명세서를 받지만, PDF 파일이라서 분석하기 어렵다. 어디에 돈을 많이 썼는지 한눈에 보기 어렵고, 월별 비교도 할 수 없다. 엑셀로 옮겨 적으려니 시간도 오래 걸리고 실수도 많다."

원하는 상태:

  • 이 프로젝트가 완성되면 어떻게 달라지나요?
  • 무엇을 할 수 있게 되나요?
  • 얼마나 더 편해지나요?

예를 들어: "신용카드 PDF를 넣으면 자동으로 카테고리별로 정리되고, 지난달과 비교해서 어느 부분이 늘었는지 줄었는지 보여준다. 클릭 몇 번으로 월별 리포트가 만들어진다."

성공 기준:

  • 어떻게 되면 '성공'인가요?
  • 최소한 어느 정도는 되어야 하나요?
  • 완벽하지 않아도 쓸만하려면 어떤 기능이 꼭 있어야 하나요?

예를 들어: "최소한 카테고리별 합계는 자동으로 계산되어야 한다. 수동으로 분류를 수정할 수 있어야 한다. 결과를 표나 그래프로 볼 수 있어야 한다."

이렇게 현재 상황, 원하는 상태, 성공 기준을 명확히 하면 프로젝트의 윤곽이 잡힙니다.

4대 원리로 문제 분석하기

이제 컴퓨팅 사고의 4대 원리를 적용하여 문제를 체계적으로 분석해봅시다.

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

프로젝트를 작은 단계들로 나눕니다. 각 단계는 독립적으로 해결할 수 있어야 하고, 순서가 있어야 합니다.

예를 들어 "신용카드 명세서 분석 도구"를 분해하면:

  1. PDF 파일 읽기
  2. 거래 내역 추출하기
  3. 각 거래를 카테고리로 분류하기
  4. 카테고리별 합계 계산하기
  5. 결과를 표로 정리하기
  6. 그래프로 시각화하기

각 단계를 더 세분화할 수도 있습니다. 예를 들어 "카테고리로 분류하기"는:

  • 분류 규칙 정의하기
  • 각 거래 내역에서 키워드 찾기
  • 키워드에 따라 카테고리 배정하기
  • 애매한 경우 수동 분류할 수 있게 하기

이렇게 나누면 복잡해 보이던 프로젝트가 훨씬 관리 가능해 보입니다.

여러분의 프로젝트를 5~10개 정도의 주요 단계로 나누어보세요.

패턴 인식(Pattern Recognition): 반복되는 규칙 찾기

프로젝트에서 반복되는 패턴이나 규칙을 찾습니다. 이것은 GitHub Copilot에게 명확하게 설명할 수 있는 부분입니다.

신용카드 명세서 예시에서:

  • 모든 거래 내역은 "날짜 + 상호 + 금액" 형식
  • 특정 상호는 항상 같은 카테고리 (예: "스타벅스" = 식비)
  • 금액이 크면 중요도가 높음
  • 매달 같은 시기에 나오는 거래는 고정 지출

이런 패턴을 찾으면:

  • 자동화할 부분이 명확해짐
  • GitHub Copilot에게 규칙을 설명하기 쉬워짐
  • 예외 상황도 미리 파악할 수 있음

여러분의 프로젝트에서 반복되는 패턴이나 규칙을 3~5가지 찾아보세요.

추상화(Abstraction): 핵심만 남기기

모든 세부사항을 다 구현하려 하지 말고, 핵심 기능에 집중합니다.

신용카드 분석 도구에서:

  • 핵심: 카테고리별 지출 금액을 보여주기
  • 부가적: 예쁜 디자인, 애니메이션, 모바일 앱

처음에는 핵심만 구현하고, 시간이 남으면 부가 기능을 추가하는 것이 현명합니다.

또한 완벽함을 추구하지 마세요:

  • 100% 자동 분류가 아니라 80% 자동 + 20% 수동도 충분히 유용
  • 모든 PDF가 아니라 특정 은행의 PDF만 지원해도 괜찮음
  • 완벽한 그래프가 아니라 간단한 표만 있어도 시작은 됨

여러분의 프로젝트에서 꼭 필요한 핵심 기능 3가지를 선정하세요.

알고리즘적 사고(Algorithmic Thinking): 단계별 절차 정리

각 기능을 어떤 순서로 구현할지 정리합니다.

신용카드 분석 도구의 알고리즘:

1. 사용자가 PDF 파일을 선택한다
2. PDF에서 텍스트를 추출한다
3. 각 줄을 읽으면서 거래 내역을 찾는다
4. 각 거래 내역에서 날짜, 상호, 금액을 분리한다
5. 상호 이름에서 키워드를 찾는다
6. 키워드에 따라 카테고리를 배정한다
7. 같은 카테고리끼리 묶는다
8. 각 카테고리의 금액을 합산한다
9. 결과를 표로 만든다
10. 표를 화면에 보여준다

이렇게 정리하면 GitHub Copilot에게 단계별로 요청하기 쉬워집니다.

여러분의 프로젝트를 10~15 단계의 알고리즘으로 정리해보세요.

GitHub Copilot 활용 전략 수립

프로젝트를 분석했다면, 이제 GitHub Copilot을 어떻게 활용할지 전략을 세워야 합니다.

단계별 협업 계획

어느 단계를 GitHub Copilot과 함께 할지, 어느 단계는 직접 할지 정합니다.

GitHub Copilot이 잘하는 것:

  • 파일 읽기/쓰기
  • 데이터 변환 및 처리
  • 정렬, 필터링, 집계
  • 패턴 매칭 및 검색
  • 표나 그래프 생성

여러분이 해야 할 것:

  • 분류 규칙 정의
  • 예외 상황 판단
  • 결과 검증
  • 사용자 경험 결정

예를 들어 신용카드 분석 도구에서:

  • PDF 읽기 → GitHub Copilot
  • 거래 내역 추출 → GitHub Copilot
  • 카테고리 규칙 정의 → 본인
  • 규칙에 따라 분류 → GitHub Copilot
  • 분류 결과 확인 → 본인
  • 합계 계산 → GitHub Copilot
  • 표 형식 결정 → 본인
  • 표 생성 → GitHub Copilot

이렇게 역할을 나누면 효율적으로 협업할 수 있습니다.

프롬프트 전략

각 단계마다 GitHub Copilot에게 어떻게 요청할지 미리 생각해둡니다.

좋은 프롬프트의 요소:

  1. 맥락 설명: "신용카드 PDF 파일을 분석하는 프로젝트를 하고 있어"
  2. 구체적 요청: "PDF에서 거래 내역만 추출하고 싶어"
  3. 데이터 형식: "각 거래는 날짜, 상호, 금액으로 구성되어 있어"
  4. 예상 결과: "결과는 리스트 형태로, 각 항목이 딕셔너리면 좋겠어"
  5. 제약 조건: "빈 줄이나 헤더는 제외해줘"

단계별 프롬프트 예시:

1단계: PDF 읽기 "PDF 파일에서 텍스트를 추출하고 싶어. 파일 경로를 입력하면 모든 텍스트를 문자열로 반환해줘."

2단계: 거래 내역 찾기 "추출된 텍스트에서 거래 내역만 찾고 싶어. 각 거래는 'MM/DD 상호명 금액' 형식이야. 이것만 골라서 리스트로 만들어줘."

3단계: 데이터 구조화 "각 거래 내역 문자열을 날짜, 상호, 금액으로 분리해서 딕셔너리로 만들어줘. 금액은 숫자로 변환해야 해."

이런 식으로 미리 프롬프트를 준비하면, 실제 작업할 때 막히지 않습니다.

테스트 데이터 준비

실제 데이터로 바로 시작하기보다는, 작은 테스트 데이터로 먼저 시도하는 것이 좋습니다.

신용카드 분석 도구라면:

  • 실제 PDF가 아니라, 거래 내역 5~10개만 담긴 샘플 파일
  • 다양한 카테고리를 포함
  • 애매한 경우도 포함 (어느 카테고리에 넣어야 할지 불분명한 거래)

테스트 데이터로 성공하면, 실제 데이터에도 적용하는 것이 안전합니다.

여러분의 프로젝트를 위한 작은 테스트 데이터를 준비하세요.

예상 문제와 대비책

프로젝트를 진행하다 보면 예상치 못한 문제가 생길 수 있습니다. 미리 생각해보고 대비하세요.

흔한 문제들:

문제 1: 데이터 형식이 생각과 다름

  • 대비책: 실제 데이터를 미리 확인하고, 다양한 형식에 대응할 수 있게 유연하게 설계

문제 2: 자동 분류 정확도가 낮음

  • 대비책: 수동으로 수정할 수 있는 기능 추가, 분류 규칙을 쉽게 조정할 수 있게 만들기

문제 3: 생각보다 시간이 오래 걸림

  • 대비책: 핵심 기능만 우선 완성하고, 부가 기능은 시간이 남으면 추가

문제 4: GitHub Copilot이 원하는 대로 작동하지 않음

  • 대비책: 다른 방식으로 요청하거나, 단계를 더 작게 나누기

여러분의 프로젝트에서 예상되는 문제 3가지와 대비책을 적어보세요.

프로젝트 기획서 작성하기

지금까지 생각한 내용을 정리하여 프로젝트 기획서를 작성해봅시다. 이것은 다음 주차 개발의 로드맵이 됩니다.

기획서 구성 요소

1. 프로젝트 개요

  • 프로젝트 이름
  • 한 문장 설명
  • 해결하려는 문제
  • 기대 효과

2. 주요 기능

  • 핵심 기능 3가지 (반드시 구현)
  • 부가 기능 2~3가지 (시간이 허락하면 구현)

3. 개발 계획

  • 단계별 작업 목록
  • 각 단계의 예상 소요 시간
  • 우선순위

4. GitHub Copilot 활용 계획

  • 각 단계에서 GitHub Copilot에게 요청할 내용
  • 예상 프롬프트
  • 본인이 직접 할 부분

5. 테스트 계획

  • 테스트 데이터
  • 성공 기준
  • 검증 방법

6. 위험 요소 및 대비책

  • 예상되는 문제
  • 대안
  • 최소 목표 (최악의 경우라도 이것만은 완성)

기획서 예시

실제로 어떻게 작성하는지 예시를 보겠습니다.


프로젝트 기획서: 독서 목록 관리 도구

1. 프로젝트 개요

  • 프로젝트 이름: BookTracker
  • 한 문장 설명: 읽을 책과 읽은 책을 관리하고, 독서 통계를 보여주는 도구
  • 해결하려는 문제:
    • 읽고 싶은 책을 메모해두지만 흩어져서 관리하기 어려움
    • 한 해 동안 얼마나 읽었는지 파악하기 어려움
    • 이미 읽은 책을 다시 사려고 하는 실수를 가끔 함
  • 기대 효과:
    • 모든 독서 기록이 한곳에 정리됨
    • 월별/장르별 독서 통계를 볼 수 있음
    • 읽을 책 목록을 우선순위별로 관리 가능

2. 주요 기능

핵심 기능 (반드시 구현):

  1. 책 추가/수정/삭제
  2. 읽음/읽는중/읽을 예정 상태 관리
  3. 장르별 분류 및 목록 보기

부가 기능 (시간이 허락하면):

  1. 월별 독서 통계 (권수, 페이지 수)
  2. 장르별 통계 그래프
  3. 읽을 책 우선순위 설정

3. 개발 계획

1주차 (1~3일):

  • 책 데이터를 저장할 구조 설계 (1시간)
  • 책 추가 기능 구현 (2시간)
  • 책 목록 보기 기능 구현 (2시간)

1주차 (4~7일):

  • 상태 변경 기능 (읽음/읽는중/읽을예정) (2시간)
  • 장르별 필터링 기능 (2시간)
  • 기본 기능 테스트 및 수정 (2시간)

2주차:

  • 통계 기능 (시간이 허락하면) (3시간)
  • 최종 테스트 및 개선 (2시간)
  • 문서 작성 및 발표 준비 (2시간)

4. GitHub Copilot 활용 계획

데이터 저장:

  • 프롬프트: "책 정보를 JSON 파일로 저장하고 불러오는 기능을 만들고 싶어. 각 책은 제목, 저자, 장르, 상태, 읽은 날짜 정보를 가지고 있어."

책 추가:

  • 프롬프트: "사용자에게 책 제목, 저자, 장르를 입력받아서 JSON 파일에 추가해줘. 상태는 기본적으로 '읽을 예정'으로 설정하고."

목록 보기:

  • 프롬프트: "JSON 파일의 모든 책을 표 형식으로 보여줘. 제목, 저자, 장르, 상태를 컬럼으로 하고, 상태별로 구분해서 보여주면 좋겠어."

통계:

  • 프롬프트: "읽은 책들을 월별로 집계해서 각 월에 몇 권을 읽었는지 보여줘. 막대 그래프로 시각화할 수 있으면 좋겠어."

5. 테스트 계획

테스트 데이터:

  • 책 10권 정도 (다양한 장르, 다양한 상태)
  • 실제로 내가 읽은 책과 읽을 책 포함

성공 기준:

  • 책을 추가하면 목록에 정확히 표시됨
  • 상태를 변경하면 즉시 반영됨
  • 장르별 필터링이 정확하게 작동함
  • 데이터가 파일에 저장되고 다시 실행해도 유지됨

검증 방법:

  • 각 기능을 직접 사용해보며 테스트
  • 10권의 테스트 데이터로 모든 기능 확인
  • 예외 상황 테스트 (같은 책 중복 추가, 빈 값 입력 등)

6. 위험 요소 및 대비책

위험 1: JSON 파일 처리가 복잡할 수 있음

  • 대비책: 처음에는 CSV 같은 더 간단한 형식 사용, 나중에 JSON으로 변경

위험 2: 통계 기능이 생각보다 어려울 수 있음

  • 대비책: 통계는 선택 사항으로 두고, 기본 기능 먼저 완성

위험 3: 시간이 부족할 수 있음

  • 대비책: 최소 목표는 "책 추가/목록 보기/상태 변경"만 구현. 이것만 되어도 충분히 유용함

이런 식으로 기획서를 작성하면, 다음 주차에 무엇을 해야 할지 명확해집니다.

여러분도 이 형식을 참고하여 자신의 프로젝트 기획서를 작성해보세요.

성공적인 프로젝트를 위한 추가 팁

기획서를 작성했다면, 이제 실제 개발을 앞두고 있습니다. 성공 확률을 높이기 위한 몇 가지 실용적인 팁을 공유합니다.

작게 시작하고 점진적으로 확장하기

많은 사람들이 처음부터 완벽한 프로젝트를 만들려고 합니다. 하지만 경험상, 작은 버전을 먼저 완성하고 점진적으로 개선하는 것이 훨씬 효과적입니다.

최소 실행 가능 버전(MVP) 개념:

첫 번째 목표는 "최소한으로 작동하는 버전"을 만드는 것입니다. 모든 기능이 없어도 괜찮습니다. 핵심 기능 하나만 제대로 작동하면 됩니다.

예를 들어 독서 목록 관리 도구라면:

  • 버전 0.1: 책 제목을 입력하면 목록에 추가되고, 목록을 볼 수 있음 (그게 전부)
  • 버전 0.2: 읽음/안 읽음 표시 추가
  • 버전 0.3: 장르별 분류 추가
  • 버전 0.4: 통계 기능 추가

버전 0.1만 완성해도 이미 쓸모가 있습니다. 그리고 작동하는 버전이 있으면, 거기에 기능을 추가하는 것이 처음부터 모든 것을 만드는 것보다 훨씬 쉽습니다.

점진적 확장의 장점:

  • 빨리 성취감을 느낄 수 있음
  • 중간에 문제가 생겨도 이미 작동하는 버전이 있음
  • 각 단계마다 테스트하고 검증할 수 있음
  • 시간이 부족해도 최소한 뭔가는 완성됨

정기적으로 저장하고 백업하기

개발 중에 작업물을 자주 저장하는 습관은 매우 중요합니다. 몇 시간 작업한 것이 한 번의 실수로 날아가는 것만큼 좌절스러운 일은 없습니다.

저장 전략:

  • 중요한 단계를 완료할 때마다 파일을 새 이름으로 저장 (예: project_v1.py, project_v2.py)
  • 하루 작업을 마칠 때 전체 폴더를 백업
  • 잘 작동하는 버전은 따로 보관 ("이전 버전"으로 돌아가야 할 때를 대비)

버전 관리 팁: 파일 이름에 날짜나 버전 번호를 포함시키세요:

  • booktracker_20251113_v1.py
  • booktracker_20251114_v2.py
  • booktracker_working.py (현재 작업 중인 버전)
  • booktracker_stable.py (안정적으로 작동하는 마지막 버전)

이렇게 하면 실험적인 기능을 추가하다가 문제가 생겨도, 안정적인 버전으로 쉽게 돌아갈 수 있습니다.

중간 목표 설정하기

2주라는 시간을 효율적으로 사용하려면, 작은 중간 목표들을 설정하는 것이 좋습니다.

일일 목표 예시:

  • 1일차: 기본 데이터 구조 만들고 저장/불러오기 기능 구현
  • 2일차: 추가/삭제 기능 완성하고 테스트
  • 3일차: 목록 보기 기능 구현
  • 4일차: 상태 변경 기능 추가
  • 5일차: 전체 기능 통합 테스트 및 버그 수정
  • 6일차: 부가 기능 추가 (시간이 있다면)
  • 7일차: 최종 테스트 및 문서 작성

매일 저녁, 오늘의 목표를 달성했는지 확인하세요. 만약 지연되고 있다면:

  • 목표가 너무 높았나?
  • 어떤 부분에서 시간이 많이 걸렸나?
  • 계획을 조정해야 하나?

이렇게 매일 점검하면 프로젝트가 엉뚱한 방향으로 가는 것을 방지할 수 있습니다.

막힐 때 대처 방법

프로젝트를 진행하다 보면 반드시 막히는 순간이 옵니다. 이것은 여러분만의 문제가 아니라, 모든 사람이 겪는 자연스러운 과정입니다.

막혔을 때 시도해볼 것들:

1. 문제를 더 작게 나누기 "로그인 기능이 안 돼"보다는:

  • "비밀번호 확인이 안 돼"
  • "그 중에서도 특수문자가 포함된 경우만 안 돼" 처럼 구체적으로 좁혀가세요.

2. GitHub Copilot에게 다르게 설명하기 같은 요청을 다른 방식으로 표현해보세요:

  • "CSV 파일을 읽어줘" → "CSV 파일의 각 줄을 읽어서 리스트로 만들어줘"
  • 예시를 추가: "예를 들어 'title,author,genre' 같은 형식이야"

3. 더 간단한 버전으로 시도하기 복잡한 기능이 안 되면, 일단 간단한 버전부터:

  • 모든 PDF가 아니라 특정 형식의 PDF만
  • 자동 분류가 아니라 수동 분류부터
  • 그래프가 아니라 표부터

4. 잠시 쉬기 30분 이상 같은 문제에 막혀 있다면, 잠시 쉬세요. 산책을 하거나, 다른 일을 하거나, 그냥 쉬어도 좋습니다. 새로운 관점에서 보면 해결책이 보일 수 있습니다.

5. 기획서로 돌아가기 "내가 정말로 원하는 게 뭐였지?"를 다시 확인하세요. 지금 막힌 부분이 정말 필수적인가요? 아니면 다른 방법으로 우회할 수 있나요?

완벽함보다 완성을 목표로

완벽주의는 프로젝트의 적입니다. "이것도 추가하고, 저것도 개선하고" 하다 보면 정작 핵심 기능도 완성하지 못할 수 있습니다.

80-20 원칙: 80%의 가치는 20%의 기능에서 나옵니다. 그 핵심 20%에 집중하세요.

독서 목록 관리 도구에서:

  • 핵심 20%: 책 추가, 목록 보기, 읽음 표시
  • 나머지 80%: 예쁜 디자인, 다양한 정렬 옵션, 통계, 추천 기능 등

핵심 20%만 제대로 작동해도 충분히 유용한 도구입니다.

"나중에" 목록 만들기: 개발 중에 "이것도 추가하면 좋겠다" 싶은 아이디어가 떠오르면, 바로 구현하지 말고 "나중에" 목록에 적어두세요. 핵심 기능을 다 완성하고 시간이 남으면 그때 추가하세요.

피드백 받기

혼자 작업하다 보면 자신의 프로젝트를 객관적으로 보기 어렵습니다. 다른 사람의 시각이 필요합니다.

누구에게 피드백을 받을까:

  • 같은 과정을 듣는 동료들
  • 이 문제를 겪을 가능성이 있는 사람 (잠재적 사용자)
  • 프로그래밍을 모르는 가족이나 친구 (사용자 관점)

무엇을 물어볼까:

  • "이게 뭘 하는 건지 알겠어?"
  • "사용법이 직관적이야?"
  • "어떤 기능이 빠진 것 같아?"
  • "가장 불편한 부분이 뭐야?"

피드백을 받을 때는 방어적이 되지 마세요. "그건 이렇게 하면 돼"라고 설명하는 대신, 왜 그런 피드백이 나왔는지 생각해보세요. 설명이 필요하다는 것 자체가, 더 직관적으로 만들어야 한다는 신호일 수 있습니다.

동기 부여와 마인드셋

프로젝트를 완성하는 데 기술만큼 중요한 것이 마음가짐입니다. 올바른 마인드셋을 가지면, 어려움을 만나도 포기하지 않고 끝까지 해낼 수 있습니다.

왜 이 프로젝트를 하는가

개발이 어려워지거나 지루해질 때, 처음의 동기를 기억하는 것이 중요합니다.

여러분이 이 프로젝트를 선택한 이유를 다시 생각해보세요:

  • 어떤 불편함을 해결하고 싶었나요?
  • 완성되면 어떻게 사용할 계획인가요?
  • 이것을 배우면 앞으로 어떤 도움이 될까요?

이 질문들에 대한 답을 기획서 첫 페이지에 적어두세요. 힘들 때 읽으면 다시 힘이 납니다.

미래의 자신에게 편지 쓰기:

지금 이 순간, 프로젝트를 완성한 2주 후의 자신에게 편지를 써보세요:

"2주 후의 나에게,

지금 프로젝트를 시작하면서 정말 기대돼. 완성되면 매일 쓸 수 있을 것 같아. 중간에 힘들 순간이 있겠지만, 끝까지 해내면 정말 뿌듯할 거야. 이 도구가 있으면 [구체적인 혜택]를 얻을 수 있을 거야. 화이팅!"

이 편지를 프로젝트 폴더에 저장하고, 힘들 때마다 읽으세요.

실패에 대한 두려움 극복하기

"잘못되면 어떡하지?", "완성하지 못하면 어떡하지?" 같은 두려움이 있을 수 있습니다. 하지만 이 과정에서 실패란 없습니다.

최악의 시나리오를 상상해보세요:

  • 계획한 모든 기능을 구현하지 못함
  • 일부 기능만 작동함
  • 생각보다 투박하고 불완전함

그래도 괜찮습니다. 왜냐하면:

  • 기능 하나라도 작동하면 그것은 성공입니다
  • 과정에서 배운 것들은 그대로 남습니다
  • 다음 프로젝트는 훨씬 쉬워질 것입니다

실패가 아니라 학습입니다. 계획대로 되지 않았다면, 그것은 "계획을 더 현실적으로 세우는 법"을 배운 것입니다. 기술적으로 어려움을 겪었다면, "다음에는 더 쉬운 접근법을 찾는 법"을 배운 것입니다.

즐기는 마음가짐

프로젝트를 "해야 하는 과제"가 아니라 "하고 싶은 창작"으로 바라보세요.

재미있게 만드는 방법:

  • 프로젝트에 재미있는 이름을 붙이세요
  • 작은 성공 때마다 자신에게 보상하세요 (좋아하는 간식, 잠깐의 휴식 등)
  • 진행 상황을 시각적으로 표시하세요 (체크리스트, 진행률 바 등)
  • 완성 후 사용할 모습을 상상하며 즐거워하세요

프로그래밍은 창조의 과정입니다. 무에서 유를 만들어내는 즐거움을 느껴보세요. 여러분의 생각이 실제로 작동하는 프로그램으로 변하는 순간의 기쁨은 무엇과도 비교할 수 없습니다.

비교하지 않기

다른 사람의 프로젝트가 더 멋져 보일 수 있습니다. 더 복잡하고, 더 많은 기능이 있고, 더 세련되어 보일 수 있죠. 하지만 비교는 동기부여가 아니라 의욕 상실로 이어질 수 있습니다.

기억하세요:

  • 각자의 출발점이 다릅니다
  • 각자의 목표가 다릅니다
  • 각자의 속도가 다릅니다

중요한 것은 남과의 비교가 아니라, 어제의 나와 비교하는 것입니다. 어제보다 오늘 조금이라도 진전이 있다면, 그것이 성공입니다.

다른 프로젝트를 볼 때는:

  • 비교 대상이 아니라 영감의 원천으로 보세요
  • "저 사람은 나보다 나아"가 아니라 "저런 방법도 있구나"라고 생각하세요
  • 배울 점을 찾되, 자신을 낮추지 마세요

꾸준함의 힘

2주는 짧은 시간처럼 보이지만, 매일 조금씩 진전하면 놀라운 결과를 만들 수 있습니다.

하루 1시간의 마법: 하루에 1시간씩 14일 = 14시간. 집중해서 작업하면 꽤 많은 것을 완성할 수 있는 시간입니다.

매일 하기 위한 팁:

  • 같은 시간에 작업하는 습관 만들기 (예: 저녁 8시~9시)
  • 작업 환경을 미리 세팅해두기 (컴퓨터 켜면 바로 시작)
  • 아주 작은 단위로 시작하기 ("일단 10분만" → 시작하면 계속하게 됨)
  • 진행 상황을 기록하기 (오늘 무엇을 했는지 한 줄로)

쉬는 것도 일의 일부: 매일 해야 한다고 해서 무리하지는 마세요. 정말 피곤하거나 몸이 안 좋으면 쉬세요. 하루 쉬고 다음날 더 효율적으로 일하는 것이, 억지로 하다가 번아웃 되는 것보다 낫습니다.

기획의 가치

기획 단계를 충실히 거친 여러분은 이미 절반의 성공을 거둔 것입니다. 좋은 기획은 개발을 훨씬 쉽게 만들어줍니다.

기획이 주는 혜택:

명확성: 무엇을 만들 것인지, 왜 만드는지, 어떻게 만들 것인지가 분명합니다. 개발 중에 "내가 뭘 하고 있지?" 하는 혼란이 줄어듭니다.

효율성: 단계별 계획이 있으니, 다음에 무엇을 할지 고민하는 시간이 줄어듭니다. 바로바로 다음 작업으로 넘어갈 수 있습니다.

현실성: 실현 가능한 범위로 목표를 설정했으니, 중간에 포기할 확률이 낮습니다.

유연성: 계획이 있으니 계획을 조정할 수도 있습니다. 계획 없이 즉흥적으로 하다가는, 조정할 기준조차 없습니다.

자신감: 구체적인 계획이 있으니 "할 수 있다"는 확신이 생깁니다.

기획서는 나침반입니다. 개발이라는 항해를 하는 동안, 방향을 잃지 않게 해주는 나침반입니다. 폭풍을 만나도(예상치 못한 문제), 나침반이 있으면 다시 방향을 찾을 수 있습니다.

실전 기획 워크숍

이론을 배웠으니, 이제 실제로 여러분의 프로젝트 기획을 진행해봅시다. 단계별로 따라하면서 완성된 기획서를 만들어보세요.

워크숍 1단계: 아이디어 발굴 (30분)

활동:

  1. 타이머를 15분으로 설정하세요
  2. 떠오르는 모든 프로젝트 아이디어를 적으세요 (최소 10개 목표)
  3. 평가하지 말고 일단 적으세요

질문 프롬프트:

  • 매일 하는 일 중 가장 귀찮은 것 3가지는?
  • 정리하고 싶지만 미루고 있는 것은?
  • 가족이나 친구가 자주 하는 불평은?
  • 취미 생활에서 불편한 점은?
  • "이게 자동으로 되면 좋겠다"고 생각한 적이 있는 것은?

예시 아이디어 목록:

  1. 냉장고 재료 관리 및 유통기한 알림
  2. 운동 루틴 추적 및 진행도 시각화
  3. 가족 일정 통합 캘린더
  4. 책 읽은 페이지 추적 및 목표 관리
  5. 간단한 가계부 (수입/지출 기록)
  6. 프로젝트 시간 추적기
  7. 영화/드라마 시청 목록 관리
  8. 요리 레시피 북마크 및 재료 관리
  9. 학습 계획 및 복습 알림
  10. 여행 계획 체크리스트

다음 15분: 각 아이디어에 점수를 매기세요 (필요성, 실현가능성, 바이브코딩 적합성, 학습가치 각 1~5점)

워크숍 2단계: 주제 확정 및 정의 (20분)

활동: 가장 점수가 높은 2~3개 아이디어 중 하나를 선택하세요.

선택한 주제를 한 문장으로 정의: "나는 [누구를 위해] [어떤 문제를 해결하는] [무엇]을 만들 것이다."

구체화하기:

  • 현재 상황: 지금 무엇이 불편한가? (3~5 문장)
  • 원하는 상태: 프로젝트 완성 후 어떻게 달라지나? (3~5 문장)
  • 성공 기준: 어떻게 되면 성공인가? (핵심 3가지)

예시: 주제: 독서 진행도 추적기

한 문장 정의: "나는 책을 읽는 사람들을 위해 읽고 있는 책의 진행도를 추적하고 목표를 관리하는 도구를 만들 것이다."

현재 상황: "여러 권의 책을 동시에 읽고 있는데, 어느 책을 얼마나 읽었는지 기억하기 어렵다. 목표를 세워도 잘 지켜지는지 확인하기 어렵고, 한 달에 몇 권을 읽었는지도 파악이 안 된다."

원하는 상태: "오늘 읽은 페이지를 입력하면 자동으로 진행률이 계산되고, 목표까지 얼마나 남았는지 보여준다. 월별 독서량도 한눈에 볼 수 있다."

성공 기준:

  1. 책 정보와 읽은 페이지를 기록할 수 있다
  2. 진행률(%)이 자동 계산된다
  3. 데이터가 저장되어 다시 켜도 유지된다

워크숍 3단계: 4대 원리 적용 (40분)

활동 1: 분해 (10분)

프로젝트를 5~10개 단계로 나누세요.

예시 (독서 진행도 추적기):

  1. 책 정보 입력 기능 (제목, 저자, 총 페이지)
  2. 데이터 저장 기능 (파일로 저장)
  3. 저장된 데이터 불러오기
  4. 책 목록 보기
  5. 읽은 페이지 입력/업데이트
  6. 진행률 계산 및 표시
  7. 완독한 책 별도 표시
  8. 월별 통계 (선택)

활동 2: 패턴 인식 (10분)

반복되는 규칙이나 패턴 3~5가지를 찾으세요.

예시:

  1. 모든 책은 제목, 저자, 총페이지, 읽은페이지 정보를 가짐
  2. 진행률 = (읽은페이지 / 총페이지) × 100
  3. 읽은페이지 = 총페이지이면 완독
  4. 데이터는 추가/조회/수정/삭제 패턴 반복

활동 3: 추상화 (10분)

핵심 기능 3가지와 부가 기능 2~3가지를 구분하세요.

예시: 핵심 기능:

  1. 책 정보 및 진행도 기록
  2. 진행률 계산 및 표시
  3. 데이터 저장/불러오기

부가 기능:

  1. 월별 독서 통계
  2. 목표 설정 및 달성률
  3. 그래프 시각화

활동 4: 알고리즘 (10분)

핵심 기능 하나를 10~15단계 알고리즘으로 작성하세요.

예시 (진행도 업데이트):

  1. 사용자에게 책 제목 입력받기
  2. 저장된 데이터에서 해당 책 찾기
  3. 못 찾으면 오류 메시지, 찾으면 계속
  4. 오늘 읽은 페이지 번호 입력받기
  5. 기존 읽은 페이지와 비교하여 검증
  6. 새 페이지가 더 크면 업데이트
  7. 진행률 계산: (읽은페이지 / 총페이지) × 100
  8. 진행률 표시
  9. 총페이지와 같으면 "완독!" 메시지
  10. 업데이트된 데이터 저장

워크숍 4단계: GitHub Copilot 전략 (30분)

활동 1: 역할 분담 (10분)

각 단계에서 GitHub Copilot이 할 일과 본인이 할 일을 구분하세요.

예시 표:

단계GitHub Copilot본인
책 정보 입력입력 받는 코드 작성어떤 정보를 받을지 정의
데이터 저장파일 저장 코드 작성파일 형식 결정 (JSON/CSV)
진행률 계산계산식 구현공식 제공, 결과 검증
목록 보기표 형식 출력 코드어떤 정보를 보여줄지 결정

활동 2: 프롬프트 준비 (15분)

주요 단계별로 GitHub Copilot에게 보낼 프롬프트를 미리 작성하세요.

예시:

단계 1: 데이터 구조

독서 진행도를 추적하는 프로그램을 만들고 있어.
각 책은 제목, 저자, 총페이지, 읽은페이지 정보를 가져야 해.
이 정보를 JSON 파일로 저장하고 불러오는 기능을 만들어줘.

단계 2: 책 추가

사용자에게 책 제목, 저자, 총 페이지를 입력받아서
JSON 파일에 추가하는 기능을 만들어줘.
읽은 페이지는 0으로 초기화하면 돼.

단계 3: 진행도 표시

JSON 파일의 모든 책을 읽어서 표로 보여주고 싶어.
제목, 저자, 진행률(백분율)을 표시하되,
진행률이 100%인 책은 "완독!"이라고 표시해줘.

활동 3: 테스트 데이터 (5분)

작은 샘플 데이터를 준비하세요.

예시 (test_books.json):

[
  {"title": "해리포터", "author": "J.K.롤링", "total_pages": 500, "read_pages": 250},
  {"title": "1984", "author": "조지 오웰", "total_pages": 300, "read_pages": 300},
  {"title": "코스모스", "author": "칼 세이건", "total_pages": 600, "read_pages": 100}
]

워크숍 5단계: 기획서 작성 (30분)

이제 모든 내용을 종합하여 완성된 기획서를 작성하세요.

기획서 템플릿 활용:

앞서 본 기획서 예시의 6개 섹션을 채워나가세요:

  1. 프로젝트 개요
  2. 주요 기능
  3. 개발 계획
  4. GitHub Copilot 활용 계획
  5. 테스트 계획
  6. 위험 요소 및 대비책

작성 팁:

  • 구체적으로 쓰세요 ("자료를 정리" X, "CSV 파일을 날짜순 정렬" O)
  • 측정 가능하게 쓰세요 ("빠르게" X, "5초 이내" O)
  • 현실적으로 쓰세요 (2주 안에 가능한 범위로)

워크숍 완료 체크리스트

모든 워크숍을 마쳤다면 다음을 확인하세요:

  • 프로젝트 주제가 한 문장으로 명확히 정의됨
  • 현재 상황, 원하는 상태, 성공 기준이 기술됨
  • 프로젝트가 5~10단계로 분해됨
  • 반복되는 패턴 3개 이상 식별됨
  • 핵심 기능과 부가 기능이 구분됨
  • 핵심 기능의 알고리즘이 작성됨
  • GitHub Copilot과의 역할 분담이 명확함
  • 주요 프롬프트가 미리 준비됨
  • 테스트 데이터가 준비됨
  • 완성된 기획서가 문서로 작성됨

모두 체크되었나요? 축하합니다! 여러분은 이제 개발을 시작할 준비가 완료되었습니다.

실습 결과 요약

이번 주차에서 여러분은 최종 프로젝트의 기획을 완료했습니다. 단순히 "이거 만들면 좋겠다"는 생각을 넘어, 구체적이고 실행 가능한 계획으로 발전시켰습니다.

핵심 학습 내용

좋은 프로젝트 주제 선정: 필요성, 실현 가능성, 바이브 코딩 적합성, 확장 가능성, 공유 가치를 기준으로 평가하는 방법을 배웠습니다. 여러 아이디어를 체계적으로 비교하고, 가장 적합한 것을 선택하는 과정을 경험했습니다.

문제 정의 및 분석: 막연한 불편함을 명확한 문제로 정의하고, 4대 원리를 적용하여 체계적으로 분석하는 방법을 익혔습니다. 분해, 패턴 인식, 추상화, 알고리즘적 사고가 실제 프로젝트 기획에서 어떻게 활용되는지 직접 경험했습니다.

GitHub Copilot 활용 전략: 프로젝트의 각 단계에서 GitHub Copilot과 어떻게 협업할지 구체적으로 계획하는 방법을 배웠습니다. 어떤 부분은 GitHub Copilot이, 어떤 부분은 본인이 담당할지 역할을 명확히 나누었습니다.

현실적인 계획 수립: 완벽한 프로젝트보다는 완성 가능한 프로젝트를 목표로 하는 것이 중요함을 배웠습니다. 핵심 기능과 부가 기능을 구분하고, 최소 목표를 설정하여 실패 확률을 낮추는 전략을 익혔습니다.

다음 주차 준비

이제 기획서를 바탕으로 실제 개발을 시작할 준비가 되었습니다. 다음 주차에는 GitHub Copilot과 협업하여 프로젝트를 단계적으로 구현하게 됩니다.

개발 전 체크리스트:

  • 프로젝트 주제가 명확하게 정의되었다
  • 핵심 기능 3가지가 선정되었다
  • 프로젝트가 5~10개 단계로 분해되었다
  • 각 단계별 GitHub Copilot 활용 계획이 수립되었다
  • 테스트 데이터가 준비되었다
  • 예상 문제와 대비책이 정리되었다
  • 전체 기획서가 작성되었다

모든 항목에 체크할 수 있다면, 다음 주차 개발을 시작할 준비가 완료된 것입니다.

기획서 점검 및 개선:

이번 주가 끝나기 전에, 작성한 기획서를 다시 한번 살펴보세요:

  • 2주 안에 정말 완성할 수 있을까?
  • 너무 욕심을 부린 부분은 없을까?
  • 반대로, 너무 쉬워서 배움이 적을까?
  • GitHub Copilot에게 요청할 내용이 충분히 구체적인가?

필요하다면 지금 수정하세요. 개발을 시작한 후에 계획을 바꾸는 것보다, 지금 조정하는 것이 훨씬 쉽습니다.

멘탈 준비:

기획이 완벽해도 개발 과정에서 예상치 못한 문제가 생길 수 있습니다. 그것은 전혀 이상한 일이 아닙니다. 오히려 자연스럽고 필요한 과정입니다.

문제가 생기면:

  • 당황하지 말고, 기획서로 돌아가세요
  • 계획을 조정하는 것을 두려워하지 마세요
  • GitHub Copilot에게 솔직하게 문제를 설명하세요
  • 완벽함보다는 완성을 목표로 하세요

여러분은 이미 11주 동안 많은 것을 배웠습니다. 바이브 코딩의 기본을 익혔고, 실생활 문제를 해결해본 경험도 있습니다. 이제 그 모든 것을 하나의 프로젝트로 완성할 시간입니다.

다음 주차에는 여러분의 기획서가 실제로 작동하는 프로그램으로 변신하는 과정을 경험하게 됩니다. GitHub Copilot과 함께 하나씩 단계를 밟아가며, 여러분만의 창작물을 만들어가는 즐거움을 느껴보세요.

기획은 지도를 그리는 것이고, 개발은 그 지도를 따라 여행하는 것입니다. 지도가 완성되었으니, 이제 여행을 떠날 준비를 하세요. 다음 주차에 만나요!


이번 주차 최종 산출물:

  • 프로젝트 주제 (한 문장 정의)
  • 문제 분석 (4대 원리 적용)
  • 프로젝트 기획서 (6개 섹션)
  • 테스트 데이터
  • 다음 주차 실행 계획

이 모든 것을 정리하여 문서로 만들어두세요. 다음 주차뿐만 아니라, 프로젝트 발표 시에도 유용하게 활용할 수 있습니다.


다음 주 예고: 프로젝트 개발

드디어 13주차에는 이번 주 기획한 프로젝트를 실제로 개발합니다:

  • GitHub Copilot Agent와 협업하여 단계별로 개발
  • 테스트하고 개선하며 완성도 높이기
  • 문제 발생 시 해결 전략 적용

이번 주 과제: 오늘 작성한 기획서를 다시 한번 검토하세요:

  • 모호한 부분은 없나요?
  • 각 단계가 명확한가요?
  • GitHub Copilot에게 어떻게 요청할지 생각해보셨나요?

다음 주에는 여러분의 생각을 현실로 만드는 흥미진진한 과정이 기다립니다. 기대하세요!