[CS / Server] 서버와의 데이터 통신 HTTP, AJAX 통신, WebSocket, SSE 각각 알아보자
·
Computer Science
현대 소프트웨어 개발에서 서버와의 효율적인 데이터 통신은 핵심적인 주제 중 하나입니다. 이에 따라 HTTP, AJAX, WebSocket, SSE와 같은 다양한 통신 프로토콜과 기술들이 등장했습니다. 이번 글에서는 각각의 특징과 활용 방법을 자세히 살펴보겠습니다. 웹과 애플리케이션 개발에 필수적인 이 기술들을 이해하고 활용함으로써 보다 효과적이고 동적인 데이터 통신을 구현할 수 있습니다. 1. HTTP HyperText Transfer Protocol HTTP에서는 클라이언트가 서버에 요청 메시지를 보내면 이에 대해 서버가 응답 메시지를 반환합니다. 서버는 응답 메시지를 반환한 후에 초기 상태로 돌아갑니다. 이 때 서버는 클라이언트의 상태를 저장하지 않습니다. 즉, HTTP 프로토콜은 상태가 없는 프로토..
[책 정리] 디자인 패턴 - 옵저버 패턴
·
책&강의 정리
1. 옵저버 패턴 옵저버 패턴(Observer Pattern)은 주체가 어떤 객체(subject)의 상태 변화를 관찰하다가 상태 변화가 있을 때마다 메서드 등을 통해 옵저버 목록에 있는 옵저버들에게 변화를 알려주는 디자인 패턴 여기서 주체란 객체의 상태 변화를 보고 있는 관찰자이며, 옵저버들이란 이 객체의 상태 변화에 따라 전달되는 메서드 등을 기반으로 '추가 변화 사항'이 생기는 객체들을 의미한다. -> 위의 그림처럼 주체와 객체를 따로 두지 않고 상태가 변경되는 객체를 기반으로 구축하기도 한다. 1) 트위터 옵저버 패턴을 활용한 서비스 내가 어떤 사람인 주체를 '팔로우'했다면 주체가 포스팅을 올리게 되면 알림이 '팔로워'에게 가야한다. 2) MVC 패턴 주체라고 볼 수 있는 모델(model)에서 변경..
[책 정리] 디자인 패턴 - 전략 패턴
·
책&강의 정리
전략 패턴은 정책 패턴이라고도 하며, 객체의 행위를 바꾸고 싶은 경우 '직접' 수정하지 않고 전략이라고 부르는 '캡슐화한 알고리즘'을 컨텍스트 안에서 바꿔주면서 상호 교체가 가능하게 만드는 패턴 컨텍스트 프로그래밍에서의 컨텍스트는 상황, 맥락, 문맥을 의미하며 개발자가 어떠한 작업을 완료하는 데 필요한 모든 관련 정보를 말한다 1. 자바의 전략 패턴 어떤 것을 살 때 네이버페이, 카카오페이 등 다양한 방법으로 결제하듯이 어떤 아이템을 살 때 LUNACard로 사는 것과 KAKAOCard로 사는 것을 구현한 예제 결제 방식의 '전략'만 바꿔서 두 가지 방식으로 결제하는것 구현 import java.text.DecimalFormat; import java.util.ArrayList; import java.u..
[책 정리] 디자인 패턴 - 싱글톤 패턴
·
책&강의 정리
시작하기전 질문 ✏️ 1. 디자인 패턴에 대해 설명해주세요. 디자인 패턴은 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책입니다. 이는 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화할 수 있는 미리 만들어진 청사진과 비슷합니다. 디자인 패턴 계의 교과서로 불리는 GoF의 디자인패턴에서는 객체지향적 디자인 패턴의 카테고리를 "생성 패턴(Creational Pattern)", "구조 패턴(Structural Pattern)", "행동 패턴(Behavioral Pattern)" 3가지로 구분하고 있습니다. 생성패턴에는 싱글톤 패턴, 팩토리 메서드 패턴, 빌더 패턴등이 있고 구조패턴에는 어댑터 패턴, 프록시 패턴 행동 패턴에는 전략 패턴, 옵저버 패턴 등이 있습니다. ✏️ 2. ..
[CS / 네트워크] 네트워크 토폴로지
·
Computer Science
1. 네트워크 토폴로지 네트워크를 설계할 때 고려하는 것으로 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태 2. 종류 1) 트리 토폴로지 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말한다. 노드의 추가, 삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다. 2) 버스 토폴로지 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성 근거리 통신망(LAN)에서 사용 설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움 스푸핑이 가능한 문제가 있음 스푸핑 LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록..
[CS / 네트워크] 네트워크(Network)
·
Computer Science
1. 네트워크 기초 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다. 네트워크를 구축할 때는 '좋은' 네트워크를 만드는 것이 중요. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연시간이 짧고 장애빈도가 적으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냄 많은 트래픽을 처리한다 = 많은 처리량을 가진다 단위로는 bps(bite per second)를 사용한다. 초당 전송 또는 수신되는 비트 수라는 의미이다. 처리량은 사용자들이 많이 접속할..
마볼링
'CS' 태그의 글 목록