728x90 반응형 분류 전체보기327 [Spring][WebSocket] 스프링 STOMP와 웹 소켓 개념 및 사용법 (Web Socket with STOMP) (1) 클라이언트와 서버가 통신할 때 HTTP 통신을 주로 사용한다. HTTP 통신은 다음과 같은 특징이 있다. 비연결성 (connectionless) : 연결을 맺고 요청을 하고 응답을 받으면 연결을 끊어버린다. 무상태성 (stateless) : 서버가 클라이언트의 상태를 가지고 있지 않는다. 단방향 통신이다. 이러한 HTTP 통신의 경우 채팅과 같은 실시간 통신에 적합하지 않다. 물론 HTTP 통신으로 실시간 통신을 흉내낼 수는 있으나 완벽하지는 않다. 실시간 통신이 필요할 때 사용하는 통신을 소켓 통신이라고 한다. HTTP 통신과 다르게 연결을 맺고 바로 끊어버리는 게 아니라 계속 유지를 하기 때문에 실시간 통신에 적합하다. 이제 스프링에서 간단하게 웹 소켓으로 통신을 해보려고 한다. 구현에 앞서 STOM.. 2023. 4. 20. [Algorithm] RMQ (Range Minimum Query) RMQ는 어떤 배열이 존재할 때 특정 범위의 가장 작은 값을 구할 때 사용하는 자료구조이다. 다음과 같은 배열이 있다고 하자. RMQ (1, 5)의 의미는 Arr[1] 부터 Arr[5] 까지의 값 중 가장 작은 값을 의미한다. 위 배열의 경우 "3"이 된다. 이 RMQ를 구하는 방법에는 여러가지가 있지만 그 중 전처리 과정의 시간 복잡도가 O(N*log N)이고 원하는 값을 얻을 때의 시간 복잡도가 O(1)인 방법을 공부해보려고 한다. RMQ 전처리 과정 우선 길이가 1인 RMQ를 구한다. RMQ (0, 0), RMQ (1, 1), RMQ(2, 2) ... RMQ(N, N)을 모두 구하는 것이다. 길이가 1이기 때문에 당연하게도 RMQ(i, i)의 값은 arr[ i ]의 값과 똑같을 것이다. 그 다음 길.. 2023. 4. 19. [Network] pipelined protocol 기존 패킷을 보내는 과정은 패킷을 보내고 ACK를 받고, 패킷을 보내고 ACK를 받고 이러한 과정을 반복했다. 이러한 방식을 개선하기 위해서 pipelined protocol은 여러 개를 한꺼번에 보내고 여러 ACK를 한꺼번에 받는 방식을 사용한다. 이러한 파이프라이닝의 형식에는 두가지가 있다. go-back-N과 selective repeat이다. go-back-N (GBN) 우선 N개를 보내고 ACK를 받는 방식이다. 노란색은 패킷을 보냈으나 아직 ACK를 받지 않은 상태이고 파란색은 아직 보내지 않은 상태이다. 노란색인 패킷을 in-flight 패킷이라고 한다. ACK를 받게되면 노란색에서 초록색으로 바뀌고 send_base가 하나 증가한다. send_base가 증가함에 따라 window size는.. 2023. 4. 18. [AWS][Spring] Amazon Lex 스프링 부트에 배포하기 (2) https://growth-coder.tistory.com/152 이전 포스팅에서 간단하게 날씨와 미세먼지를 알려주는 Amazon Lex 챗봇을 만들어보았다. 물론 람다를 연결하지 않았기 때문에 실제로 동작하지는 않고 단지 의도를 분류해내는 수준이다. 우선 스프링부트로 배포를 해보고 람다를 연결해서 실제로 동작하게끔 해보려 한다. 우선 스프링이 Lex에 접근할 수 있도록 IAM 사용자를 만들어야 한다. IAM -> 사용자에서 사용자를 추가한다. 다음과 같이 설정을 한다. 직접 정책 연결을 선택한다. AmazonLexFullAccess 정책을 검색해서 선택하고 다음으로 넘어간다. 사용자 목록을 돌아간다. 생성한 사용자에 들어가서 보안 자격 증명에 들어간다. 아래로 내려보면 액세스 키 만들기가 있다. 선택한.. 2023. 4. 17. 이전 1 ··· 41 42 43 44 45 46 47 ··· 82 다음 728x90 반응형