개발관련 도서 38

7장 HTTPS

1. HTTP의 약점1) 평문(암호화하지 않은) 통신이기 때문에 도청 가능HTTP는 자신을 암호화하는 기능이 없기 때문에 통신 전체가 암호화되지 않는다. 즉, 평문으로 HTTP메시지를 보내게 된다. 이를 방지하기 위해 a. 통신 암호화(SSL이나 TLS이라는 다른 프로토콜을 조합해서 HTTP 통신 내용을 암호화할 수 있다.)나 b. 콘텐츠 암호화(콘텐츠 내용 자체를 암호화하는 방법)등을 이용할 수 있다. 2) 통신 상대를 확인하지 않기 때문에 위장 가능하다. HTTP를 사용한 리퀘스트나 리스폰스에서는 통신 상대를 확인하지 않는다. 따라서 누구든지 리퀘스트를 보낼 수 있고 누구든지 리스폰스를 반환할 수 있다. 이를 보완하기 위해 상대를 확인하는 증명서의 기능을 하는 SSL을 활용할 수 있다. SSL은 암호..

네트워크 주요 기술

1. DHCP :IP를 동적으로 할당하는 데 사용되는 프로토콜이 DHCP(Dynamic Host Configuration Protocol)이다. DHCP를 사용하면 사용자가 직접 입력해야 하는 IP주소, 서브넷 마스크, 게이트웨이, DNS 정보를 자동으로 할당받아 사용할 수 있다.DHCP는 서버와 클라이언트로 동작하며 클라이언트의 서비스 포트는 68 서버의 서비스 포트는 67이다. DHCP는 BOOTP라는 프로토콜을 기반으로 한다.  2. DHCP 동작방식 호스트가 DHCP 서버로 IP를 할당받는 과정은 4단계로 진행된다.  1) DHCP Discover : DHCP 클라이언트는 DHCP 서버를 찾기 위해 DHCP Discover 메시지를 브로드캐스트로 전송한다.  2) DHCP Offer : DHCP ..

Kafka 설치 및 Springboot 연동

1. 설치 https://www.popit.kr/%ec%b9%b4%ed%94%84%ec%b9%b4-%ec%84%a4%ec%b9%98-%ec%8b%9c-%ea%b0%80%ec%9e%a5-%ec%a4%91%ec%9a%94%ed%95%9c-%ec%84%a4%ec%a0%95-4%ea%b0%80%ec%a7%80/ 카프카 설치 시 가장 중요한 설정 4가지 | Popit 카프카 보안과 커버로스(Kerberos)를 이용해 구성하는 방법에 대해 다루는 글을 쓰려다가, 현재 제가 구성한 보안 클러스터 구성환경에 접속할 수도 없고 새로 구성하기도 어려운 상황이라, 평소 www.popit.kr

Kafka 용어

1.카프카 브로커 https://devbksheen.tistory.com/entry/Kafka-Broker-Zookeeper Kafka Broker & Zookeeper란? Kafka Broker & Zookeeper란? 브로커(broker)는 실행된 Kafka application 서버를 뜻한다. 주키퍼(zookeeper)는 이러한 분산 메세지 큐의 정보를 관리해 주는 역할을 한다. kafka를 띄우기 위해서는 주키퍼가 반드시 devbksheen.tistory.com 2. 프로듀서 컨슈머 https://devbksheen.tistory.com/entry/Kafka-Producer-Consumer Kafka Producer & Consumer란? Producer & Consumer란? 프로듀서(produ..

모놀로리식, 마이크로서비스 아키텍쳐

잘못 알고있던 내용 : 1. 모놀로리식도 확장이 쉽다. 부하분산기 뒤에 애플리케이션 인스턴스를 여러 개 실행하면 되는 것. 2. 서비스마다 자체 DB를 둔다는 것이 자체 DB를 설치해야 한다는 의미가 아니다. 3. 서비스마다 자체 소스코드 저장소가 있고, 서비스마다 자체 자동화 개발 파이프라인(젠킨스 CI)이있다. 마이크로 서비스 아키텍쳐 근본 : - 3계층 아키텍쳐 - 웹 애플리케이션 설계 - 객체 지향 설계를 응용한 비즈니스 로직 개발 - RDBMS 사용법 : SQL 과 ACID 트랜잭션 - 메시지브로커와 REST API를 활용한 IPC - 인증/인가의 보안 개념 특징 : 1. Y축 확장 : 기능에 따라 애플리케이션을 서비스로 분해 2. Y축을 기준으로 X축확장(복제) 또는 Z축 확장(파티셔닝). X..

아파치 카프카

