
손님이 쓰는 화면과 대표님이 관리할 화면을 함께 만들고, 상품 저장부터 로그인·배포까지 연결합니다.
AI에게 상품 소개 페이지를 만들어달라고 했습니다. 사진과 가격도 있고, 상품을 누르면 상세 설명도 나옵니다. 이제 새 상품을 올려보려고 하는데 등록할 곳이 없네요.
상품을 추가할 때마다 AI에게 코드를 고쳐달라고 요청할 수도 있습니다. 하지만 가격을 바꾸고, 품절을 표시하고, 공지를 올릴 때마다 그러기는 번거롭겠죠.
처음 기능을 설명할 때 손님이 볼 화면과 대표님이 운영할 화면을 함께 생각하면 이 일을 줄일 수 있습니다. 어떤 도구로 만들든 사용할 수 있는 상품 서비스 예시로 살펴볼게요. 서버·DB·배포라는 말이 낯설다면 1편의 용어 설명부터 볼 수 있습니다.
“상품 목록과 상세 페이지를 만들어줘”라는 요청에는 손님이 볼 화면이 들어 있습니다. 그런데 상품은 누가 등록할까요? 이름을 잘못 적었다면 어디서 고칠까요?
기능을 적을 때 두 사람의 입장에서 나눠보면 빠진 화면을 찾기 쉽습니다.
| 기능 | 손님이 하는 일 | 대표님이 하는 일 |
|---|---|---|
| 상품 | 목록과 상세를 봐요 | 등록·수정하고 판매 상태를 바꿔요 |
| 공지 | 새 소식을 읽어요 | 공지를 작성하고 게시해요 |
| 예약 | 날짜를 골라 신청해요 | 신청 목록을 보고 예약을 확정하거나 취소해요 |
| 회원 | 로그인하고 내 정보를 봐요 | 필요한 범위에서 회원 목록을 확인해요 |
오른쪽 일을 하는 화면이 관리자페이지입니다. 처음부터 많은 기능을 넣을 필요는 없어요. 상품만 소개하는 서비스라면 상품 등록·수정·품절 표시부터 시작할 수 있습니다.
예약이나 회원 기능은 필요할 때 추가합니다. 기획할 때 만들 기능과 당장 만들지 않을 기능을 적어두면 AI에게도 범위를 전달하기 좋습니다.
상품 카드에 사진과 가격이 보인다면, 그 값을 보관할 곳도 필요합니다. “상품을 저장해줘”라는 요청에 어떤 항목을 저장할지 함께 적어볼게요.
| 상품 정보 | 정해둘 내용 |
|---|---|
| 이름 | 목록과 상세에서 어떤 이름을 보여줄지 |
| 설명 | 상품의 특징을 얼마나 자세히 적을지 |
| 가격 | 원 단위인지, 가격을 공개하지 않는 상품도 있는지 |
| 판매 상태 | 판매 중·품절·숨김 중 무엇을 사용할지 |
| 사진 | 사진을 몇 장 올리고, 대표 사진은 어떻게 고를지 |
이 중 ‘품절’과 ‘숨김’도 동작이 다릅니다. 품절 상품은 목록에 남기되 품절 표시를 할 수 있고, 숨긴 상품은 손님 목록에서 아예 제외할 수 있습니다.
이런 규칙을 정하면 화면을 보는 사람과 관리하는 사람이 같은 뜻으로 기능을 사용합니다. 모든 예외를 미리 적기보다, 실제로 쓸 상품 두세 개를 놓고 확인해보면 좋아요.
상품을 소개하는 웹 서비스를 만들고 싶어.
손님 화면은 상품 목록·상세와 공지 목록·상세야.
관리자페이지에서는 상품 등록·수정·판매 상태 변경,
공지 작성·수정·게시를 할 수 있게 해줘.
상품에는 이름, 설명, 원 단위 가격, 판매 상태, 사진을 저장해줘.
품절 상품은 표시를 붙여 목록에 남기고, 숨긴 상품은 손님에게 보이지 않게 해줘.
사용자 화면과 관리자페이지는 같은 상품과 공지 데이터를 사용해야 해.
관리자 계정과 로그인은 서비스 회원용과 따로 만들어줘.
관리자는 전용 주소에서 아이디와 비밀번호로 로그인하고, 로그인 상태도 서로 구분해줘.
현재 프로젝트에 있는 기능과 저장·배포 구성을 먼저 확인해줘.
예시 데이터로 화면을 보여준 뒤, 실제 저장과 조회까지 연결하자.
이미 쓰는 프로젝트가 있다면 그 구성을 살펴보고, 새로 만드는 서비스라면 필요한 기능과 운영 방법부터 정할 수 있어요.
손님 화면과 관리자페이지는 같은 상품을 다룹니다. 대표님이 가격을 바꾸면 손님도 새 가격을 봐야 하니까요. 한 프로젝트와 DB 안에서 이 상품 정보를 함께 사용할 수 있습니다.
로그인은 따로 생각합니다. 손님이 서비스를 이용하는 계정과, 대표님이 상품을 등록하고 회원 정보를 보는 관리자 계정을 구분하는 거예요. 관리자 전용 주소에 로그인 화면을 두고, 별도로 정한 아이디와 비밀번호로 들어가게 만듭니다.
| 함께 쓰는 것 | 따로 두는 것 |
|---|---|
| 상품·공지·예약 같은 운영 데이터 | 일반 회원 계정과 관리자 계정 |
| 서비스를 구성하는 프로젝트와 DB | 서비스 로그인과 관리자 로그인 화면 |
| 관리자가 수정한 뒤 손님이 보는 내용 | 각각의 로그인 상태와 접근 확인 |
예를 들어 상품 소개만 하는 사이트라면 손님에게 회원가입이나 로그인을 요구하지 않을 수도 있습니다. 그래도 대표님은 관리자페이지에 로그인해서 상품을 올리고 수정할 수 있어요.

