앞선 글에서는 OpenCode를 설치하고 AI 모델을 연결한 뒤, 프로젝트를 초기화하는 기본 과정을 살펴봤습니다. 이번에는 OpenCode에 자연어로 작업을 요청해 실제로 실행할 수 있는 간단한 Python 웹 서비스를 만들어 보겠습니다.
1. 프로젝트 준비
이번편은 1편에서 모델 연결과 초기화를 마친 opencodetest 디렉터리에서 이어서 진행합니다.
cd opencodetest
opencode
OpenCode가 실행되면 화면 오른쪽 아래에 현재 에이전트가 Build로 표시되는지 확인합니다. Plan 상태라면 Tab 키를 눌러 Build로 전환합니다.

2. 자연어로 웹 서비스 생성 요청
이번에 만들 웹 서비스는 메인 화면에 안내 문구와 현재 서버 시간을 표시하고, 서버 상태를 확인할 수 있는 /health 주소를 제공합니다.
OpenCode 입력창에 다음과 같이 요청합니다.
현재 프로젝트에 Python Flask 기반의 간단한 웹 서비스를 만들어줘.
- 메인 페이지에 "OpenCode로 만든 웹 서비스입니다." 라는 문구와 현재 서버 시간을 표시해줘.
- /health 주소로 접속하면 {"status":"ok"} 형식의 JSON을 반환해줘.
- 웹 서비스는 0.0.0.0의 5000번 포트에서 실행되게 해줘.
- app.py, requirements.txt, templates/index.html 파일로 구성해줘.
- 기존 opencode.json과 AGENTS.md 파일은 수정하지 마.

요청을 받은 OpenCode는 필요한 파일을 생성하고 각 파일에 코드를 작성합니다. 사용하는 모델과 프로젝트 상태에 따라 설명이나 코드의 세부 내용은 달라질 수 있지만, 요청한 기능과 파일 구성이 반영돼 있으면 됩니다.
이번 요청에서는 기존 설정 파일을 변경하지 않도록 조건을 명시했으므로, 제안된 변경 목록에 opencode.json이나 AGENTS.md가 포함돼 있지 않은지도 확인합니다.

3. 생성된 파일 확인
작업이 끝나면 OpenCode를 종료합니다.
/exit
다음 명령으로 프로젝트에 생성된 파일을 확인합니다.
find . -maxdepth 2 -type f | sort
정상적으로 생성됐다면 기존 설정 파일과 함께 다음 파일을 확인할 수 있습니다.
| 파일 | 역할 |
|---|---|
app.py |
Flask 애플리케이션과 메인 페이지, 상태 확인 주소를 정의 |
requirements.txt |
웹 서비스 실행에 필요한 Python 패키지를 기록 |
templates/index.html |
브라우저에 표시할 메인 화면을 구성 |

4. 웹 서비스 실행 및 접속
프로젝트에 Python 가상 환경을 만들고 활성화합니다. 가상 환경을 사용하면 실습에 필요한 패키지가 시스템 전체 Python 환경과 분리됩니다.
python3 -m venv .venv
source .venv/bin/activate
Ubuntu에서 가상 환경을 만들 수 없다는 오류가 발생한다면 sudo apt install python3-venv 명령으로 필요한 패키지를 설치한 뒤 다시 실행합니다.
필요한 패키지를 설치한 뒤 웹 서비스를 실행합니다.
pip install -r requirements.txt
python app.py

터미널에 Running on http://127.0.0.1:5000과 같은 메시지가 나타나면 웹 서비스가 실행된 것입니다.
다른 터미널을 열어 메인 페이지와 상태 확인 주소가 응답하는지 확인합니다.
curl http://127.0.0.1:5000/
curl http://127.0.0.1:5000/health
두 번째 명령에서 다음과 같은 JSON 응답이 출력되면 상태 확인 주소도 정상적으로 동작하는 것입니다.
{"status":"ok"}

로컬 컴퓨터에서 실행했다면 브라우저에서 http://127.0.0.1:5000으로 접속합니다. 원격 Linux 서버에서 실행했다면 방화벽과 클라우드 보안 정책에서 5000번 포트가 허용된 경우에만 http://서버-IP:5000으로 접속할 수 있습니다.

확인을 마쳤다면 웹 서비스를 실행한 터미널에서 Ctrl+C를 눌러 종료합니다. 가상 환경을 빠져나오려면 다음 명령을 실행합니다.
deactivate
마무리
이번 글에서는 OpenCode에 자연어로 필요한 조건을 전달하고, Python Flask 기반의 웹 서비스를 생성해 직접 실행해 봤습니다.
자연어로 코드를 만들 수 있다고 해서 생성된 결과를 확인하지 않아도 되는 것은 아닙니다. 어떤 파일이 추가됐는지, 기존 파일이 변경되지는 않았는지, 실행할 명령이 안전한지를 확인하는 과정은 여전히 필요합니다.
참고 자료
이 글은 본인의 실제 경험과 학습을 기반으로 직접 작성하였으며, AI는 참고용으로만 활용하였습니다.





