GPT4를 사용하지 않아도 가능할 수 있다 작성자는 gpt3.5에서는 시도해보지 않았다.
GPT4에는 다양한 플러그인이 있다. 그중 Software Architect GPT를 사용하게 된다면 명세서를 아주 쉽고 간편하게 짤 수 있다. 그럼 GPT한테 그림도 그려달라해? 그건 아니다.
일단 우리가 해야하는 과정을 잘 익혀야한다.
1. 지금 우리가 어떤 프로젝트를 하고 있는지 어떻게 되면 좋겠는지를 너무 길지 않게 약 3~4줄 정도로 글을 쓴다.
2. Software Architect GPT가 이거 맞나요?라고 물어볼 것이다. 그러면 이거 수정해줘 이건 아니야 좋아 이렇게 과정을 거치면서 내가 계획한 프로젝트와 일치하는지를 우리가 판별한다.
3. 그럼 이제 명세 / 다이어그램을 짜달라고 한다. 내가 GPT로 짜본 다이어그램의 종류는 아래에서 알려주겠다.
4. 다이어그램 코드를을 plantuml에서 넣으면 우리가 원하는 그 명세서가 생생된다. plantuml도 아래에서 자세하게 알려주겠다.
오히려 sql로 한줄한줄짜는 것보다는 훨씬 쉽다고 생각한다.
간단하다. 프로젝트 개요를 넣으면 된다. 예시를 들어서 작성해보겠다. 자동 문열림 옷장이다라고 해보자. 이런식으로 개발 배경을 넣어준다.
나같은 경우는 조금 간단하게 입력을 했다.
그러면 GPT가
이렇게 출력을 해준다.
위 사진처럼 출력을 해주면 내가 생각한게 맞나 아닌가를 말하면 된다. 이부분은 생략하겠다.
이제 명세를 짜달라고 이야기를 해본다.
이렇게 이야기를 하고,
:sectnums:
:toc:
== Background
사용자가 옷장 문을 수동으로 열고 닫는 데 불편함을 겪고 있어, 손을 가까이 대기만 해도 자동으로 문이 열리고 닫히는 시스템을 도입하기로 결정했다. 이 시스템은 특히 팔이나 손이 자유롭지 않은 상황에서 유용하게 사용될 수 있다.
== Requirements
. 손 감지 기능 (Must have)
* 사용자의 손이 옷장 문 손잡이 부근 5cm 이내로 접근하면 문이 자동으로 열린다.
. 안전 기능 (Should have)
* 사용자의 손이 감지 영역에서 벗어나면 자동으로 문이 닫히도록 한다.
. 에너지 절약 모드 (Could have)
* 장기간 사용되지 않을 때는 에너지 절약 모드로 전환하여 전력 소비를 줄인다.
. 사용자 설정 기능 (Won't have this time)
* 사용자가 감지 거리나 문 열림 속도를 조절할 수 있는 기능은 현재 프로젝트 범위에서 제외한다.
이 명세가 프로젝트의 기대와 일치하는지 확인해 주시고, 수정이나 추가가 필요한 부분이 있으면 알려주세요.@startuml
title SPEC-001: Automatic Wardrobe Door System
package "Automatic Wardrobe Door System" {
[Door Sensor] -down-> [Controller]: Detects hand\nand sends signal
[Controller] -down-> [Door Mechanism]: Opens/Closes door
[Power Supply] -left-> [Door Sensor]
[Power Supply] -down-> [Controller]
[User Interface] -left-> [Controller]: Optional adjustments
}
note right of [Door Sensor]
Detects hand within 5cm
Uses infrared or capacitive sensor
end note
note right of [Controller]
Processes sensor signal
Controls door mechanism
Manages energy saving mode
end note
note right of [Door Mechanism]
Physically opens and closes the door
end note
note right of [Power Supply]
Provides power to all components
Could include battery backup
end note
note right of [User Interface]
(Won't have this time)
Future feature for user settings
end note
@enduml
이런 코드를 준다. 이게 코드가 아닌 것처럼 보일지 몰라도 사용할 수 있는 코드다.
이까지 잘따라왔다면 이제 마지막 단계이다.
https://www.plantuml.com/plantuml/uml/SyfFKj2rKt3CoKnELR1Io4ZDoSa70000 라는 PlantUML이라는 웹사이트가 있다. 이 웹사이트에 들어가면
이러한 화면이 나온다. 가로로 반을 기준으로 위를 보면 코드를 넣는 공간이 있다. 여기에 아까 GPT가 준 코드를 넣는다.
그러면 명세가 나온다.
사실 이렇게 나온 명세서를 만족하지 못하는 경우가 있다. 이럴 경우에 또, GPT한테 수정을 해달라고 하면 바로 수정을 해준다.
진짜 세상이 너무나 좋다. 현업에서는 아직 sql로 명세서를 작성하고 있겠지만 이런 방법도 있다라는 것을 알려주고 싶었다. 얼마 전 알게되었는데 DB를 못하는 나에게는 정말 한줄기의 빛이라고 생각한다. 꽤 간단한 프로젝트나 시간이 짧다면 이 글처럼 해보면 시간을 매우 절약할 수 있다고 생각한다.
좋은 글 감사합니다 :)