관리자 로그인을 따로 만들기 위해 상품을 다른 DB에 복사하거나 서비스 전체를 새 프로젝트로 만들 필요는 없습니다. 상품 정보는 함께 사용하면서, 누가 어떤 로그인으로 들어왔는지 따로 확인하는 구조입니다.
AI가 보여준 첫 화면에는 예시 상품만 들어 있을 수 있습니다. 등록 버튼을 누르면 화면의 목록에는 추가하지만, 실제로 DB에 기록하지 않은 상태일 수도 있고요.
저장을 연결했다면 같은 상품으로 다음 동작을 확인합니다.
등록한 상품을 DB에 실제로 저장하고 다시 읽게 해줘. 관리자페이지에서 수정한 값과 손님 화면의 값이 같은지 확인해줘. 예시 데이터가 남은 화면도 찾아줘.
회원의 활동을 보고 싶다면 기록할 항목도 정합니다. 예약 신청과 취소를 저장했다면 그 기록은 볼 수 있지만, 기록하지 않은 모든 버튼 클릭까지 관리자페이지가 알아서 보여주지는 않습니다.
상품 사진은 파일 저장 공간에 보관하고, DB의 상품 정보에 그 사진을 찾을 주소를 기록하는 구성을 많이 씁니다. 저장할 곳을 연결하는 것과 사진 등록 기능을 완성하는 것은 조금 다릅니다.
대표님이 확인할 동작은 다음과 같습니다.
| 해볼 일 | 확인할 내용 |
|---|---|
| 휴대폰 사진 올리기 | 큰 사진도 처리하고 결과를 보여주는지 |
| 사진 여러 장 올리기 | 순서와 대표 사진을 정할 수 있는지 |
| 사진 교체 | 손님 화면에서 새 사진을 보여주는지 |
| 잘못된 파일 선택 | 올릴 수 있는 파일과 실패 이유를 안내하는지 |
사진을 화면에 필요한 크기로 줄여서 저장해줘. 관리자가 상품 사진을 등록·교체할 수 있게 하고, 업로드 중이거나 실패했을 때도 상태를 보여줘.
사진을 어디에 보관하고 어떻게 전달하는지는 이미지 업로드 설명 글에서 더 볼 수 있습니다.
관리자 로그인 화면에는 아이디와 비밀번호로 들어가는 기능을 둡니다. 손님 누구나 가입할 수 있는 관리자 회원가입 화면은 만들지 않아요. 최초 관리자 계정은 대표님이 정해서 따로 준비합니다.
AI에게는 이렇게 요청할 수 있습니다.
관리자 전용 로그인 화면을 만들어줘.
서비스 회원 계정과 관리자 계정을 따로 두고, 로그인 상태도 분리해줘.
관리자 공개 회원가입은 화면과 기능 모두 만들지 말아줘.
최초 관리자 아이디와 비밀번호는 내가 정해서 별도로 설정할게.
로그인한 뒤에는 내 비밀번호를 바꿀 수 있게 해줘.
관리자 화면을 열거나 상품·공지를 수정할 때마다
서버에서 관리자 로그인 상태를 확인해줘.
완성하면 내가 접속할 관리자 전용 주소도 알려줘.
관리자 메뉴를 손님에게 보여주지 않아도 주소를 직접 입력하거나 수정 요청을 보낼 수는 있습니다. 그래서 화면 진입과 실제 관리 요청 모두에서 서버가 관리자 로그인을 확인합니다.
관리자 주소를 추측하기 어렵게 정할 수도 있어요. 다만 주소를 아는 것만으로 관리 기능을 사용할 수 있게 두지는 않습니다. AI가 알려준 관리자 주소를 북마크해두면 다음에 상품을 올릴 때 바로 찾아갈 수 있습니다.
확인할 때는 로그인도 각각 나눠봅니다.
| 확인할 상황 | 기대하는 동작 |
|---|---|
| 관리자 계정으로 로그인 | 상품 등록·수정 등 관리 기능 사용 |
| 관리자 로그인 없이 전용 주소로 접속 | 관리자 로그인 화면으로 안내 |
| 일반 회원으로만 로그인한 뒤 관리 기능 요청 | 서버가 관리 요청을 거절 |
| 한쪽에서만 로그인하거나 로그아웃 | 다른 쪽 로그인 상태와 섞이지 않음 |
내 컴퓨터의 미리보기에서 잘 동작한다면, 실제 서비스 주소에서 쓰도록 배포할 차례입니다. 배포는 만든 코드를 다른 사람이 접속할 환경에 올리는 과정이었죠.
이때는 화면뿐 아니라 DB 연결과 로그인 같은 서버 설정도 필요합니다. 개발 환경에서 사용한 설정을 배포 환경이 그대로 갖고 있는지는 별도로 확인합니다.
현재 프로젝트의 배포 방식을 확인하고,
지금 확인한 코드를 실제 서비스 주소에서 사용할 수 있게 준비해줘.
DB·파일 저장·로그인에 필요한 연결과 서버 설정도 확인해줘.
배포를 시작한 뒤에는 성공 여부와 실제 접속 주소까지 확인해줘.
배포한 주소에서는 손님용 상품 목록을 열어보고, 관리자 전용 주소에 따로 로그인해서 상품 하나를 등록해봅니다. 가능하면 다른 기기에서도 같은 상품이 보이는지 확인합니다. 개발용 계정이나 설정에만 의존하던 부분을 찾는 데 도움이 됩니다.
배포가 실패했다면 진행 기록인 로그를 확인할 수 있습니다. AI에게 실패한 단계와 오류 내용을 전달하고, 고친 뒤 다시 배포합니다.
운영 중에는 상품 가격을 고치는 일도 있고, 화면에 새 기능을 추가하는 일도 있습니다. 어느 쪽을 바꾸는지 알면 매번 코드를 수정할 필요가 있는지도 구분할 수 있어요.
| 바꾸려는 것 | 보통 사용하는 방법 |
|---|---|
| 상품 이름·가격·공지 내용 | 관리자페이지에서 데이터 수정 |
| 새 화면이나 기능 | 코드 수정 후 배포 |
| 외부 서비스의 연결 설정 | 서버 환경변수 등 해당 설정 변경 |
환경변수는 서버 코드가 읽는 설정값입니다. 예를 들어 로그인용 비밀 값을 코드에 직접 적는 대신, 환경변수로 전달해 사용할 수 있어요. 이름을 어떻게 정하고 바꾼 값을 언제 반영할지는 프로젝트의 방식에 맞춥니다.
여기까지 정하면 대표님이 직접 운영할 일과 AI에게 개발을 요청할 일도 구체적입니다. 다음 기능을 생각할 때도 사용자 화면·운영 화면·보관할 정보를 함께 적어볼 수 있겠죠.
컴윗에는 이 과정에서 사용할 기본 코드와 일반 회원 로그인에서 분리한 관리자 구조, DB·파일 저장·로그인 기반, 호스팅·배포를 미리 준비해두었어요. 컴윗 프로젝트에서 시작하면 이런 연결을 하나씩 마련하는 과정을 줄이고, 만들 기능과 운영할 방법을 AI에게 설명하며 작업할 수 있어요.
새 기능을 요청할 때마다 “손님은 무엇을 하고, 나는 어디서 확인하고 수정할까?”를 함께 적어두면 운영에 필요한 화면을 덜 놓칠 수 있습니다.
첫 댓글을 남겨보세요.