- HTTP3, QUIC + TLSstarryeyeTLS(SSL) TLS에 대해 먼저 알아보고 들어가자 TLS는 하나의 프로토콜이며, 웹 응용 프로그램을 보호하는데 도움을 준다. (대학교때.. 정보보호론 수업에서 중간자 공격을 방어하는 방법이 바로 TLS이다.) HTTPS가 바로.. TLS를 적용한 것이다. SSL이 TLS로 발전된 것이며.. SSL3.0을 기반으로 TLS1.0이 만들어 졌다. 현재 SSL은 사용되지 않는다.(추가 버전업 X) TLS 목표 암호화 : 전송되는 데이터를 제 3자로 부터 보호한다. 인증 : 요청/응답 되는 정보가 요청/응답을 보내는 당사자임을 보장한다. 무결성 : 요청/응답 되는 정보가 위변조 되지 않았는지 확인한다. TLS 개념 대칭키 암호화 + 비대칭키 암호화를 적용하여 1RTT를 가진다. 비대칭키로만 할순 없나..? -..
- 2022-07-25 00:46:05
- HTTP polling, long pollingstarryeye폴링 방식과 롱폴링 방식에 대해 알아보자.. 아래는 시퀀스 다이어그램으로 그렸다.. 숫자는 무시하고 보자 폴링 방식 클라이언트의 주기적 요청에 의해 클라이언트가 업데이트된다. 클라이언트에 대기시간이 존재한다. 특징 클라이언트가 주기적 요청을 하기 때문에.. 실시간성이 그리 높지 않다. 같은서버에 다른 요청도 보내야 할 경우 사용되는 방식 롱폴링 방식 서버가 커넥션을 가지고 있으면서 대기시간을 가진다. 이벤트가 발생되는 순간 클라이언트에 응답을 내려주고 클라이언트는 업데이트 되는 방식이다. 특징 서버측에서 이벤트가 발생하는 즉시 클라이언트에 응답을 내려보내기 때문에 실시간성이 높다. 커넥션을 서버에서 유지하고 있어야 하므로.. 서버의 부담이 높은 편이다. 이벤트가 발생되면 관련된 모든 클라이언트에 응답을 ..
- 2022-07-23 22:43:41
- 사용자 수에 따른 규모 확장성 5starryeye데이터 센터 이전 포스팅의 GSLB 개념에서 잠깐 알 수 있다. 아래 그림에서.. 사용자는 두개의 데이터 센터가 장애 없는 상황이라면 가장 가까운 데이터 센터로 안내된다. (GSLB, 지리적 라우팅) 위와 같이 Data center를 두군데 구축 해놨을 때... 한군데에 심각한 장애가 발생 했을 경우 다른 한 군데로 매핑 될 것이다. 주의사항 위 그림에서 무상태 아키텍처를 위한 사용자 상태의 저장소는 하나의 공유 저장소를 바라보고 있어서 갑자기 다른 데이터 센터로 변경 매핑될 지라도 문제가 없을 것이다. DB DB의 경우는 서로 연결이 되어있지 않아 문제가 발생한다. 따라서 여러 데이터 센터에 걸친 데이터 다중화 방법을 검토 해봐야 한다. TEST 웹 서버의 TEST는 반드시 모든 데이터 센터에서 수행 ..
- 2022-07-23 03:41:35
- 사용자 수에 따른 규모 확장성 4starryeye무상태(Stateless) 웹 계층 여러 클라이언트에 대응하는 서버는 단순하게 생각했을때, 로그인과 같은 클라이언트의 상태 정보를 서버가 가지고 있어야 할 것이라 생각된다. 이러한 구조를 가지게 되면.. N대의 서버를 가진 시스템은 사용자가 어떤 한 대의 서버에 종속적으로 연결 시켜 줘야한다. (다른 서버로 연결되면.. 상태정보가 없을 것이기 때문이다.) -> 로드 밸런서에 부담이 된다. (sticky sestion, 고정 세션 기능) 이러한 문제점을 해결하기 위한 아키텍처는 아래와 같다. 무상태 아키텍처로 인해 자동 규모 확장(Autoscaling)이 가능해 졌다. 서버 트래픽 양, 시스템 자원의 메트릭에 따라 서버를 자동으로 스케일 아웃/인 할 수 있다. (AWS) 보통 Redis와 같은 In mem..
- 2022-07-23 02:45:00
- HTTP/1.1 vs HTTP/2starryeye위는 HTTP/1.0, HTTP/1.1, HTTP/2의 특징들을 간단하게 보여준다.. 그림 먼저 보고 들어가자.. HTTP/1에서 HTTP/1.1로 가면서.. TCP 연결에 대한 부담과 요청/응답 속도(RTT)를 많이 개선하게 되었다. persistent, pipelining 방법으로 커넥션을 유지하고 연속적으로 보낼 수 있게 된 것이다. 하지만 여전히 문제는 많았다.. persistent TCP 한번의 연결로 여러 요청/응답을 처리한다. (커넥션 재사용) pipelining 한번 요청하면 그 응답 대기하고를 반복하지 말고.. 여러번의 요청을 보내고 대기함 (latency 낮춤) (이론적으로는, 두 개의 HTTP 요청을 하나의 TCP 메시지 안에 채워서(be packed) 성능 향상 할 수 있다고 한다...
- 2022-07-22 23:59:25
- 사용자 수에 따른 규모 확장성 3starryeye캐시 캐시는 값비싼 연산 결과 또는 자주 참조되는 데이터를 메모리 안에 두고, 뒤이은 요청이 보다 빨리 처리 될 수 있도록 하는 저장소이다. (DB 호출되는 양을 줄이면 어플리케이션의 성능이 좋아진다는 개념에서 출발) 장점 DB 부하 줄이기 캐시 규모를 독립적으로 조절 가능 DB 접근하는 횟수를 줄여서 성능 향상 주의사항 휘발성 메모리이므로 영속 보관 데이터는 DB에 꼭 저장해줘야 한다. 만료 정책 적절한 만료 정책을 세워야한다. 만료 기한이 너무 길다면.. DB와 차이가 많이 날 것이다. 만료 기한이 너무 짧다면.. DB를 읽는 횟수가 늘어난다. 일관성 DB와 캐시의 데이터가 동일 한지에 대한 문제이다. 단일 트랜잭션으로 처리 되지 않는다면.. 일관성이 깨진다. 장애 대응 캐시 서버를 여러 대로 분산 ..
- 2022-07-22 01:09:01
- 사용자 수에 따른 규모 확장성 2starryeye데이터 베이스 다중화 많은 DBMS가 다중화를 지원한다. DB 서버 사이에 master - slave 관계를 설정하여.. 원본은 master에 사본은 slave에 저장하는 방식이다. write 연산은 master에 하고.. (데이터를 변경하는 명령어, insert / delete / update 등) slave는 read 연산만을 지원하며, master로 부터 사본을 전달 받는다. 대부분의 어플리케이션은 읽기 연산의 비중이 쓰기 연산 보다 훨씬 높다. 따라서 slave 수가 master보다 많을 것이다. 장점 읽기 연산이 분산 되어 병렬로 처리 되므로.. 성능이 좋아 진다. DB서버 일부가 자연재해로 파괴되어도 데이터가 보존된다. DB서버 일부에 장애가 발생하여도 서비스를 지속할 수 있다. master가..
- 2022-07-22 00:29:22
- GSLB, CDN, DNSstarryeyeDNS (Domain Name System) 사용자가 naver.com을 검색한다면.. 컴퓨터는 naver.com 질의를 어디로 요청해야 할지 모른다. 이때, DNS서버는 보통 라운드로빈 알고리즘으로 해당 서버의 IP주소를 반환 해준다. DNS서버는 도메인 네임과 매핑할 수 있는 IP주소 테이블을 가진다. GSLB (Global Server Load Balancing) DNS에서 발전된 개념이다. 네이버 서버는 전세계에 N개가 있다. 사용자의 위치에 따라 응답성이 높은 서버로 매핑을 시켜줄 필요가 있다. DNS서버는 서버 IP주소를 매핑 시켜줄때, 단순 라운드 로빈으로 매핑 시켜주지만, GSLB는 사용자의 IP주소를 보고 위치기반 으로 가장 응답성이 높고, 정상 운영중인 서버로 매핑 시켜줄 수 있다. G..
- 2022-07-21 23:49:01
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)