나는 약간의 교훈을 배웠다 (어려운 방법). Ubuntu AWS EC2 클라우드 서비스 (강력한 GPU 사용)에서 실행되는 수많은 처리 애플리케이션을 만들었고 진행 상황을 실시간으로 확인하기 위해 프런트 엔드를 만들고 싶었습니다.실시간 데이터가 필요했기 때문에 업데이트를 푸시하기 위해 웹 소켓이 필요하다는 것이 분명했습니다.
개념 증명으로 시작하여 훌륭하게 작동했습니다. 하지만 대중에게 공개하려면 사용자 세션을 추가해야했기 때문에 로그인 기능이 필요했습니다. 그리고 어떻게 보든 웹 소켓은 어떤 사용자를 처리하는지 알아야하므로 웹 소켓을 사용하여 사용자를 인증하는 지름길을 사용했습니다 . 당연해 보였고 편리했습니다.
우리는 실제로 연결을 안정적으로 만들기 위해 조용히 시간을 보내야했습니다. 저렴한 웹 소켓 튜토리얼로 시작했지만 연결이 끊어졌을 때 구현이 자동으로 다시 연결할 수 없음을 발견했습니다. socket-io로 전환했을 때 모든 것이 개선되었습니다.Socket-io는 필수입니다!
솔직히 말해서 몇 가지 훌륭한 socket-io 기능을 놓친 것 같습니다. Socket-io는 더 많은 것을 제공하고 있으며, 초기 디자인에서 고려한다면 더 많은 것을 얻을 수 있다고 확신합니다. 대조적으로, 우리는 이전 웹 소켓을 socket-io의 웹 소켓 기능으로 바꿨습니다. (방, 채널 없음, ...) 재 설계는 모든 것을 더 강력하게 만들 수 있습니다. 하지만 그럴 시간이 없었습니다. 다음 프로젝트에서 기억해야 할 사항입니다.
다음으로 점점 더 많은 데이터 (사용자 기록, 송장, 거래 등) 를 저장 하기 시작했습니다 . 우리는 모든 것을 AWS dynamodb 데이터베이스에 저장했고, 다시 socket-io를 사용하여 프런트 엔드에서 백엔드로 CRUD 작업을 전달했습니다. 나는 우리가 거기에서 잘못된 방향을 택했다고 생각합니다. 그건 실수 였어.
- Amazon의 클라우드 서비스 (AWS) 가 RESTful 애플리케이션을위한 훌륭한 로드 밸런싱 / 스케일링 도구를 제공한다는 사실을 알게 된 직후 입니다.
- 이제 우리 는 CRUD 작업 의 핸드 셰이크를 수행하기 위해 많은 코드를 작성해야한다는 인상을 받았습니다 .
- 최근에 우리는 Paypal 통합을 구현했습니다. 우리는 그것을 작동시킬 수있었습니다. 그러나 다시 모든 튜토리얼은 RESTful API를 사용하여 수행합니다 . 웹 소켓으로 구현하기 위해 예제를 다시 작성 / 다시 생각해야했습니다. 그래도 상당히 빠르게 작동합니다. 그러나 우리가 흐름에 반대하는 것처럼 느껴집니다 .
그 모든 것을 말했듯이, 우리는 다음 주에 라이브를 시작할 것입니다. 우리는 제 시간에 도착했고 모든 것이 작동합니다. 빠르지 만 확장 될까요?