여러분, 안녕하세요. 오늘은 AI 코딩 기초 다섯 번째 시간으로, 좋은 프로젝트를 만들기 위한 첫걸음, 바로 문제정의와 프로젝트 설계에 대해 함께 알아보겠습니다. 뭔가를 막연히 만들기보다는, 시작부터 무엇이 필요한지, 왜 이 작업이 중요한지 차근차근 짚어보는 시간이 될 거예요. 지금부터 문제를 어떻게 정의하고, 이 정의를 바탕으로 설계서를 만들어가는 과정을 함께 시작해봅시다.
이번 강의에서는 문제정의의 필요성과 실제로 문제를 찾고, 이를 구체적으로 문장으로 표현하는 방법, 그리고 이 과정을 토대로 프로젝트 설계서까지 완성하는 흐름을 살펴볼 예정입니다. 각 단계마다 실습과 예시를 들어가며, 여러분이 실제로 문제를 정의하고 설계하는 데에 도움이 되도록 차근차근 안내할게요. 그럼 첫 번째 주제부터 시작해보겠습니다.
프로젝트를 시작할 때 많은 분들이 기능부터 떠올리고 바로 만들기 시작하는 경우가 많습니다. 하지만 이렇게 하면, 진행 중에 방향을 잃거나 불필요한 기능만 늘어나서 정작 필요한 문제는 해결하지 못하는 경우가 생기죠. 반대로, 먼저 '누구의 어떤 불편을 풀어줄까?'를 명확히 정하고 시작하면, 필요한 기능에만 집중해서 끝까지 완성도 있게 프로젝트를 이끌 수 있습니다. 즉, 좋은 프로젝트는 '무엇을 만들까'보다 '누구의 어떤 문제를 해결할까'에서 출발해야 한다는 점, 꼭 기억해두세요.
그럼 실제로 문제를 어떻게 발견할 수 있을까요? 가장 쉬운 방법은 여러분의 하루를 돌아보며 불편했던 순간을 떠올리는 거예요. 예를 들어, 준비물을 깜빡한 적이 있었는지, 모둠 과제에서 역할 분담이 제대로 안 돼서 답답했던 경험이 있었는지 생각해보세요. 일상, 학교, 친구들과의 관계 등 다양한 영역에서 작은 불편까지도 메모해 보는 것이 중요합니다. 이런 관찰이 좋은 프로젝트의 시작점이 됩니다.
이제 발견한 불편을 토대로 문제정의서를 작성해봅니다. 문제정의서는 네 가지로 구성돼요. 먼저, 어떤 상황에서 불편이 생기는지 구체적으로 적고, 그 문제를 겪는 사람이 누구인지 명확하게 밝힙니다. 또, 이 불편이 얼마나 자주, 얼마나 크게 느껴지는지 설명해야 하고요. 마지막으로, 이 문제를 어떻게 해결하고 싶은지, 즉 해결 목표를 정해두면 프로젝트의 방향이 훨씬 선명해집니다. 이 네 가지 항목이 잘 채워져야 이후 개발에도 흔들림이 없게 됩니다.
문제를 정의할 때는 한 문장으로 구체적으로 표현하는 것이 중요합니다. 예를 들어, '과제가 힘들다'처럼 막연하게 쓰면 누가, 언제, 무엇이 힘든지 알기 어렵죠. 대신 '우리 반 친구들은 모둠 과제를 할 때 역할 분담이 정리되지 않아 불편하다'처럼, 누가 언제 어떤 상황에서 어떤 불편을 겪는지 분명하게 써야 합니다. 이렇게 문제가 또렷해지면, 그에 맞는 해결책도 더 쉽게 찾을 수 있습니다.
문제가 명확해졌다면, 이제 다양한 해결 방법을 생각해볼 차례입니다. 여러 아이디어를 떠올려보고, 그중에서 정말 문제를 제대로 해결하는지, 여러분이 만들 수 있는 범위 안에 있는지, 그리고 정말 만들고 싶은지 세 가지 기준으로 골라보세요. 예를 들어, 역할 분담 문제라면 자동 배정기, 체크리스트, 알림 챗봇 등 여러 방안이 있을 수 있겠죠. 실제 예시를 따라가며 기준별로 비교해보면, 가장 적합한 해결책을 선택하는 데 도움이 됩니다.
이제 직접 실습을 해볼 시간입니다. 아까 관찰한 불편들 중 하나를 골라서, 문제 상황, 겪는 사람, 불편의 크기, 해결 목표 네 가지 항목을 작성해보세요. 그리고 이 내용을 한 문장으로 또렷하게 정리하고, 어떤 해결 방향이 있을지 아이디어도 덧붙여봅니다. 막히는 부분이 있다면 친구와 질문을 주고받으며 보완해보세요. 이렇게 완성한 문제정의서는 다음 설계 단계에서 아주 중요한 재료가 됩니다.
여기까지 오면서 여러분은 데이터 구조, 화면 스케치, 실전 루틴, 사례 노트 등 여러 산출물을 만들어왔을 거예요. 이 각각의 결과물들이 결국 프로젝트 설계서의 각 부품이 됩니다. 지금까지 배운 내용을 한 장의 지도처럼 정리해보면, 앞으로 설계서를 작성할 때 어떤 재료가 필요한지 명확히 알 수 있습니다.
이제 실제로 프로젝트 설계서를 만들어볼 차례입니다. 먼저 문제정의서의 해결 목표를 바탕으로 필요한 기능 목록을 정리하고, 각 기능에 어떤 데이터가 필요한지 계획해봅니다. 사용자가 볼 화면을 간단히 스케치해보고, 개발 순서도 단계별로 정리해보세요. 예시 설계서를 참고하면서, 여러분만의 설계서를 완성해봅니다.
설계서가 완성되면, 모둠에서 서로의 설계서를 읽고 점검해보는 과정이 중요합니다. 이때 세 가지 질문을 던져보세요. 문제와 해결이 잘 이어지는지, 기능이 지나치게 많지는 않은지, 그리고 사용자의 첫 요청이 자연스럽게 그려지는지 확인합니다. 서로 피드백을 주고받고, 받은 의견 중 한 가지를 반영해 설계서를 수정하는 경험을 해보면, 설계서가 더 견고해집니다.
오늘 강의에서는 왜 문제정의가 프로젝트의 출발선이 되어야 하는지, 그리고 문제를 발견하고 정의하는 방법, 그 정의를 바탕으로 설계서를 만들어가는 전 과정을 살펴봤습니다. 문제를 명확히 정의하면, 이후 설계와 개발이 훨씬 수월해진다는 점 꼭 기억하세요. 여기까지가 문제정의와 프로젝트 설계의 핵심이었습니다. 수고하셨습니다.