카테고리 없음

tip) f-string 말고 파라미터 바인딩

포스 삼촌 2026. 4. 18. 15:20

Query 명령을 날릴 때는 파라미터 바인딩

요가센터 1호점과 2호점 확장을 위해 늘 운영을 고려해야 하는 원장 - 캡틴 나연~!

 

캡틴 나연과 함께 바이브 코딩을 하면서 파이썬 코드를 조금씩 보기 시작하는 강사 샘들~!

우리 강사 샘들이 AI의 도움을 받아 짜내려가는 코드들에 아래와 같은 추천 사항이오.

 


 

파라미터 바인딩(Parameter Binding)  정식 용어입니다. 

우리 나연쓰떼~ 표준으로 공지하기 좋은 표현이에요.

 

나비까 만들어준 쿼리를 파이썬 코드에서 실행할 때

teacher_info = session.sql(f"""
	SELECT HNAME, ENAME, MAIN_CLASS_NM, EMAIL
      FROM DB_NYU_GOLD.SCH_GLD_DATA.TD_TEACHER_INFO
     WHERE MEMBER_ID = '{id_num}' AND MAIN_CLASS_CD = '{main_cls_cd}'
""").collect()

 

위와 같이 변수를 {id_num} 으로 명령문에 전달하는 f-string 방식은

값이 SQL 문자열에 직접 들어가서, 악의적 입력이 SQL 구문을 변조할 수 있어요.

보안업계 용어로 SQL Injection이라 해요.

 

그래서 아래와 같이 사용하는 파라미터 바인딩(? + params)

값과 SQL 구문이 분리되어 전달되므로 DB가 값을 "데이터"로만 처리합니다. 추천!^^

습관적으로 파라미터 바인딩을 쓰는 게 좋은 코딩 관행이에요.

 

teacher_info = session.sql(f"""
	SELECT HNAME, ENAME, MAIN_CLASS_NM, EMAIL
      FROM DB_NYU_GOLD.SCH_GLD_DATA.TD_TEACHER_INFO
     WHERE MEMBER_ID = ? AND MAIN_CLASS_CD = ?
""", params=[id_num, main_cls_cd]).collect()

코딩 어시스턴트 AI가 처음에 f-string으로 코드를 만들어줘도,

사용하는 우리 샘들은 이걸 수정해달라 할 수 있는 지식 정도만 갖추면 됩니다~ :)