RedisRedis란?Redis는 Remote Dictionary Server의 약자로, 메모리 기반의 Key-Value 저장소이다. 일반적인 관계형 데이터베이스(RDB)와 달리 메모리에 데이터를 저장하기 때문에 읽기 및 쓰기 속도가 매우 빠르다. 이런 특성 덕분에 Redis는 캐시(Cache), 세션(Session) 저장소, 실시간 데이터 처리에 적합하다.데이터 구조문자열, 리스트, 해시, 셋, 정렬된 셋 등 다양한 자료구조 지원저장 방식메모리 기반으로 동작하며 디스크로의 영속화 설정 가능처리 속도ms 이하의 빠른 읽기/쓰기 성능활용 사례캐시, 세션 저장소, 실시간 순위, 메시지 브로커 (Pub/Sub) 등 Spring에서는 Redis를 캐시 저장소로 활용하여 불필요한 DB 조회를 줄이고 응답 속도를 ..
확장성시스템이 더 많은 부하를 감당할 수 있도록 용량을 늘리는 것을 확장성이라 한다. 다시 말해, 사용자가 증가하거나 데이터량이 많아졌을 때 성능 저하 없이 시스템이 동작하도록 구조를 확장할 수 있는 능력을 의미한다. 확장성은 단순히 하드웨어를 추가하는 것을 넘어서, 시스템 전반의 설계와 밀접하게 관련되어 있다.확장성이 중요한 이유사용자 수가 급격히 증가할 수 있는 서비스에서 필수적인 특성이다.한계에 도달한 시스템을 재설계하는 것보다, 처음부터 확장 가능한 구조로 설계하는 것이 효율적이다.확장성은 성능, 가용성, 비용과 밀접한 연관을 가지며, 클라우드 환경에서는 더욱 중요하게 다뤄진다.확장성 유형확장 유형설명수직 확장 (Vertical Scaling)하나의 서버 성능(예: CPU, RAM)을 높이는 방식..
시스템 설계시스템 설계란?시스템 설계는 소프트웨어나 서비스가 운영되는 방식과 구조를 결정하는 일련의 설계 작업을 의미한다. 단순히 코드를 작성하는 것을 넘어서, 어떤 기술을 사용할지, 데이터는 어디에 저장할지, 요청이 어떻게 전달되고 처리될지를 전반적으로 계획하는 과정이다. 예를 들어, 사용자 수가 급격히 늘어났을 때 어떻게 서버를 분산시킬 것인지, 장애가 발생했을 때 어떤 방식으로 복구할지를 설계 단계에서 미리 고민하게 된다.시스템 설계가 중요한 이유시스템 설계를 고려하지 않고 서비스를 구축하게 되면 초기에는 잘 작동하더라도, 사용자가 늘어나거나 예외 상황이 발생할 경우 시스템이 쉽게 무너질 수 있다. 이는 사용자 경험을 해치고, 더 나아가 비즈니스 손실로 이어질 수 있다. 다음은 시스템 설계를 소홀히..
로드밸런싱의 필요성사용자 수가 많은 웹 서비스에서는 단일 서버만으로는 모든 요청을 감당하기 어렵다. 특히 트래픽이 급증하는 시간대에는 서버 과부하가 발생해 응답 지연이나 서비스 다운으로 이어질 수 있다. 이런 문제를 해결하기 위해 사용하는 것이 로드밸런서다.⟨⟨로드밸런서⟩⟩는 여러 대의 서버에 트래픽을 효율적으로 분산시켜 부하를 고르게 분담시키고, 서비스의 가용성과 확장성을 높여주는 핵심 장치다.로드밸런서란 무엇인가로드밸런서는 클라이언트로부터 들어오는 요청을 여러 서버 중 하나로 전달하는 역할을 한다. 이 과정에서 다음과 같은 기능을 수행한다:트래픽 균등 분산서버 상태 확인 및 장애 서버 제외SSL 처리(Offloading)세션 고정(Sticky Session)캐싱 및 압축 처리이러한 기능 덕분에 로드밸..
HTTPS 개요웹사이트에 접속할 때 주소창 앞에 자물쇠 모양이 보이고, 주소가 **https://**로 시작하는 것을 본 적이 있을 것이다. 이는 단순한 HTTP가 아닌 HTTPS(Hypertext Transfer Protocol Secure) 프로토콜을 사용한다는 뜻이다. HTTPS는 HTTP에 보안 기능을 추가한 것으로, 클라이언트와 서버 간의 통신을 암호화하여 중간에서 데이터를 탈취하거나 변조하는 것을 막는다.HTTP와 HTTPS의 차이점프로토콜HTTPHTTPS보안암호화 없음SSL/TLS를 통한 암호화포트 번호80번443번속도상대적으로 빠름암호화로 인해 약간 느림사용처일반적인 비보안 웹사이트로그인, 결제 등 민감한 정보가 오가는 사이트 HTTP는 누구나 읽을 수 있는 평문으로 데이터를 주고받기 때문..
응용 계층인터넷에서 데이터를 주고받을 때, 다양한 역할을 수행하는 계층들이 존재한다. OSI 7계층 혹은 TCP/IP 4계층 모델로 이를 구분하며, 그 중에서도 응용 계층은 최상위 계층으로 사용자와 가장 가까운 위치에 있다.응용 계층이란?응용 계층은 네트워크를 사용하는 응용 프로그램들이 동작하는 계층이다. 사용자는 직접적으로 이 계층의 작동을 인식하지 않지만, 우리가 웹 브라우저를 통해 페이지를 열거나, 이메일을 주고받을 때, 그 뒤에서 응용 계층 프로토콜들이 작동하고 있다.이 계층에서는 데이터를 실제로 표시하거나 입력받지는 않으며, 사용자의 요구를 네트워크를 통해 처리할 수 있는 형식으로 변환하는 역할을 한다. 즉, 응용 프로그램이 네트워크 기능을 사용할 수 있도록 인터페이스를 제공한다.응용 계층의 대..