일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- mysql
- 백엔드
- 컨테이너
- 스프링 배치
- Java
- CI/CD
- web server
- computer science
- spring batch
- 자바
- spring boot
- JPA
- 영속성 컨텍스트
- 도커
- Container
- ORM
- 배포
- virtualization
- Spring Security
- 웹 서버
- spring cloud
- 스프링
- CS
- 스프링 시큐리티
- 가상화
- 데이터베이스
- Spring
- 스프링 부트
- HTTP
- vm
- Today
- Total
목록Computer Science/Computer Network (12)
개발 일기

이전에 컴퓨터 네트워크 시간에 열심히 배웠었지만 한 순간에 까먹어버렸고 중간 중간 개발 공부를 하다보면 튀어나오는 이 용어에 대해 다시 기억을 되살릴 필요가 있다고 생각되어 정리해보게 됐다.OSI 7계층SI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로 각 레이어 별로 역할이 다르다.하나씩 뜯어보자.Application Layer(응용 계층)사용자와 직접 연결되어 네트워크 접근을 돕는 계층데이터 전송을 위한 인터페이스 제공사용자로부터 입력 받은 정보를 하위 계층에 전달한다. Presentation Layer(표현 계층)데이터를 응용 계층에 사용하는 표현으로 변환해주는 계층데이터의 인코딩과 디코딩이 이루어 진다. ex) 문자열을 아스키 코드로Session Layer(세션 계층)..

채팅 기능을 구현한 것을 보면 WebSocket 그리고 STOMP와 함께 매번 등장하는 RabbitMQ와 Apache Kafka 같은 메세지 브로커에 대해서 정리해봤다.Message Broker Message Broker(메시지 브로커)는 Publisher(송신자)로부터 전달받은 메시지를 Subscriber(수신자)로 전달해주는 중간 역할이며 응용 소프트웨어 간에 메시지를 교환할 수 있게 한다.이 때 메시지가 적재되는 공간을 Message Queue(메세지 큐)라고 하며 메시지의 그룹을 Topic(토픽)이라고 한다.Publisher가 Topic에 맞게 메세지를 가져다 놓기만 하면 각각의 Subscriber는 각자 원하는 Topic의 메세지를 가져갈 수 있는 것이다.Producer와 Consumer가 서..

이전 게시글에서 WebSocket은 한계로 인해 STOMP의 필요성을 알게되었고 해당 프로토콜에 대한 추가적인 이해가 필요하다고 판단하게 되어 정리하게 됐다.STOMP(Simple/Stream Text Oriented Message Protocol)WebSocket과 같은 실시간 메시지 전송 프로토콜에서 사용하는 텍스트(문자) 기반의 메시징 프로토콜WebSocket은 기본적으로 단순히 데이터를 주고받는 통신 방식일 뿐, 그 안에 담기는 메시지의 형식에 대한 정의가 없기 때문에, 메시지를 주고받는 양측이 어떤 형식으로 통신할지를 정해야한다.➜ 이때 STOMP와 같은 서브 프로토콜을 사용하면 메시지 형식과 관련된 표준화된 규약으로 사용한다.주로 메시지 브로커와 클라이언트 간의 통신을 위한 프로토콜로 사용P..

이전 게시글에선 Socket과 Socket 통신에 대해 알아봤고 이번에는 웹소켓에 대해 정리해보겠다.웹소켓(WebSocket)초기의 인터넷 통신 방식인 HTTP를 통해 실시간 통신(Polling, Long Polling, SSE 등)을 구현하는 것에 한계점이 있어 이를 극복하기 위해 등장한 프로토콜이다.클라이언트와 서버 간의 실시간 네트워킹(Real-Time Networking) 및 전이중 통신(양방향 통신: Full-Duplex)을 지원하는 프로토콜로 지속적인 연결을 유지하며 클라이언트와 서버 간의 실시간 데이터 전송을 가능케 한다.HTTP 프로토콜을 사용하여 초기 연결을 설정HTML5에 등장 실시간 웹 애플리케이션을 위해 설계된 통신 프로토콜이며, TCP(Transmission Control Prot..

앞 게시글에서 Polling, Long Polling 그리고 SSE에 대해 정리해봤는데 채팅 기능을 구현하기 위한 웹 소켓에 대해 정리해보고자 한다.우선 소켓(Socket)에 대해 알아보자.소켓(Socket)소켓은 네트워크 상에서 데이터를 송수신하는 두 호스트의 프로세스를 연결하는 종착점➜ 한쪽 프로세스가 데이터를 소켓에 쓰면, 네트워크를 통해 반대쪽 소켓으로 전달된다.OSI 7계층 중 Application Layer에 속하는 프로세스들은 데이터 송수신을 위해 반드시 소켓을 거쳐 Transport Layer으로 데이터를 전달해야한다. ➜ 즉, 소켓은 전송 계층과 응용 프로그램 사이의 인터페이스 역할을 하며 떨어져 있는 두 호스트를 연결해준다.HTTP 통신도 소켓 통신이지만 반대로 소켓 통신을 HTTP 통..

우리가 흔히 사용하는 HTTP 통신은 무상태성(Statelessness) 및 비연결성(Connectionless) 이렇게 두가지 특징을 가진다. 그러나 채팅기능이나 주식/코인 시세를 실시간으로 조회하는 기능들과 같이 실시간 업데이트가 필요한 경우 서로의 통신이 주기적으로 이루어져야 한다. 이러한 양방향 통신(주기적인 통신) 방법으로 4가지를 정리해보겠다.Polling클라이언트가 일정한 주기로 서버에 데이터를 요청하는 방식HTTP 통신을 기반클라이언트는 특정 주기마다 서버에 새로운 데이터가 있는지 요청(Ajax)하고, 서버는 해당 요청에 대해 응답(장점) 단순한 로직으로 구현이 쉽고 무상태성을 유지할 수 있다.(단점) 요청 주기가 길어지면 데이터가 실시간으로 업데이트 될 수 없으며 요청 주기가 짧아지면 그..
https://www.youtube.com/watch?v=3VXLD0-Iq8A&list=PLfth0bK2MgIan-SzGpHIbfnCnjj583K2m&index=16

서브넷(Subnet)IPv4는 용도에 따라서 3개의 클래스로 분리했다. 하지만 사용해보니 이 방식은 오히려 비효율적 인 것이었다. 클래스 B를 어느 중소기업체에게 할당했을 경우 만일 그 기업이 65000여개의 아이피를 다 쓰는 것이 아닌 10000개 정도만 쓴다고 가정해보자. 그럼 나머지 50000여개의 IP는 쓰이지 않은 채 이 기업체는 클래스 B의 하나를 점유하고 있는 상태가 되어 버린다.그렇다고 이 기업체에게 C 클래스 IP(256개)를 할당하자니 IP자원이 너무 부족하게 되어 버린다. 즉, 호스트 수에 맞게 IP를 클래스별로 나누어 놓았더니만 안하만도 못한 현상이 발생한 것이다.이도 저도 아닌 이러한 문제를 해결하기 위해 IP를 사용하는 네트워크 장치 수에 따라 효율적으로 사용할 수 있는 서브넷..