52일차 : OpenAI를 활용한 코드 생성 및 개선

Luis_J·2024년 11월 22일
0

MS_AI_School 5기

목록 보기
54/70
post-thumbnail

Summary

Open AI를 활용하면 자연어 기반으로도 쉽게 코드 생성이 가능하고, 코드의 수정과 리팩토리 쉽게 가능합니다.

Introduction

김수진 강사님

Azure OpenAI는 자연어를 기반으로 프로그래밍 코드를 생성하고, 기존 코드를 분석 및 개선하며, 개발 과정을 지원할 수 있는 강력한 도구입니다. 이를 활용하여 효율적인 개발 방법을 정리했습니다.

Code, Conept & Explanation

1. 자연어에서 코드 생성

Codex 모델을 통해 GPT-4 등과 같은 모델에서 자연어로 코드를 작성 가능.
예시:
프롬프트: Write a function for binary search in Python.
결과: Python으로 작성된 이진 탐색 함수가 생성됩니다.

2. 주요 기능

1) 코딩 언어 변경

기존 코드를 다른 프로그래밍 언어로 변환 가능.
예시:
프롬프트: Convert this Python code to C#.

2) 코드 이해

익숙하지 않은 언어로 작성된 코드를 이해할 수 있도록 설명 요청 가능.
프롬프트: Could you explain what this code is doing?

3) 코드 완료 및 단위 테스트 작성

주석과 함수 이름만으로 코드의 나머지 부분을 완성.
단위 테스트를 자동으로 생성하여 코드 안정성 향상.
프롬프트: Write three unit tests for this function.

4) 버그 수정 및 성능 개선

코드의 오류를 식별하고 수정하며, 성능을 최적화.
프롬프트: Fix the bug in this function.

5) 코드 리팩토링

가독성과 유지보수를 위해 코드 구조 개선.
예시:
중복 코드 제거, 함수 분리, 복잡한 조건문 단순화.

3. 실습: Azure OpenAI로 코드 생성

1) 실습 시나리오

  • AI를 활용하여 코딩 작업을 효율화하는 소프트웨어 개발자의 역할.
  • 코드 생성, 주석 추가, 리팩토링, 성능 개선 실습.

2) 실습 과정

  1. Azure Portal에서 OpenAI 리소스 생성.
  2. Azure OpenAI Studio에서 모델 배포 (gpt-3.5-turbo).
  3. Chat Playground에서 프롬프트 입력 및 결과 확인.
  4. Visual Studio Code와 GitHub 연동 후 코드 실습.

4. 예제 코드

Python으로 주석 추가 요청

# Prompt: Add comments to this function
def factorial(n):
    if n == 0:  # Base case: factorial of 0 is 1
        return 1
    return n * factorial(n - 1)  # Recursive case: n * (n-1)!

버그 수정 요청

# Prompt: Fix the bug in this function
def divide_numbers(a, b):
    try:
        result = a / b
        return result
    except ZeroDivisionError:
        return "Cannot divide by zero."

5. 이미지 생성: DALL-E 활용

  • DALL-E 모델을 사용해 자연어 기반으로 이미지를 생성 가능.
  • 예시 프롬프트: Create an image of a squirrel riding a motorcycle.
  • Azure OpenAI Studio의 DALL-E Playground에서 이미지 생성 및 스타일 지정 가능.

6. REST API 활용

REST API를 사용해 Azure OpenAI와 통신하며 이미지 또는 코드를 생성.
예제:

curl -X POST https://<endpoint>/openai/deployments/<deployment>/completions \
    -H "Content-Type: application/json" \
    -H "api-key: <api_key>" \
    -d '{"prompt": "Write a Python function for bubble sort.", "max_tokens": 100}'

Challenges & Solutions

Results

What I Learned & Insights

chatGPT를 주로 SQL 코드 수정시 사용한 경험은 있었지만
파이썬과 javascrpit, gradio 이번에 제대로 활용하게 됐습니다.

소감은 초반은 60~70%까지는 혁신적으로 빠르게 구현할 수 있지만, 마지막 10~20%를 채우기 위해서는 개인의 해당 언어 활용 역량이 뛰어나야함을 깨달았습니다.

해당 언어에 대한 기본지식이 있는 상황에서
원하는 목표가 구체화됐을 때
OpenAI를 활용한다면

기존과 비교불가의 역량을 갖게 됩니다.

Conlusion

Azure OpenAI를 활용하면 코딩의 효율성을 크게 향상할 수 있습니다. 특히, 반복적인 작업을 줄이고 창의적이고 효율적인 코드 생성 및 개선을 지원합니다.

profile
New life & History

0개의 댓글

관련 채용 정보