DB 설계 질문입니다. (BLOB)

db설계시, blob타입으로 파이썬 코드를 집어 넣으려고하는데.. 고민이 많습니다. 이렇게 하는 것이 효율적인가가 고민입니다. 트랜젝션과 무결성을 고려하면 넣는것이 맞을까요? 아니면 파이썬 코드 파일의 경로를 데이터베이스에 집어넣는 것이 더 효율적일까요?

백업 측면에선 파이썬 코드 파일의 경로만을 집어넣어 데이터베이스를 가볍게하는 것이 더 좋을 것 같은데

선배님들께서는 어떠한 생각들을 가지고 계시는지 궁금합니다.

참고로 파이썬 코드의 양은 최소 300 line 이상입니다.

2답변

    1. 보안 문제: 실행 가능한 소스를 DB에 저장하지 마세요!!! (참고: 코드 인젝션)
    2. 효율 문제: blob는 물론 바이너리 데이터를 넣을 수 있지만 어디까지나 수시로 CRUD를 실행해야 하는 작은 데이터라는 전제 하에 제공되는 타입입니다. (세션 파일이 대표적인 사례) 그다지 자주 바뀔 일이 없는 정적 데이터라면 파일 형태로 따로 저장하세요. (이미지가 대표적인 사례. base64 인코딩을 하면 DB에 이미지도 저장할 수 있기는 하지만 실제로는 그렇게 하지 않죠.)
    3. 무결성 문제: 소스의 무결성을 체크해야 한다면 파일의 해쉬, 파일 크기 등을 경로와 함께 저장하면 됩니다. 소스 자체는 파일로 저장하고요.
  • 아 그렇군요 답변 감사합니다 많은 도움이 됐습니다^

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.