개발자

mysql 연동해서 웹서비스 만들 때 db 수정 관련 질문입니다.

2023년 06월 09일조회 281

안녕하세요, mysql로 웹서비스 배포했는데, DB 관리를 웹 내에 관리자 페이지에서 할 수 있도록 열어주려고 합니다. 궁금한 점은, 만약 고객이 DB에서 데이터를 요청하는 동안 제가 그 데이터를 직접 수정하려고 하면 락이 걸릴까요? 전 고객이 관리자 페이지에서 요청하면 그 때만 커넥하고 바로 끊고 해버리려고 하는데 이게 좋은 방법일까요?

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

답변 3

프레드윰님의 프로필 사진

관리자단에서 회원이 접근 하는것보다 고객이 요청한 디비를 따로 페이지 만들어서 그 일부만 데이터 드리는데 검증 받은 회원에게만 일부만 드릴수있는 권한을 주던지 하는게 옳다고 생각하네요

유택범님의 프로필 사진

공부한지가 너무 오래되어서 틀릴수도 있지만 도움이 되었으면 해서 코멘트 남깁니다. 고객이 DB에서 데이터을 요청하는 동안 제가 그 데이터를 직접 수정하려고 하면 락이 걸릴까요? -> 고객이 데이터를 요청하는 순간 READ 락이 걸릴거고, READ 락이 걸려있으면 수정은 하지 못할 것으로 생각됩니다. 데이터 요청이 끝나고 나서 수정이 반영될 것 같네요. 전 고객이 관리자 페이지에서 요청하면 그 때만 커넥하고 바로 끊고 해버리려고 하는데 이게 좋은 방법일까요? -> 고객이 관리자 페이지에서 무슨 요청을 하는 것인지, 커넥을 하는 주체가 누구인지 모호하네요. "DB 관리를 웹 내에 관리자 페이지에서 할 수 있게 열어주려고 합니다." 라고 하셔서 더 헷갈리네요🙃 느낌상 고객이 관리자 페이지를 통해 수정 요청을 하면 관리자 역할을 하는 질문자님께서 직접 수정해주신다는 의미 같기는 한데 그렇다면 말씀하신 방법대로 해도 큰 문제는 없을 것 같습니다.

이양일님의 프로필 사진

안녕하세요! 질문주신 내용에 대해 제가 아는 선에서 답변 드려보겠습니다. ❓️만약 고객이 DB에서 데이터를 요청하는 동안 제가 그 데이터를 직접 수정하려고 하면 락이 걸릴까요? ➡️ Transaction Isolation Level 을 어떻게 설정하셨냐에 따라 lock 이 걸릴수도 걸리지 않을수도 있습니다. 이와 관련되서 잘 설명된 아티클이 있어 공유 드립니다. - https://labs.brandi.co.kr/2019/06/19/hansj.html ❓️ 고객이 관리자 페이지에서 요청하면 그때만 커넥하고 바로 끊고 해버리려고 하는데 이게 좋은 방법일까요? ➡️ 관리자 페이지 기능을 사용할경우 별도의 커넥션풀을 사용하지 않고 기능을 수행할때마다 DB 커넥션을 맺고 푼다라는 의미로 이해했습니다. 기능 동작이 단순하고 관리자 페이지를 사용하는 유저가 제한되어 있다면 모르겠지만 만약 관리자 페이지를 사용할 수 있는 유저가 여러명이고 동시 다발적으로 다양한 쿼리 요청을 할 수 있다면 자칫 연결된 DB 커넥션이 많아져 DB 에 부담을 줄 수 있고 이로 인해 장애가 발생할 수 있습니다. 크게 이슈가 없으시다면 커넥션 풀을 사용해서 제한된 갯수의 커넥션을 활용하는 방향으로 하시는게 좋지 않을까 싶습니다. 저의 짧은 지식이 부디 도움이 되시길 바라겠습니다.

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

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

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

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

새로운 질문 올리기

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