개발 사이드 프로젝트, 무엇부터 시작해야 할까? 아이디어부터 배포까지 7단계

 개발 공부를 하다 보면 한 번쯤 이런 생각을 하게 됩니다.

"나도 직접 서비스를 하나 만들어보고 싶은데, 뭘 만들어야 하지?"

Python을 공부하고, Docker 강의를 보고, AI를 사용해 코드를 작성해봐도 막상 사이드 프로젝트를 시작하려고 하면 생각보다 쉽지 않습니다.

저 역시 개발과 IT 업무를 하면서 느낀 점은 기술을 하나씩 공부하는 것과 실제로 작동하는 서비스를 처음부터 끝까지 만들어보는 것은 상당히 다르다는 것입니다.

이번 글에서는 사이드 프로젝트를 처음 시작하는 사람이 아이디어를 정하는 것부터 실제 서비스를 배포하는 것까지 어떤 순서로 진행하면 좋은지 정리해보겠습니다.


1. 기술보다 해결할 문제를 먼저 정하기

사이드 프로젝트를 시작할 때 흔히 하는 고민이 있습니다.

"Python으로 뭘 만들지?"
"요즘 AI Agent가 유행이라는데 하나 만들어볼까?"
"React를 배웠으니 웹사이트를 만들어볼까?"

물론 새로운 기술을 공부하기 위한 프로젝트라면 이렇게 시작해도 괜찮습니다.

하지만 실제로 사람들이 사용하는 서비스를 만들어보고 싶다면 기술보다 문제를 먼저 정하는 방법이 좋습니다.

예를 들어 매일 여러 채용 사이트에서 원하는 공고를 찾아보는 일이 번거롭다고 생각해봅시다.

그러면 프로젝트의 시작은 단순합니다.

문제

매일 여러 사이트에 접속해서 새로운 채용공고를 확인해야 한다.

해결 방법

조건에 맞는 새로운 채용공고를 자동으로 찾아서 알려주는 서비스를 만든다.

이렇게 문제를 먼저 정의하면 필요한 기술은 자연스럽게 따라옵니다.


2. 처음부터 큰 서비스를 만들지 않기

처음 사이드 프로젝트를 시작하면 기능을 계속 추가하고 싶어집니다.

회원가입도 있어야 할 것 같고,

Google 로그인도 넣고,

예쁜 대시보드도 만들고,

AI 기능도 넣고,

모바일에서도 잘 보여야 할 것 같습니다.

그러다 보면 프로젝트가 점점 커지고 결국 완성하지 못할 가능성이 높아집니다.

처음에는 MVP(Minimum Viable Product) 수준으로 만드는 것이 좋습니다.

앞서 이야기한 채용공고 서비스를 예로 들면 첫 번째 버전은 이것만 있어도 됩니다.

조건 입력 → 공고 검색 → 결과 표시

로그인도 필요 없고 복잡한 사용자 관리도 필요 없습니다.

우선 핵심 기능 하나가 제대로 작동하도록 만드는 것이 중요합니다.


3. 필요한 기술을 정하기

무엇을 만들지 정했다면 이제 기술을 선택합니다.

간단한 웹서비스를 만든다고 가정하면 다음과 같은 구조를 생각해볼 수 있습니다.

Frontend

사용자가 보는 화면입니다.

HTML/CSS/JavaScript부터 React, Next.js 같은 프레임워크까지 다양한 선택지가 있습니다.

Backend

실제 서비스의 로직을 처리합니다.

Python을 사용한다면 FastAPI나 Django 등을 사용할 수 있습니다.

Database

사용자 정보나 서비스 데이터를 저장합니다.

PostgreSQL, MySQL 등의 데이터베이스를 사용할 수 있습니다.

Infrastructure

완성된 서비스를 실제 인터넷에서 사용할 수 있도록 배포하는 영역입니다.

Docker, Linux 서버, AWS 등의 기술이 여기에 해당합니다.

처음부터 모든 기술을 완벽하게 공부하고 시작할 필요는 없습니다.

필요한 순간에 필요한 기술을 공부하는 방식이 오히려 사이드 프로젝트에서는 효율적입니다.


4. AI를 개발 도구로 활용하기

최근에는 사이드 프로젝트를 만드는 방식도 많이 달라졌습니다.

ChatGPT, Claude와 같은 생성형 AI를 활용하면 코드 작성뿐 아니라 프로젝트 구조 설계, 오류 분석, 테스트 코드 작성 등 다양한 작업을 도움받을 수 있습니다.