1. 카프카의 탄생 배경 파편화된 데이터 수집 및 분배 아키텍처를 운영하는데 큰 어려움을 겪던 링크드인이 개발했다. 카프카는 각각의 애플리케이션끼리 연결하여 데이터를 처리하는 것이 아닌, 한 곳에 모아 처리할 수 있도록 중앙집중화했다. 즉, 카프카는 기업의 대용량 데이터를 수집하고 이를 사용자들이 실시간 스트림으로 소비할 수 있도록 만들어주는 일종의 중추 신경으로 동작한다고 볼 수 있다. 카프카를 중앙에 배치하면서 소스애플리케이션과 타깃 애플리케이션 사이의 의존도를 최소화하여 커플링을 완화하였다. 카프카 내부에 데이터가 저장되는 파티션의 동작은 FIFO 방식의 큐 자료구조와 유사하다. 큐에 데이터를 보내는 것이 프로듀서이고 큐에서 데이터를 가져가는 것이 컨슈머이다. 상용 환경에서 카프카는 최소 3대 이상..

01 리팩터링: 첫 번째 예시

1. 원칙 : 프로그램이 새로운 기능을 추가하기에 편한 구조가 아니라면, 먼저 기능을 추가하기 쉬운 형택로 구조를 바로 잡은 후에 원하는 기능을 추가해야한다. 2. 단계 1) 테스트 코드짜기 2) 동작의 각 부분을 확인해서 함수를 쪼갠다. 3. 소스코드 function statement(invoice, plays){ let totalAmount =0; let volumeCredits = 0; let result =`청구 내역 ( 고객명: ${invoice.customer})\n`; const format = new Intl.NumberFormat("en-US", {style: "currency", currency: "USD", minimumFractionDigits:2}).format; for(let p..

로드 밸런서(구성 방식, 동작 모드)

서비스의 안정성이나 가용량을 높이기 위해 서비스를 이중화할 때는 서비스 자체적으로 HA 클러스터(High Availabilty Cluster)를 구성하기도 하지만 복잡한 고려 없이 이중화를 손쉽게 구현하도록 로드 밸런서가 많이 사용된다. 로드 밸런서에서는 서비스를 위한 가상 IP를 통해 각 서버로 접근한다. 1. 부하 분산이란? *FWLB(Fire Wall Load Balancing) 서버에 대한 부하 분산(SLB, Server Load Balancing)뿐만 아니라 방화벽을 액티브-액티브로 구성하기 위해 로드 밸런서를 사용하기도 한다. 방화벽은 자신을 통과한 패킷에 대해 세션을 관리하는 테이블을 갖고 있다. 방화벽을 통과하는 패킷에 대해서 방화벽 정책을 확인해 허용되는 정책이면서 그 정보를 세션 테이블..

로드 밸런서 / 방화벽 : 4계층 장비(세션 장비)

4 계층의 특징인 포트번호, 시퀀스 번호, ACK번호에 대해 이해해야 하고, 2,3 계층 장비에서는 고려하지 않았던 통신의 방향성이나 순서와 같은 통신 전반에 대한 관리가 필요하며 이런 정보를 세션 테이블이라는 공간에 담아 관리한다. 1. 4계층 장비의 특징 4계층4 계층 장비는 TCP와 같은 4 계층 헤더에 있는 정보를 이해하고 이 정보들을 기반으로 동작한다. 그래서 4 계층 이상에서 동작하는 로드 밸런서, 방화벽과 같은 장비를 '세션 장비'라고 부른다. 가. 세션 테이블 : 세션 장비는 세션 테이블을 기반으로 운영된다. 나. Symmetric(대칭) 경로 요구 : Inbound와 Outbound 경로가 일치해야 한다. 다. 정보변경(로드 밸런서의 경우) : IP 주소가 변경되며 확장된 L7 로드 밸런..

라우터/L3 스위치: 3계층 장비

# IP 주소 : 논리 주소(cf. mac주소 - 물리 주소) ip주소는 네트워크 주소와 호스트 주소로 나뉜다. 호스트들을 모은 네트워크를 지칭하는 주소를 네트워크 주소라고 하고 하나의 네트워크 내에 존재하는 호스트를 구분하기 위한 주소를 호스트 주소라고 한다. 라우터는 3 계층에서 동작하는 네트워크 장비로 들어오는 패킷의 목적지 IP 주소를 확인하고 자신이 가진 경로정보를 이용해 패킷의 최적 경로로 포워딩한다. 라우터의 대표적인 기능은 네트워크와 네트워크를 연결하는 것이지만, NAT(Network Address Translation), 방화벽, VPN, QoS 등 다양한 부가기능을 함께 제공한다. # IP 주소에서.. https://oktopbang.tistory.com/entry/ip%EC%A3%BC..