비개발자가 CURSOR로 웹앱 만들기💪

소개

‎​CURSOR로 의약품 식별 앱을 만들어 보았습니다.

의약품 식별은 "약품을 낱알 상태에서 다른 의약품과 구별하여 그 의약품임을 인식하는 행위"를 의미합니다. 간단히 말해 약의 모양을 보고 어떤 의약품인지 찾는 행동을 의미합니다. 주로 KIMS, 약학정보원 등의 의약정보사이트에서 검색을 하여 알아낼 수 있습니다.

‎​

진행 방법

크게 세단계로 진행합니다.

  1. chatGPT와 PRD 만들기

  2. CURSOR에게 웹앱을 만들어달라고 요청하기

  3. LiveServer 플러그인을 설치해서 확인하기

1. chatGPT와 PRD 만들기

성구님이 만드신 프롬프트를 변형하였습니다. 데이터는 공공데이터에서 가져왔습니다. 이미지는 위에서 보여드린 약학정보원 식별 페이지 이미지를 주었습니다.

간단한 의약품식별 서비스를 만들려고해. HTML, CSS, JS로 만들예정, 백엔드없이 프론트엔드만으로 구현하려고해서 브라우저의 로컬스토리지를 사용하면 좋을 것 같아. 

기본데이터는 일단 아래로 해줘
품목일련번호	품목명	성상	큰제품이미지	표시앞	표시뒤	의약품제형	색상앞
200808876	가스디알정50밀리그램(디메크로틴산마그네슘)	녹색의 원형 필름코팅정	https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300104	IDG		원형	연두
200808877	페라트라정2.5밀리그램(레트로졸)	어두운 황색의 원형 필름코팅정	https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300107	YH	LT	원형	노랑
200808948	졸뎀속붕정(졸피뎀타르타르산염)	흰색의 원형 구강붕해정제	https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300128			원형	하양

기본적인 식별페이지는 이미지의 모습이야. 요구사항에 맞게 PRD를 작성해줘.

<GPT의 답변>

이미지를 바탕으로 한 의약품 식별 서비스의 기본 페이지에 대한 PRD(제품 요구사항 문서)를 작성하겠습니다. 이 서비스는 의약품의 모양, 색상, 무늬 등을 선택하여 사용자가 의약품을 식별할 수 있도록 도와주는 웹 페이지입니다.

1. 개요
제품명: 간단한 의약품 식별 서비스
목표: 사용자가 의약품의 외형적 특징을 통해 해당 의약품을 식별할 수 있게 하는 웹 기반 서비스 제공
대상 사용자: 일반 대중, 약사, 의료 전문가
2. 기능 요구사항
2.1 기본 구성 요소
식별 입력항목
모양: 사용자가 의약품의 모양을 선택할 수 있는 버튼들(원형, 타원형, 장방형 등)
색상: 의약품의 색상을 선택할 수 있는 버튼들
무늬: 의약품 표면의 무늬(예: 줄무늬, 점무늬)를 선택할 수 있는 옵션
분할선: 의약품에 분할선이 있는지 선택할 수 있는 옵션
검색 및 결과
검색 버튼: 입력된 조건에 따라 의약품을 검색하는 버튼
결과 표시 영역: 검색 결과를 표시하는 영역
2.2 로컬 스토리지 활용
검색 기록 저장: 사용자의 검색 기록을 브라우저의 로컬 스토리지에 저장하여, 페이지를 재방문 했을 때 이전 검색 내용을 빠르게 확인할 수 있도록 함
3. 사용자 인터페이스
레이아웃: 첨부된 이미지를 참조하여 UI 구성
스타일: 사용자에게 친숙하고 접근하기 쉬운 디자인
응답성: 다양한 디바이스(데스크탑, 태블릿, 모바일)에 대응하는 반응형 웹 디자인
4. 기술 스택
프론트엔드: HTML, CSS, JavaScript
데이터 저장: HTML5의 로컬 스토리지 사용
라이브러리/프레임워크: 필요에 따라 jQuery 또는 Vanilla JavaScript 사용
5. 보안 고려사항
데이터 보호: 로컬 스토리지에 저장되는 데이터는 익명성을 유지하며, 개인 식별 정보는 저장하지 않음
6. 배포 및 유지보수
배포: GitHub Pages 또는 유사한 정적 호스팅 서비스를 통해 배포
유지보수: 정기적으로 사용자 피드백을 받아 기능 개선 및 버그 수정 진행
이 PRD는 프로젝트의 출발점으로 사용될 수 있으며, 프로젝트의 진행 상황에 따라 추가적인 요구사항이 포함될 수 있습니다.

