개발자

exe파일에서 DB가 돌아가는 원리가 어떻게 되는건가요?

2023년 01월 09일조회 582

파이썬에서 Designer로 간단한 프로그램을 만들었는데 현재는 db 정보를 pymysql.connect(host='127.0.0.1', user='root', password='1234', db='infra', charset='utf8') 이런식으로 불러오고 있습니다. 하지만 프로그램을 다 만들고 든 생각이 다른 DB연동된 소프트웨어들을 보면 내 컴퓨터에 아무것도 안깔려있어도 데이터 정보를 생성, 수정, 삭제할수 있네? 어디에 저장하는거지? 였습니다. github에서 다른분이 만든 작은 프로젝트를 봤는데 이 프로젝트에는 .db라는 파일이 있던데 이 파일은 어디서 만드는 것이고(mysql? pycharm?) 데이터가 많아져서 용량이 방대해지면 어떻게 되는지 궁금합니다. 구글에서 찾아봐도 전부 본인컴퓨터 DB와 연동하는 내용뿐이네요ㅠㅠ

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.

답변 2

이원형님의 프로필 사진

사용자에게 배포되는 Client에서 DB를 사용하는 경우, SQLite 같은 local db를 사용하는게 일반적일 것 같습니다. - https://docs.python.org/ko/3.8/library/sqlite3.html

동현님의 프로필 사진

동현

작성자

학생2023년 01월 09일

SQLite를 local db로 사용할 수 있군요 계속 궁금했었는데 답변 감사합니다!!!

윤석현님의 프로필 사진

몽고와 같은 non-SQL도 있지만 다른 서버에서 SQLite를 사용하려 한다면, SQL 서버에 데이터베이스와 권한을 설정하고, 마이그레이션(내가 작성한 데이터베이스 코드를 실제 데이터베이스의 테이블로 옮기는 것)을 적용하면 테이블이 생성됩니다. 이때 데이터베이스에 테이블을 생성하기 위해 SQL 쿼리 문을 전달할 수도 있고, 객체가 데이터베이스의 테이블과 맵핑되는 ORM 등이 있습니다. 데이터가 많아질 경우 발생하는 문제는 쿼리에 소요되는 시간이 크게 증가합니다. 이를 해결하기 위해선 클라이언트에서 쿼리한 데이터를 캐싱하거나 API 서버에서 쿼리 로직을 보완해야 합니다.

동현님의 프로필 사진

동현

작성자

학생2023년 01월 11일

현재 SQlite로 입력받은값 대입해서 SQL문 쿼리까지는 작동시키고 있는데 따로 설정해야 할 권한이 있을까요? 지금은 삭제, 수정, 입력 버튼으로 이 기능만 작동하게 해놨습니다.

윤석현님의 프로필 사진

윤석현

대학생 전기전자제어2023년 01월 11일

권한은 SQL 서버 인증에 사용됩니다. 로컬에 배포하신 것이라면 하지 않아도 됩니다. 추후에 AWS 혹은 서버에 배포할 일이 있을 때 설정하면 됩니다.

윤석현님의 프로필 사진

윤석현

대학생 전기전자제어2023년 01월 13일

데이터베이스가 SQL 서버에 있다고 할 때, 아무나 이 데이터베이스를 참조하는 것을 막기 위해 SQL 서버 인증이 있습니다. 클라이언트가 서버의 데이터베이스에 참조할 땐 API 서버가 사용됩니다. 이땐 요청 콘텐츠에 있는 JWT를 통해 해당 요청의 권한이 유효한지 확인할 수 있습니다. 물론 꼭 이 구현만 유효한 것은 아닙니다. 이건 BEARER 토큰의 표준 구현을 말씀드린 것입니다.

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!