가취공부하자

[NAVER] ChatGPT를 활용한 소프트웨어 개발 프로세스 지원 방안 본문

기술블로그

[NAVER] ChatGPT를 활용한 소프트웨어 개발 프로세스 지원 방안

keepGGoing 2024. 5. 30. 00:25

https://d2.naver.com/helloworld/7976382

 

소프트웨어 개발 프로세스를 간략히 설명한 후, 각 단계에서 ChatGPT가 구체적으로 어떤 도움을 줄 수 있는지 살펴보겠습니다.

소프트웨어 개발 프로세스

1. 요구사항 분석 : 프로젝트의 목표, 기능을 명확히 이해

2. 설계: 전체적인 구조를 결정

3. 구현 : 설계를 통해 정의된 구조와 명세를 기반으로 소스 코드 작성

4. 테스트 : 소프트웨어가 요구 사항에 부합하는지 확인

5. 배포 : 소프트웨어를 고객에게 전달

6. 유지보수 : 소프트웨어 사용 중 발생하는 문제 해결, 변경된 요구 사항이나 기술 발전에 따라 개선

 

먼저  "구현"단계에서 ChatGPT를 어떻게 활용할 수 있는지 알아보겠습니다.

구현 단계에서의 활용 방안

"구현" 프로세스

1. 코딩 : 설계 문서를 참조해 적절한 프로그래밍 언어와 도구로 소스코드 작성

2. 통합 : 여러 모듈과 컴포넌트를 통합해 전체 시스템을 완성

3. 최적화 : 소프트웨어 성능 향상을 위한 코드 최적화

4. 코드 리뷰 : 구현된 코드를 팀원들이 검토하여 오류, 버그, 개선사항을 찾고 수정

 

구현 단계에서의 ChatGPT의 활용 방법

1. 코딩 지원 :구현과 디버깅에 활용

2. 최적화 지원 : 코드 최적화를 위한 제안을 받아 더 나은 코드를 작성하는 습관을 익히게 함

3. 코드 리뷰 : 코드를 검토해 버그, 보안 취약점을 찾아냄

 

이러한 활용 방법을 통해 코드 품질을 향상시키고 개발 시간을 단축할 수 있습니다.

 

ChatGPT 활용 질문 예시

아래와 같은 순서로 질문하거나, 질문 샘플을 참고하여 ChatGPT를 효과적으로 활용할 수 있습니다.

 

1. 코딩지원을 위한 질문  :  OO을 만들어줘 

  • Either를 TypeScript로 구현해줘
  • mocha로 Either코드의 테스트 코드를 구현해
  • 구체적인 코드 질문:
  • Either를 상속하려면 Right, Left를 다 상속해서 구현해야 해?
  • CustomEither에 공통 로직을 넣고 싶으면 어떻게 해?
  • CustomRight가 CustomEither를 상속 받지 않았는데 어떻게 오버라이드를 하는 거지?

2. 구현 지원 : 왜 그런지 알려줘

  • OO의 다른 이름은 없어?
  • FuncA의 기능을 FuncB에 넣으면 안 돼?
  • ClassA에서 FuncB가 있어도 되나?
  • ClassA에서 FuncB와 FunC 두 개를 따로 만들어야 해?
  • FuncA가 좋아? 아니면 FuncA, FuncB로 나누는 게 좋아?
  • TypeA와 TypeB의 차이가 뭐야?
  • 다른 방법은 없어?
  • LibraryA를 사용했을 단점은 없어?

3. 최적화, 코드 리뷰 지원 :코드에 문제가 없는지 알려줘, 코드를 문서화해줘

  • (코드를 붙인 후) 코드를 설명해 줘
  • 최적화해줘
  • 코드리뷰해 줘
  • 코드를 문서화해줘

 

문제 해결 프로세스에서 ChatGPT 활용

문제 해결 프로세스를 통해 구체적인 문제를 정의하고 해결안을 도출하며, ChatGPT를 활용하여 최적의 해결책을 찾아낼 수 있습니다.

1) 문제 정의 : 이슈나 문제를 정확하게 규정

2) 해결안 도출 : 해결안을 모색하고 해결책을 선택

3) 평가 : 도출된 해결안이 문제를 해결하고 있는지 평가

 

상기 글에선 예시를 보여주며 어떻게 ChatGPT를 설명합니다.

 

문제정의 :해결해야 하는 문제 :  조상(Ancestor)중 특정 Class를 가지고 있는 Element 제외를 구현

 

해결안 모색 예시:

  • (개발자가 떠오른 아이디어가 있다면) OO을 사용할 수 있지 않아?
  • 다른 방법은 없어?라고 반복해서 질문한다.

해결안 도출 예시: 성능과 가독성 기준으로 최적의 해결안을 선택합니다.

  • 위에 말한 방법 중 가장 성능이 좋은 방법은?
  • A와 B를 비교했을 때 어느 것이 더 성능이 좋아?

평가  : 해당 코드가 잘 동작하는 확인하는 단계

  • 구현한 A에 대해 테스트 코드 구현해 줘

결론

위와 같은 방식으로 ChatGPT를 활용하면 소프트웨어 개발의 각 단계에서 효율적으로 문제를 해결하고, 코드 품질을 향상하며 개발 시간을 단축할 수 있습니다.

 

 

'기술블로그' 카테고리의 다른 글

[HERE] WKT가 무엇인지? WKT 검증방법  (0) 2024.05.13