예를 들어 단순히

"웹사이트 만들어줘."

라고 요청하는 것보다,

프로젝트의 목적과 필요한 기능을 먼저 정의하고 이를 기준으로 데이터베이스 구조나 API를 하나씩 설계하는 것이 좋습니다.

AI가 코드를 만들어준다고 해서 해당 코드를 그대로 사용하는 것도 추천하지 않습니다.

코드가 왜 이렇게 작성됐는지 확인하고 직접 실행하면서 문제가 발생하면 원인을 찾아보는 과정이 필요합니다.

이 과정에서 오히려 많은 것을 배우게 됩니다.


5. 로컬에서 먼저 실행하기

개발을 시작했다면 가장 먼저 내 컴퓨터에서 서비스가 정상적으로 작동하도록 만듭니다.

예를 들어 웹서비스라면 다음 흐름이 정상적으로 동작하는지 확인합니다.

사용자 요청 → API → 데이터 처리 → DB 저장 → 결과 반환

여기서부터 실제 개발에서 자주 만나는 문제들이 등장합니다.

포트가 열리지 않거나,

API 요청에서 Timeout이 발생하거나,

DB 연결이 되지 않거나,

환경변수가 제대로 적용되지 않는 등의 문제입니다.

이러한 문제를 직접 해결하는 경험이 사이드 프로젝트에서 얻을 수 있는 가장 큰 자산 중 하나라고 생각합니다.


6. Docker로 실행 환경 만들기

로컬에서 서비스가 정상적으로 실행됐다면 Docker를 이용해 실행 환경을 만들어볼 수 있습니다.

Docker를 사용하면 애플리케이션과 실행에 필요한 환경을 하나의 컨테이너 형태로 관리할 수 있습니다.

특히 여러 환경에서 서비스를 실행해야 할 때 유용합니다.

예를 들어 개발자의 PC에서는 정상적으로 동작하지만 서버에서는 Python 버전이나 라이브러리 차이 때문에 실행되지 않는 문제가 발생할 수 있습니다.

Docker를 사용하면 이러한 환경 차이를 상당 부분 줄일 수 있습니다.

사이드 프로젝트를 통해 Docker를 직접 사용해보면 단순히 명령어를 공부하는 것보다 훨씬 빠르게 개념을 이해할 수 있습니다.


7. 실제 인터넷에 배포하기

마지막 단계는 배포입니다.

개인 컴퓨터에서만 실행되는 프로그램과 인터넷에서 다른 사람이 접속할 수 있는 서비스는 완전히 다른 경험을 제공합니다.

서버를 준비하고,

애플리케이션을 실행하고,

도메인을 연결하고,

HTTPS를 적용하고,

로그를 확인하고,

서비스에 문제가 생기면 다시 수정합니다.

여기까지 경험하면 하나의 서비스를 기획 → 개발 → 운영하는 전체 흐름을 경험하게 됩니다.

그리고 처음 만든 서비스가 완벽할 필요도 없습니다.

사용자가 한 명이어도 좋습니다.

중요한 것은 직접 만든 것을 실제로 작동시키는 경험입니다.


사이드 프로젝트에서 가장 중요한 것은 완성하기

사이드 프로젝트를 시작할 때 가장 좋은 기술 스택을 찾느라 너무 많은 시간을 쓰는 경우가 있습니다.

하지만 처음부터 완벽한 기술을 선택하는 것보다 작은 서비스를 하나라도 끝까지 만들어보는 것이 훨씬 많은 경험을 줍니다.

문제 발견 → 아이디어 → MVP → 개발 → 테스트 → 배포 → 개선

이 흐름을 한 번 경험하면 두 번째 프로젝트부터는 무엇을 준비해야 하는지 훨씬 명확해집니다.

Devnary에서는 앞으로 이 과정을 직접 하나씩 다뤄보려고 합니다.

Python, Docker, Linux, API 같은 개발 기술부터 AI Agent와 자동화, 실제 사이드 프로젝트를 만들고 배포하면서 발생하는 문제와 해결 과정까지 기록할 예정입니다.

단순히 **"이 기술은 이렇게 사용합니다"**에서 끝나는 것이 아니라,

"그래서 이걸 이용해 실제로 무엇을 만들 수 있을까?"

까지 이어지는 글을 만들어보겠습니다.

Build. Learn. Solve.

Post a Comment

다음 이전