본문 바로가기

분류 전체보기

(93)
HTTP/2 HTTP/1.1의 속도 개선을 위해 HTTP2 가 등장1. Header Compression{허프만 코딩이나 헤더 테이블을 활용해 헤더 사이즈를 줄임(일반적으로 1/3 정도)} - HTTP/1.1은 헤더가 너무 큼(특히 쿠키)2. Multiplexed Stream - 기존보다 적은 TCP 커넥션으로 여러 메세지를 주고 받음3. Server Push - 클라이언트 요청 없이 서버가 리소스를 알아서 보냄4. Stream Priority - 중요한 요청에 우선순위를 부여 [참조]http://www.bloter.net/archives/210122https://www.popit.kr/%EB%82%98%EB%A7%8C-%EB%AA%A8%EB%A5%B4%EA%B3%A0-%EC%9E%88%EB%8D%98-http2/
HTTP와 HTTPS의 차이 http : www 상에서 정보를 주고 받는 프로토콜 - 빠름 - 변조, 해킹 가능성 있음 - 적은 비용으로 유지 가능https : http + secure socket (공개키 암호화 방식을 통해 모든 통신 내용을 암호화 함) - 느림 - 보안성 뛰어남(...할말하않) - 설치 및 인증서를 유지해야 되고, 트래픽이 비교적 많이 발생함(유지 비용이 큼)
03. 계정 관리와 권한 부여 AWS 계정 관리AWS Organizations - 파일 시스템 처럼 트리 구조를 이용해 계정을 그룹화함 - Organization : 관리하고 싶은 계정 그룹을 묶는 부모 그룹. Organization 단위로 결제를 통합할 수 있음 - Root : Organization의 트리 구조에서 최상위의 개념 - Organization Unit : 자식 계정을 묶는 논리 그룹. 하위에 다른 Organization Unit을 생성할 수도 있음 - 계정 : 개별 계정 AWS Organizations의 기능1. 계정 생성2. 결제 일원 관리3. 계정에서 이용 가능한 AWS 서비스에 제한 설정(JSON 형식의 권한 설정) AWS Organizations의 도입과 정책 설정1. 마스터 계정으로 Organization을 ..
02. 전체 설계 AWS 계정과 IAM 사용자AWS 계정 - 기본 설정은 메일 주소와 패스워드만으로 로그인이 가능함. 권한에 비해 보안 수준이 낮으므로 다요소 인증 설정을 해야함(토큰 기반) IAM의 구조 - IAM 사용자 : AWS 이용자 - IAM 그룹 : IAM 사용자를 역할별로 그룹을 만들어 사용. 사용자는 복수의 그룹에 속할 수 있음 - IAM 정책 : 권한을 기술한 규칙 - IAM 역할 : AWS의 서비스에 권한을 부여하는 방식 복수의 AWS 계정 관리일괄 결제 기능 - 여러 AWS 계정에서 발생하는 결제를 계정 하나로 통합 하는 기능(계정 전체를 대상으로 한 통합 결제로 인해 큰 할인 혜택을 받거나 인스턴스를 돌려 쓸 수 있음) 조직 계정 - 일괄 결제 기능을 포함하고, AWS 계정에 대해 IAM처럼 정책 제..
01. AWS 서비스 개요 AWS와 온프레미스의 차이 온프레미스 AWS 비용 초기에 전액 필요 초기 비용 불필요. 종량제로 분산해서 비용 발생 서버의 조달 기간 몇 주 ~ 몇 개월 몇 분 서버의 추가/변경 시간과 비용 발생 리소스 차액 만큼 비용 지불 AWS의 이점1. 스몰 스타트로 시작, 필요 없어지면 삭제 - 사용한 만큼만 과금되며 이용을 중지하면 그 이후는 과금 되지 않음2. 빠른 인프라 구축 속도 - 브라우저의 관리 콘솔에서 간단히 새로운 가상 서버 추가 가능3. 사전 리소스 확보 불필요 - 실제 리소스에 맞춰 증감이 가능(종량 과금제 이므로 사용한 만큼만 과금), 사전 설계 보다 구현에 시간을 투자 할 수 있음4. 빠르게 실패(Fail Fast) - 사전 검토에 많은 시간을 투자하는 것 보다 실제 테스트를 하고 결과를 확..
IoC(Inversion of Controll) - 제어의 역전 IoC(Inversion of Controll) - 제어의 역전 - 인스턴스의 생성부터 소멸까지의 생명주기를 스프링 IoC 컨테이너에서 해줌 - 스프링 IoC 컨테이너는 객체의 생성을 책임지고 의존성을 관리함 IoC 구현 방법1. DL(Dependency Lookup) - 의존성 검색 - 빈에 접근 하기 위해 개발자가 사용 시점에 검색 해서 가져옴2. DI(Dependency Injection) - 의존성 주입 - 객체 생성 시점에 필요한 빈을 컨테이너에서 주입해 주는 것 (setter injection, constructor injection, method injection) 클래스 호출 방식 일반적인 클래스 호출클래스 내에 선언과 구현이 같이 있어서 다양한 형태로 변화가 불가능 인터페이스를 이용한 클..
04. 부호화와 발전 부호화(직렬화, 마샬링) - 인메모리 표현에서 바이트열로의 전환복호화(파싱, 역직렬화, 언마샬링) - 바이트열에서 인메모리 표현으로 전환 많은 서비스가 새로운 버전의 서비스를 동시에 모든 노드에 배포 하는 방식보다 일부 노드부터 서서히 배포하는 순회식 업그레이드가 필요순회식 업그레이드는 무중단으로 새로운 버전의 서비스를 출시 가능하게 함순회식 업그레이드 중이거나 여러 가지 다른 이유로 다양한 노드에서 다른 버전의 여러 애플리케이션 코드가 수행 될 수 있는데 이 때문에 시스템을 흐르는 모든 데이터는 하위 호환성(새로운 코드가 예전 데이터를 읽을 수 있음), 상위 호환성(예전 코드가 새로운 데이터를 읽을 수 있음)을 제공하는 방식으로 부호화 해야함 프로그래밍 언어에 특화된 부호화는 단일 프로그래밍 언어로 제..
DispatcherServlet 1. Http(s)로 들어 오는 모든 request를 받음 2. HandlerMapping애 어떤 Controller(Handler)를 사용할건지 알아냄3. HandlerAdapter를 통해 Controller에 전달4. Controller에서 돌려준 view name으로 ViewResolver에서 View를 알아냄5. View에 요청해 처리된 결과를 화면으로 표현함6. 웹 브라우저에 최종 결과를 출력 DispatcherServlet이 가지는 기능(전략 인터페이스)HandlerMappingRequest와 Controller 객체를 mapping을 정의하는 인터페이스일반적으로 사용하는 @RequestMapping을 이용한 handler mapping 전략 BeanNameUrlHandlerMapping, D..