티스토리 뷰

오늘은 AI 기반 코딩 어시스턴트인 Github Copilot 에 대해 알아보려고 합니다. GitHub Copilot은 OpenAI의 Codex 모델을 기반으로 만들어진 도구로, 코드 자동 완성, 컨텍스트 기반 코드 제안, 심지어 주석만으로도 코드를 생성해 주는 똑똑한 파트너입니다.

Java, Python, JavaScript 등 다양한 언어를 지원하며, 특히 IntelliJ IDEA 같은 IDE와의 통합이 뛰어나 개발 생산성을 크게 높여줍니다.  예를 들어, "학생 엔티티 클래스를 만들어줘"라는 주석을 쓰면, Copilot이 JPA 어노테이션까지 포함한 코드를 제안해 줍니다. 이 글에서는 Copilot을 IntelliJ에 연결하는 방법과 SpringBoot 프로젝트에서 활용하는 예제를 소개하겠습니다.


1. Github 계정준비

  • Github Copilot 은 유료 서비스로, 개인 플랜 또는 비즈니스 플랜을 구독해야 합니다. 이번 포스팅에서는 1달 무료 평가판을 신청하여 진행하도록 하겠습니다.
  • 지금부터 진행되는 단계들은 Github 계정에 로그인한 상태로 진행됩니다.

2. IntelliJ 에서 플러그인 설치

  • 간단한 SpringBoot 프로젝트를 생성합니다.

  • IntelliJ IDEA를 실행하고, File > Settings > Plugins (Mac의 경우 IntelliJ IDEA > Preferences > Plugins)로 이동합니다.
  •  Marketplace 탭에서 GitHub Copilot을 검색한 후 Install 버튼을 클릭합니다.
  • 설치 후 Restart IDE를 클릭해 IntelliJ를 재시작합니다.

  • IntelliJ 재시작 후, 화면 오른쪽 하단에 GitHub Copilot 상태 아이콘이 나타납니다. Sign in to GitHub을 선택합니다.

  • Copy and Open 버튼을 클릭합니다.

  • 브라우저가 열리며 8자리 디바이스 코드가 표시됩니다. 이 코드를 GitHub 웹사이트의 디바이스 인증 페이지에 입력합니다.

  • Authorize GitHub Copilot Plugin을 클릭하면 인증이 완료됩니다.

  • IDE 로 돌아와서 Settings > Github Copilot 를 찾아 GitHub Copilot account settings 를 클릭합니다.

  • Github 페이지로 이동되면 Start a free trial  를 클릭합니다.

  • 30일 동안 무료로 사용가능하면, 30일 이후에는 자동 결제되므로 그전에 미리 취소하면 요금이 부과되지 않습니다.
  • Upgrade to Copilot Pro 버튼을 클릭하시고, 개인정보 및 카드정보를 입력합니다.

  • Activate HitHub Copilot Pro 버튼을 클릭하고 IDE 로 돌아갑니다.

  • Settings 에서 언어와 Github 계정을 연결해 줍니다.

  • Copilot의 단축키는 기본적으로 Tab으로 제안을 수락하고, Alt + ] 또는 Alt + [ 로 다른 제안을 탐색할 수 있습니다.

3. SpringBoot 예제

이제 SpringBoot 프로젝트에서 GitHub Copilot을 활용해 생산성을 높이는 방법을 살펴보겠습니다. 간단한 학생 관리 REST API를 만드는 예제를 통해 Copilot의 힘을 체감해 보겠습니다.

 

3.1. 의존성 추가

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    runtimeOnly 'com.h2database:h2'
    implementation 'org.projectlombok:lombok'
    annotationProcessor 'org.projectlombok:lombok'

    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

3.2. JPA 엔티티 생성

패키지경로/model 폴더에 Student.java 파일을 만들면 기본적으로 코드를 추천해 주고, 원하는 내용이 있을 경우 요구사항을 입력합니다.


3.3. JPA Repository 생성

패키지경로/repository 폴더에 StudentRepository.java 파일을 만들면 기본적인 프롬프트들이 있어, 참고하여 요청할 수 있습니다.

import com.copilot.github_copilot_test.model.Student;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface StudentRepository extends JpaRepository<Student, Long> {
  List<Student> findAll();
}

3.4. Controller 생성

마찬가지로 Controller 를 생성하고 추천 프롬프트로 소스를 완성합니다.

import com.copilot.github_copilot_test.model.Student;
import com.copilot.github_copilot_test.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/students")
public class StudentController {

  @Autowired
  private StudentRepository studentRepository;

  @GetMapping
  public List<Student> getAllStudents() {
    return studentRepository.findAll();
  }

  @PostMapping
  public Student addStudent(@RequestBody Student student) {
    return studentRepository.save(student);
  }

  @DeleteMapping("/{id}")
  public void deleteStudentById(@PathVariable Long id) {
    studentRepository.deleteById(id);
  }

}
  • 서버를 실행하고, Postman 이나 curl 로 테스트 가능합니다.

4. 마무리

GitHub Copilot은 SpringBoot 개발에서 반복 작업을 줄이고, 아이디어를 빠르게 코드로 구현하는 데 큰 도움을 줍니다. IntelliJ와의 원활한 통합 덕분에 초보자부터 숙련된 개발자까지 모두 생산성을 높일 수 있습니다. 하지만 Copilot은 도구일 뿐, 최종 코드는 본인의 판단과 책임이 중요하다는 점을 기억해 주세요.

감사합니다.

최근에 올라온 글
Total
Today
Yesterday