
요가센터 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으로 코드를 만들어줘도,
사용하는 우리 샘들은 이걸 수정해달라 할 수 있는 지식 정도만 갖추면 됩니다~ :)