강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

쾌활한 얼룩말님의 프로필 이미지
쾌활한 얼룩말

작성한 질문수

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

실서비스용으로 장고 프로젝트를 도커로 빌드하기

장고 운영시 다중접속시 서버운영 관련 질문입니다.

작성

·

683

0

- 여러분의 질문을 고대하고 있습니다. :-)
- 질문 전에 검색을 먼저 해보세요. 사람 사는 게 다 비슷하다는 것을 알게 됩니다.
- 예의는 거침없이 질문하기 위한 최고의 발명품입니다.
- 100개의 설명이 스크린샷 한방 보다 못할 수 있습니다.
- 코드를 첨부하면 전세계 누구나 이해할 수 있는 질문이 됩니다.
- 하나의 질문에는 하나의 주제를 담아야 답변도 예리해집니다.
- 시행착오를 알려주시면 곧 바로 원하는 문제에 집중할 수 있습니다.

- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
 
아직 실력이 안되서 리액트와 장고를 함께 운용은 못하고 장고만으로 웹용 전산관리 프로그램을 만들어 운영중에 있는데요.
 
문제가 유저들이 여럿이 동시에 접속하여 서버에 정보를 요청하면 로딩시간이 길어지면서 다중 접속이 안되더라구요.
 
생각치 못한 건데요.
이럴때 동시 접속하여 서버를 이용하는 방법이 있을까요?
 
현재는 한명이 이용하고 있으면 다음 유저는 웹사이트에 로딩이 걸려 버튼이나 정보요청을 못하는 상황이고. 먼저 한 유저가 끝나야 그 다음에 접속이 가능하더라구요

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요.

서버 배포 스택이 어떻게 되시나요? 데이터베이스는 어떤 것을 쓰시나요?
그리고 배포 시에 설정하신 설정값들은 어떻게 되시나요?
그리고 테스트하신 뷰 구현은 대략 어떤 로직을 가지고, 어떤 서버(DB 등)와 통신을 하나요? 그리고 뷰 응답까지 걸리는 시간은 어느 정도 되나요?

웹은 기본적으로 다중 접속 환경입니다. 얼마나 많은 유저가 접속할 수 있는 지는 서버의 물리적인 스펙과 구동된 소프트웨어 서버의 세팅에 따라 달라질 수 있습니다.

하지만, 1명이 사용 중인데 다른 유저의 요청이 처리되지 않고 지연된다는 것은 잘 이해하기 어렵네요. 일반적인 웹에서는 서버의 스펙이 아무리 낮아도 최소 십수명의 요청은 별 무리없이 처리합니다. 이는 서버의 문제라기보다 어떤 네트워크 이슈가 있을 수도 있겠구요. 혹은 구현하신 요청 처리 로직에서 병목을 일으키는 어떤 부분이 있으실 수 있습니다.

정확히는 어떤 부분에서 병목인지를 파악하는 과정이 필요합니다. 로딩이 걸리고 있다 만으로는 파악에 한계가 있구요.

현상을 좀 더 파악해보시고, 댓글 남겨주시면 저도 같이 고민해보겠습니다.

화이팅입니다. :-)

답변 감사합니다. 

 

우분투 20 버전에. AWS를 쓰고 있고. DB는 몽고DB를 씁니다. 

 

회원이 가입을 하면 블록체인에 연결하고. 연결이 정상적으로 되면 회원가입니 마무리가 되는데요. 이 과정이 대략 2-3분 정도 걸립니다. 

서버에서는 계속 로딩이 걸리게 되구요. 

그런데. 그 사이에 다른 유저가 가입을 하려고 하면 접속이 안되는 경우가 많습니다.

블록체인에 연결하는 것은 자바스크립트로 하게 되고. 연결이 완료되면 블록체인내 트랜잭션을 view.py에서 api로 파악해서. 트랜잭션이 정상적으로 완료되면 나머지 회원가입 절차가 완료되어 DB에 저장되는 구조입니다.

근데 실제로 DB에서 저장되는 과정은 크게 시간이 걸리지 않거든요. 아마도 자바스크립트로 블록체인에 연결하는 과정에서 로딩이 가장 길게 걸리는 듯 한데. 그때엔 다른 유저가 홈페이지에 접속을 해도 로딩이 길어지면 홈페이지 접속이나 회원가입이 안되더라구요. 

 

그렇다고 해당 블록체인이 저희가 가입한다고 다른 이들이 가입을 못하는 것도 아니거든요. 

 

혹시 이정도 정보면 원인을 알아내는데 도움이 되실까요? 

이진석님의 프로필 이미지
이진석
지식공유자

안녕하세요. 대략적인 설명 만으로는 파악이 어렵네요.

차근차근 디버깅이 필요하실 것입니다. 실제로 어느 지점에서 병목이 발생하는 지 체크를 하시는 것이 가장 정확할 것이구요.

말씀하신 JS가 브라우저에서 구동되는 JS인가요? 장고 애플리케이션을 디버깅하시기 전에, 브라우저 JS에서 크롬 브라우저를 통해 디버거도 걸어보시고, 개발자 도구의 Network 탭을 통해 서버의 어떤 Endpoint로 실제로 요청이 날라가는 지 등을 확인해보셔야 하실 것입니다.

이렇게 동작을 할거야. 라고 상상만 해서는 답이 나오지 않거든요. 실제 동작을 확인해보셔야 합니다.

파악을 하시다보면, 장고 서버로 요청을 보냈다고 생각하셨지만, 장고 서버로 요청이 날아가기 전에 JS 단에서 어떠한 이유로 서버로 요청을 못 보내고 있을 수도 있습니다.

차근차근 파악해보세요.

화이팅입니다. :-)

네. 감사합니다. 다시 한번 해보겠습니다. 

쾌활한 얼룩말님의 프로필 이미지
쾌활한 얼룩말

작성한 질문수

질문하기