[CS/WEB] 쿠키, 세션 그리고 로컬스토리지
·
Computer Science/Web
웹 애플리케이션에서 데이터를 저장하고 관리하는 것은 중요합니다.이를 위해 주로 사용되는 3가지 방식인 쿠키, 세션, 로컬스토리지에 대해 알아보겠습니다. 1. 쿠키(Cookie)쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 텍스트 파일입니다. 특징용량 : 대략 4KB만료 : 설정 가능 (만료일 없으면 세션 쿠키)서버 접근 : 가능 (요청 시 자동으로 서버에 전송)보안 : HttpOnly, Secure 플래그로 보안 강화 가능 주요 용도사용자 로그인 상태 유지사용자 선호 설정 저장트래킹 및 광고 사용 예시// 쿠키 설정document.cookie = "username=John Doe; expires=Thu, 18 Dec 2025 12:00:00 UTC; path=/";// 쿠키 읽기let usernam..
[CS] 오픈소스 메시지 브로커 RabbitMQ
·
Computer Science
1. 등장 배경오늘날 IT 시스템은 점점 더 분산화되고 복잡해지고 있습니다.소위 MSA라는 단일 애플리케이션이 아닌 여러 개의 독립적인 서비스로 구성되는 마이크로서비스 아키텍처가 널리 사용되고 있죠.이러한 분산 시스템 환경에서는 서비스 간의 통신과 데이터 교환이 매우 중요해졌습니다. 예를 들어, 전자상거래 웹사이트를 생각해봅시다.주문 처리 시스템, 재고 관리 시스템, 배송 시스템, 결제 시스템 등 여러 개의 독립적인 서비스로 구성되어 있습니다.이러한 서비스들은 서로 연계되어 작동해야 하며, 데이터와 이벤트를 효율적으로 전달하고 조율해야 합니다. 과거에는 서비스 간 통신을 위해 직접 연결(Point-to-Point) 방식을 사용했습니다. 예를 들어, 주문 처리 시스템이 직접 재고 관리 시스템과 연결을 맺고..
[Docker] 도커로 Postgresql 실행하기
·
Computer Science
1. 도커 설치도커 공식 문서 사이트를 통해서 도커를 설치할 수 있다.https://docs.docker.com/get-docker/ Get DockerDownload and install Docker on the platform of your choice, including Mac, Linux, or Windows.docs.docker.com 설치 후 회원가입까지 진행하면 아래와 같이 Docker Desktop이 실행된다.  2. Postgres Image Pull도커 이미지란 도커 컨테이너를 실행하는 데 필요한 모든 것을 포함하는 환경을 말한다. 이러한 도커 이미지는 Docker hub라는 이미지 레지스토리에 저장되어 필요할 때 다운로드하여 사용할 수 있다. 그러한 다운로드를 "pull" 이라고 한다..
[CS / Server] 서버와의 데이터 통신 HTTP, AJAX 통신, WebSocket, SSE 각각 알아보자
·
Computer Science
현대 소프트웨어 개발에서 서버와의 효율적인 데이터 통신은 핵심적인 주제 중 하나입니다. 이에 따라 HTTP, AJAX, WebSocket, SSE와 같은 다양한 통신 프로토콜과 기술들이 등장했습니다. 이번 글에서는 각각의 특징과 활용 방법을 자세히 살펴보겠습니다. 웹과 애플리케이션 개발에 필수적인 이 기술들을 이해하고 활용함으로써 보다 효과적이고 동적인 데이터 통신을 구현할 수 있습니다. 1. HTTP HyperText Transfer Protocol HTTP에서는 클라이언트가 서버에 요청 메시지를 보내면 이에 대해 서버가 응답 메시지를 반환합니다. 서버는 응답 메시지를 반환한 후에 초기 상태로 돌아갑니다. 이 때 서버는 클라이언트의 상태를 저장하지 않습니다. 즉, HTTP 프로토콜은 상태가 없는 프로토..
[CS / DataBase] 인메모리 데이터 저장소 Redis, 왜 사용할까?
·
Computer Science
개발을 하면서 트랜잭션의 속도를 어떻게 하면 줄일 수 있을까? 고민하면서 찾아보면 Redis라는 시스템을 접하게 된다. 그럼 이 Redis는 무엇일까? 1. 레디스(Redis) 란? Redis의 풀네임에서 할 수 있듯이 Java의 HashMap과 같은 key-value 형태의 Dictionary 비정형 데이터를 저장하고 관리하는 원격 서버를 말합니다. 1-1. 레디스의 핵심 기능 https://redis.io/ 공식 홈페이지에서는 Redis의 핵심기능을 다음과 같이 말하고 있습니다. Redis는 데이터베이스,캐시, 메시지 브로커 및 스트리밍 엔진으로 사용되는 오픈 소스(BSD 라이선스), 인메모리 데이터 구조 저장소 입니다. Redis는 문자열 , 해시 , 목록 , 집합 , 범위 쿼리가 있는 정렬된 집합..
[CS / 네트워크] 네트워크 토폴로지
·
Computer Science
1. 네트워크 토폴로지 네트워크를 설계할 때 고려하는 것으로 노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태 2. 종류 1) 트리 토폴로지 계층형 토폴로지라고 하며 트리 형태로 배치한 네트워크 구성을 말한다. 노드의 추가, 삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있다. 2) 버스 토폴로지 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성 근거리 통신망(LAN)에서 사용 설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉬움 스푸핑이 가능한 문제가 있음 스푸핑 LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록..
[CS / 네트워크] 네트워크(Network)
·
Computer Science
1. 네트워크 기초 네트워크란 노드(node)와 링크(link)가 서로 연결되어 있거나 연결되어 있으며 리소스를 공유하는 집합을 의미한다. 여기서 노드란 서버, 라우터, 스위치 등 네트워크 장치를 의미하고 링크는 유선 또는 무선을 의미한다. 네트워크를 구축할 때는 '좋은' 네트워크를 만드는 것이 중요. 좋은 네트워크란 많은 처리량을 처리할 수 있으며 지연시간이 짧고 장애빈도가 적으며 좋은 보안을 갖춘 네트워크를 말한다. 처리량 링크 내에서 성공적으로 전달된 데이터의 양을 말하며 보통 얼만큼의 트래픽을 처리했는지를 나타냄 많은 트래픽을 처리한다 = 많은 처리량을 가진다 단위로는 bps(bite per second)를 사용한다. 초당 전송 또는 수신되는 비트 수라는 의미이다. 처리량은 사용자들이 많이 접속할..
[CS / 자료구조] 자료구조
·
Computer Science
1. 자료구조(Data Structure) 자료(Data)의 집합 각 원소들이 논리적으로 정의된 규칙에 의해 나열되며 자료에 대한 처리를 효율적으로 수행할 수 있도록 자료를 구분하여 표현 하는것 메모리 공간을 효율적으로 사용해야 하는데 필요한 것 실행 시간의 효율성도 따짐 2. 기본적인 7가지 자료구조 1) 배열(Array) 2) 스택(Stack) 3) 큐(Queue) 4) 연결 리스트(Linked List) 5) 해시 테이블/맵(Hash Tables/Map) 6) 그래프(Graph) 7) 트리(Tree)
[CS / RDBMS] 관계형 데이터 베이스 Oracle, PostgreSQL, MariaDB, MySQL
·
Computer Science
관계형 데이터베이스 관리 시스템 (RDBMS)이란 데이터를 구조화하고 저장하는 형식이 테이블의 형태인 시스템입니다. 📕 Oracle 상용 라이센스이며, 사용에 대한 비용이 발생한다. 풍부한 기능과 높은 확장성을 제공하여, 주로 대규모 기업에서 사용된다. 특히, 보안 및 데이터 무결성에 대한 강력한 기능을 제공한다. 비용이 매우 높아 중소규모 프로젝트에는 비추천되고, 높은 성능을 위해 고급 하드웨어 및 튜닝이 필요하다. 📕 PostgreSQL 오픈 소스 라이센스이므로 무료로 사용할 수 있다. 확장성이 뛰어나고, 여러 고급 기능을 갖추고 있어, 중소규모부터 대규모 기업까지 다양한 규모의 프로젝트에 적용할 수 있다. ACID(원자성, 일관성, 격리성, 지속성) 트랜잭션을 지원하여 데이터 무결성을 보장한다. ..