개발일지/C#
[C#] 클린코드 - SQL 문자열 가독성 개선하기
연습용365
2025. 5. 28. 01:45
오늘은 지난주 만들었던 프로그램을 수정하면서 가독성 향상을 중심으로 수정 작업을 진행함. 기존 방식 그대로 사용하더라도 프로그램이 돌아가는데에는 문제가 없지만, 예기치 못 한 오류나 외부 시스템 변경 등으로 인한 긴급 수정 요청이 들어 왔을 때를 대비해 유지보수가 쉬운 구조로 리팩토링을 진행한 것
정렬 전
string sql = "UPDATE TEST_TABLE SET TEST_FLAG = 'C', USER_NAME = '" + ListInfo.USER_NAME + "' , USER_CODE = '" + ListInfo.USER_CODE + "', START_DATE = '" + ListInfo.START_DATE + "' , END_DATE = '" + ListInfo.END_DATE + "', INFO_NAME = '" + ListInfo.INFO_NAME + "' WHERE TEST_ID = '" + ListInfo.TEST_ID + "'";
처음에는 위처럼 작성 했다가, 쿼리문 수정하고 디버깅하는 과정에서 몇 번 오류가 남. C#은 처음이다보니 어떻게 정리해야 할지 까마득해서 chatGPT의 도움을 받았고, 실수 부담을 줄이기 위해 줄바꿈 + JS에서 자주 쓰는 백틱(``)과 ${} 구문처럼 `TEST_COL : ${testCol}` 이런 형태로 표현하고 싶어서 물어봤더니 아래와 같은 방식으로 정리해줌
정렬 후
string sql =
"UPDATE TEST_TABLE SET " +
$"TEST_FLAG = 'C', " +
$"SEND_FLAG = 'Y', " +
$"USER_NAME = '{ListInfo.USER_NAME}', " +
$"USER_CODE = '{ListInfo.USER_CODE}', " +
$"START_DATE = '{ListInfo.START_DATE}', " +
$"END_DATE = '{ListInfo.END_DATE}', " +
$"INFO_NAME = '{ListInfo.INFO_NAME}', " +
$"MODIFIED_AT = SYSDATE " +
$"WHERE TEST_ID = '{ListInfo.TEST_ID}'";
문자열을 이을 때
"문자열 = '" + 변수명 + "'" => $"문자열 = '{변수명}'"
+ 연산자로 이어주던 방식에서 변경을 했을 때 간결하고 좀 더 덜 헷깔리는듯? 오예