const medicines = [
    { 
        serialNumber: '200808876',
        name: '가스디알정50밀리그램(디메크로틴산마그네슘)',
        appearance: '녹색의 원형 필름코팅정',
        imageUrl: 'https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300104',
        markingsFront: 'IDG',
        markingsBack: '',
        form: '원형',
        colorFront: '연두'
    },
    {
        serialNumber: '200808877',
        name: '페라트라정2.5밀리그램(레트로졸)',
        appearance: '어두운 황색의 원형 필름코팅정',
        imageUrl: 'https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300107',
        markingsFront: 'YH',
        markingsBack: 'LT',
        form: '원형',
        colorFront: '노랑'
    },
    {
        serialNumber: '200808948',
        name: '졸뎀속붕정(졸피뎀타르타르산염)',
        appearance: '흰색의 원형 구강붕해정제',
        imageUrl: 'https://nedrug.mfds.go.kr/pbp/cmn/itemImageDownload/147426403087300128',
        markingsFront: '',
        markingsBack: '',
        form: '원형',
        colorFront: '하양'
    },
    // 추가 의약품 데이터
];

2. CURSOR에게 요청하기

이제 cursor를 열었습니다. 성구님의 강의에서 'CHAT'이 아닌 'compser'를 사용한다는데 왜 저는 CHAT 옆에 compser가 안뜨는것이죠..?! 혼자 고심하다가 compser는 폴더전체를 대상으로 한다고 해서 일단 'create folder'를 눌러 폴더를 만들어주었습니다.

하지만 폴더를 만들어도 나타나지 않습니다.

이래저래 찾아보다가 실패하였습니다. 포기할까...하다가 성구님의 말대로 command+shift+I를 눌러봤더니 똑같은 창이 뜨더라구요.. 그래서 그냥 진행해보았습니다. 먼저 노트패드를 만들어 PRD를 넣어줍니다.

주황색 버튼이 있는 검은색 화면

왼쪽 아래의 'create New'를 눌러 'New compser'창을 열고 요청합니다. 특히 '@'을 사용하여 PRD를 연결해주어야합니다.

그랬더니... 오오.. 정말 신세계입니다! 눈앞에서 알록달록 코드들이 써지고 파일들이 뿅뿅 생깁니다.

저는 gpt로 apps script를 짜는데, 코드를 일일이 옮길 필요 없이 바로 'accept all'로 해결이 되니 너무나 편리합니다. (compser 밑에 'accept all'이라는 파란 버튼이 생기는데 눌러주면 바로 저장됩니다.)

3. live Server 플러그인으로 확인하기

플러그인 버튼을 눌러서 live Server를 깔아줍니다.

여담이지만 저는 성구님처럼 compser창이 CHAT 옆으로 나타나지 않고 이렇게 작은 창으로 계속 보입니다.. 아시는분 좀 알려주십셔ㅠㅠ

다시 파일로 돌아와 'index.html'을 누르고 마우스 오른쪽버튼을 클릭하면 'Open with Live Server'가 있습니다. 눌러줍니다.

Adobe Acrobat의 코드 편집기 스크린샷

짠..! 식별페이지가 생겼습니다!

심지어 사진까지 가져와주네요! 놀랍습니다.

남은 스터디 기간동안 고도화해봐야겠어요~

결과와 배운 점

CURSOR로 개발하니 너무너무 재밌습니다~ 코드를 옮기는 과정 없이 버튼하나로 저장되는 점, 배포하고 새로고침하는 과정없이 바로바로 확인할 수 있는 점이 너무 좋네요~

특히 초보자가 코드를 추가로 변경할때, 어느 부분을 어떻게 바꿔야하는지 막막한데 앞으로 너무 기대됩니다~ 친절하게 알려주신 성구님 감사드립니다!

도움 받은 글

https://www.gpters.org/dev/post/cursor-study-practice-session-T2LLArVD0CilbC2

12
16개의 답글

👉 이 게시글도 읽어보세요