"복잡한 로직, 반복 코드, 고민할 시간 줄이고 바로 리팩토링하기"
문제 상황: 리팩토링은 늘 뒷전이다
개발자로 일하면서 가장 귀찮지만 중요한 작업 중 하나가 바로 "리팩토링"이다.
처음 기능을 만들 땐 빨리 동작만 하게 만들기 바쁘다 보니, 나중에 보면 코드가 엉망이 되어 있다. 변수명은 중구난방, 로직은 길고, 중복도 가득하고...
“나중에 정리하자” 하고 넘어가지만, 실은 그 ‘나중’은 영영 오지 않기도 한다.
나도 그런 경험이 많았다. 실제로 컨트롤러 메서드 안에 서비스 로직을 절반 이상 때려 넣고, 그대로 배포한 적도 있었다. 나중에 기능이 하나 더 붙으면서 그 코드를 손보는데, 도저히 뭘 건드려야 할지 감도 안 잡히더라.
그래서 그때부터 ChatGPT를 코드 리뷰 파트너처럼 활용하기 시작했다. 혼자 고민하고 망설이던 시간을 절반 이상 줄일 수 있었다.
내가 시도한 방법: ChatGPT에게 코드 맡겨보기
처음엔 정말 단순하게 시도했다. 아래처럼 말이다.
"이 코드 리팩토링 해줘. 가독성을 높이고 메서드 분리도 해줘."
ChatGPT에 그냥 붙여넣기만 했는데, 생각보다 괜찮은 결과가 나왔다.
특히 ‘중복 제거’나 ‘조건문 단순화’, ‘네이밍 변경’ 같은 부분에서는 사람보다 더 빠르게 구조를 잡아줬다.
하지만 중요한 건 그냥 넘기기만 해선 안 된다는 거다. 프롬프트를 어떻게 주느냐에 따라 퀄리티가 확 달라진다.
해결 과정 및 코드 예시: Before & After로 비교하기
🧱 리팩토링 전 코드 (Before)
@GetMapping("/users")
public ResponseEntity<List<UserDto>> getUsers() {
List<User> users = userRepository.findAll();
List<UserDto> result = new ArrayList<>();
for (User user : users) {
UserDto dto = new UserDto();
dto.setName(user.getName());
dto.setEmail(user.getEmail());
result.add(dto);
}
return ResponseEntity.ok(result);
}
💡 GPT에 준 프롬프트
"아래 Spring Boot 컨트롤러 메서드를 리팩토링해줘. DTO 변환은 ModelMapper 스타일로 하고, 메서드 분리해서 가독성 좋게 해줘."
✅ 리팩토링 결과 (After)
@GetMapping("/users")
public ResponseEntity<List<UserDto>> getUsers() {
List<User> users = userRepository.findAll();
List<UserDto> result = convertToDtoList(users);
return ResponseEntity.ok(result);
}
private List<UserDto> convertToDtoList(List<User> users) {
return users.stream()
.map(user -> modelMapper.map(user, UserDto.class))
.collect(Collectors.toList());
}
정말 단순해졌고, 가독성도 훨씬 좋아졌다.
특히 처음 접한 사람도 이 코드는 금방 이해할 수 있을 정도로 명확해졌다.
실무 적용 팁: 이렇게 쓰면 진짜 도움된다
- 구체적인 지시어를 써라
- "리팩토링 해줘"보다 → "조건문을 enum으로 리팩토링해줘", "중복 메서드를 유틸로 빼줘" 처럼 디테일하게
- 내 프로젝트 스타일을 알려줘라
- "Lombok을 쓰고 있어", "RestController 기반이야" 등 환경을 설명해주면 GPT도 더 잘 이해한다.
- 한번에 큰 코드 말고, 메서드 단위로 쪼개라
- 너무 많은 걸 한 번에 시키면 GPT도 헷갈린다. 작은 단위로 주고 결과를 조합하는 게 효율적이다.
- 리팩토링 이유를 설명받아라
- 단순히 바뀐 코드만 받지 말고, “왜 이렇게 고쳤는지”도 설명해 달라고 하면 학습에도 도움이 된다.
정리 및 느낀 점
예전에는 리팩토링이 ‘해야 하는 일’이었지만, 이제는 **GPT 덕분에 ‘할 만한 일’**이 됐다.
시간도 덜 들고, 내가 놓쳤던 코드의 문제점도 발견할 수 있다.
실무에서 코드를 조금 더 깔끔하게 만들고 싶은데 시간이 없거나, 어디서부터 손대야 할지 모르겠을 때, ChatGPT는 진짜 괜찮은 파트너가 될 수 있다.
물론 최종 책임은 내 몫이지만, 그 과정의 스트레스를 GPT가 덜어주는 셈이다.
🎯 요약
- 반복되는 리팩토링 작업, ChatGPT로 빠르게 개선 가능
- 프롬프트는 구체적으로! → 조건, 환경, 목적을 명확히
- 작은 단위로 시도하고, 결과를 리뷰하는 습관이 중요
- GPT는 완성도 높은 코드보단, 생산성을 높여주는 도구로 활용하자
앞으로는 GPT 없이 리팩토링 못할 수도 있다.
더 똑똑하게 개발하고 싶다면, GPT를 도구로 쓰는 연습을 오늘부터 시작해보자.
'AI' 카테고리의 다른 글
| ChatGPT로 API 명세서 자동화하기 (Swagger보다 빠르게) (1) | 2025.07.30 |
|---|---|
| 개발자가 ChatGPT를 활용해서 업무 시간 줄이는 법 (1) | 2025.07.25 |
| ChatGPT로 테스트 코드 자동 생성하기, 실무에 이렇게 활용했습니다 (1) | 2025.07.24 |
| 코드 주석 추가 기능(Code Annotation) 소개 (2) | 2024.10.14 |
| 감정 추론 기능 (Sentiment Analysis) 소개 (2) | 2024.10.14 |