티스토리 뷰

카테고리 없음

바이브 코딩

정두현의아이티세상 2025. 11. 11. 22:44

java/spring mvc기반으로 바이브 코딩을 perplexity로 하는 각 단계별 프롬프트를 알려줘

 

바이브 코딩의 개념을 설명하고 구성요소를 상세히 설명해주세요

 

바이브 코딩의 개념을 설명하고 구성요소를 설명해주세요. 각 단계별 프롬프트도 알려줘

 

 

 

 

 

예시 1 — “엔터프라이즈 톤 + 클린 아키텍처”

 
이번 프로젝트의 코드 톤은 ‘엔터프라이즈’. 원칙은 SOLID + 클린 아키텍처야. Controller는 얇게, Service는 트랜잭션 경계로, Repository는 단일 책임만. 예외는 공통 JSON 포맷으로 반환하고, DTO/Entity 분리는 철저히. 이 원칙과 톤을 지켜서 회원 관리 REST API 코드를 작성해줘.

예시 2 — “미니멀 톤 + 테스트 가능성 원칙”

 
이번 코드 vibe는 ‘미니멀’이야. 테스트 용이성을 최우선으로, 의존성은 생성자 주입만, 불필요한 주석과 복잡한 예외처리는 제거. MockMvc 테스트가 바로 가능한 구조로 만들어줘.

예시 3 — “퍼포먼스 톤 + 확장 가능성 원칙”

 
이번 프로젝트는 대용량 트래픽 환경을 고려한 ‘퍼포먼스 중심’ vibe야. Service는 read/write 분리 구조, Repository는 Projection 기반. Cacheable 어노테이션과 Connection Pool 튜닝을 포함해줘. 확장성을 위해 인터페이스 중심으로 설계해줘.

예시 4 — “감성 톤 + 검증/보안 원칙”

 
이번 코드는 사용자 감성 중심의 ‘따뜻하고 명료한’ vibe로 작성해줘. 입력 Validation은 세심하게, 에러 메시지는 사용자 친화적으로. 코드 주석에는 ‘왜’보다는 ‘누구를 위해’라는 관점으로 설명해줘.
 

 

 

chatGPT

 

바이브 코딩 절차 (스텝별 프롬프트 템플릿 포함)

Step 1. Vibe 선언(컨텍스트 고정)

ChatGPT Project의 첫 메시지로 고정(핀)하면 좋습니다.

프롬프트

 
너는 시니어 Java 아키텍트이자 Spring MVC 전문가야. 이번 프로젝트 vibe는 “클린·미니멀·엔터프라이즈 준수”야. 반드시 지킬 규칙: 1) MVC 계층 분리, DTO/Entity 분리, 생성자 주입만 사용 2) Service에만 @Transactional, Controller는 얇게 유지 3) 글로벌 예외처리(@ControllerAdvice)와 표준 에러 포맷 적용 4) Bean Validation 적극 사용(@Valid, @NotBlank 등) 5) 주석·로그는 차분하고 절제된 톤, 메서드명은 목적지향적 이 규칙을 이후 모든 코드/리뷰/문서에 일관 적용해줘.

Step 2. 스캐폴딩(프로젝트 뼈대 생성)

프롬프트

 
Spring Boot MVC(3.x) + Thymeleaf + JPA + H2로 "Guestbook" CRUD 데모 프로젝트를 생성해줘. 패키지: com.example.guestbook 레이어: controller/service/repository/domain/dto/config/exception 필수 파일 목록과 각 파일 역할을 트리 구조로 제시하고, pom.xml 의존성과 application.yml도 작성해줘.

Step 3. 도메인/DTO/리포지토리 작성

프롬프트

 
도메인: GuestbookEntry(id, author, content, createdAt) 요구: id(Long, PK, auto), author/content는 NotBlank, createdAt은 엔티티 생성 시 자동 세팅. DTO: CreateEntryRequest(author, content), EntryResponse(id, author, content, createdAt) Repository: JpaRepository 기반. 코드 작성해줘.

Step 4. 서비스·트랜잭션·유즈케이스

프롬프트

 
Service 인터페이스와 구현을 만들어줘. 기능: 등록(create), 단건조회(get), 페이지조회(list, Pageable), 삭제(delete). 트랜잭션은 Service에서만 관리해줘(@Transactional). DTO 매핑은 Service에서 수행. N+1 주의.

Step 5. 컨트롤러(최소주의) + Validation + 예외

프롬프트

 
GuestbookController를 작성해줘. - POST /entries: @Valid CreateEntryRequest → 생성 → 201 반환 + Location 헤더 - GET /entries/{id}: 단건 조회 - GET /entries?page=..: 페이지 조회 - DELETE /entries/{id}: 삭제 → 204 빈 유효성 실패/엔티티 미존재 시 글로벌 예외 처리 사용.

Step 6. 글로벌 예외/에러 포맷

프롬프트

 
@ControllerAdvice로 GlobalExceptionHandler 작성해줘. - MethodArgumentNotValidException → 400 - EntityNotFoundException → 404 - 그 외 → 500 공통 에러 응답 JSON: { "timestamp": ISO-8601, "status": 400/404/500, "error": "…", "message": "…", "path": "…" }

Step 7. 뷰(Thymeleaf) & Vibe 튜닝

프롬프트

 
Thymeleaf 템플릿 2개 작성: - 리스트 페이지(index.html): 페이징, 글 작성 폼, 미니멀 톤 - 상세 페이지(detail.html): author, content, createdAt 단정한 타이포그래피 스타일은 간결하고 따뜻한 느낌(미니멀). 인라인 CSS 정도로.

Step 8. 테스트/문서/리팩토링 루프

프롬프트

 
Controller 단위테스트(MockMvc)와 Service 단위테스트(JUnit5) 작성해줘. 성공/실패 케이스 포함, Validation과 예외 흐름 검증. 그리고 README.md와 API 명세(Swagger 미사용 시 표 형태) 생성해줘. 이후, 메서드명/로깅 톤/주석을 vibe에 맞게 정돈해줘.
댓글