「이 COBOL, 아무도 읽을 수 없어서 건드릴 수가 없습니다」
네, 아직도 레거시 코드 (Legacy Code)를 『성역』으로 두고 계신가요? AI에 붙여넣기만 하면 현대어로 번역해 줍니다.
동영상 「【AI】AI로 레거시 COBOL 코드 해독」의 보충 기사입니다.
동영상에서는 시간 관계상 다루지 못했던 상세 내용을 해설합니다.
네, 아직도 레거시 코드 (Legacy Code)를 『성역』으로 두고 계신가요? AI에 붙여넣기만 하면 현대어로 번역해 줍니다.
코드를 AI에 전달하고 『이 코드를 일본어로 설명하고, Python으로 다시 작성해 줘』라고 지시한다.
이하는 「레거시 코드를 AI로 현대화하기」라는 테마로, 위험성과 베스트 프랙티스 (Best Practice)를 전달하기 위한 구체적인 코드 예시입니다.
네, 아직도 레거시 코드 (Legacy Code)를 『성역』으로 두고 계신가요? 「돌아가고 있으니까 건드리지 않는다」는 가장 위험합니다.
레거시 코드 (Legacy Code)는 사양을 알 수 없게 되어, 수정할 때마다 버그가 늘어납니다.
하지만 지금은 AI에 붙여넣기만 하면,
- 일본어로 사양 설명
- 리팩터링 (Refactoring) 안 제안
- Python 등 다른 언어로 변환
까지 단시간에 수행할 수 있습니다.
<?php
$conn = mysqli_connect("localhost","root","","shop");
$id = $_GET['id'];
...
이 코드만 보면,
- SQL 인젝션 (SQL Injection) 대책 없음
- 에러 처리 없음
- 주석 없음
- 무엇을 하고 있는지 알기 어려움
이라는 전형적인 레거시 코드 (Legacy Code)입니다.
다음 코드를 분석해 주세요.
1. 초보자도 알 수 있는 일본어로 설명해 주세요
2. 문제점을 나열해 주세요
...
이 프로그램은
・URL에서 상품 ID를 취득한다
・데이터베이스에서 상품 정보를 검색한다
...
import sqlite3
def get_product(product_id: int):
conn = sqlite3.connect("shop.db")
...
개선점
- SQL 인젝션 (SQL Injection) 대책
- 함수화
- 타입 힌트 (Type Hint) 추가
- 가독성 향상
- 에러 처리를 추가하기 쉬운 구성
이 Python 코드에
・타입 힌트 (Type Hint)를 추가
・로그 출력
...
그러면, AI는 다음과 같은 코드까지 생성할 수 있습니다.
from fastapi import FastAPI
import sqlite3
app = FastAPI()
...
레거시 코드 (Legacy Code)를 통째로 AI에 넘기는 것이 아니라, 작은 단위(함수나 클래스 단위)로 분석시키면 설명이나 개선안의 정밀도가 높아집니다. 예를 들어 다음과 같이 의뢰하면 효과적입니다.
이 코드를 분석해 주세요.
・초보자용으로 일본어로 설명
・문제점을 나열
...
이와 같이 AI를 활용하면, 블랙박스화된 레거시 코드 (Legacy Code)의 이해, 모던 언어 (Modern Language)로의 이행, 문서 정비까지 효율적으로 진행할 수 있습니다.
레거시 해독 불능을 졸업하고, AI로 기술적 부채 (Technical Debt)를 일소합시다!
#아직도하고있나요 #코드의여신은보았다 #프로그래밍스킬
YouTube 쇼츠 영상에서도 같은 테마를 해설하고 있습니다 👇
채널 구독·좋아요도 부탁드립니다 🔔
이 기사는 「코드의 여신은 보았다!」 채널의 연동 기사입니다.