반응형

Book 29

1. 알고리즘이란?

1. 알고리즘 어떠한 문제를 해결하기 위해 정해놓은 일련의 절차를 말한다. 올바른 알고리즘이란 ' 어떠한 경우에도 실행 결과가 똑같이 나와는 것 ' 을 말한다. 만약 알고리즘의 실행 결과가 어떤 경우에는 맞고 어떤 경우에는 틀리면 올바른 알고리즘이라고 할 수 없다. def max3(a,b,c): maximum = a if b > maximum: maximum = b if c > maximum: maximum = c return maximum print(f'max3(3,2,1) = {max3(3,2,1)}') print(f'max3(3,2,2) = {max3(3,2,2)}') print(f'max3(3,1,2) = {max3(3,1,2)}') print(f'max3(3,2,3) = {max3(3,2,3)}..

5. 배포과정

5.1 배포 관련 용어 배포와 관련하여 몇가지 알아두면 좋은 용어들이 있다. 5.1.1 무중단 배포 서비스를 중단하지 않고 배포한다는 의미로, 사용자들이 서비스를 사용하는데 아무런 지장없이 배포를 진행하는 경우를 뜻함. 서비스 A, B 를 제공하는 곳에서 A, B 에 영향을 주지않는 C 기능이 추가된 경우엔 무중단 배포를 해도 문제 없음 5.1.2 현재 위치 배포 무중단 배포를 하기 위한 기법의 하나로 여러 대의 서버를 배포할 때 새롭게 서버를 생성하거나 줄이지 않고 배포하는 방법을 뜻함 무중단으로 배포할 수 있는 기법의 하나로 새로운 인스턴스 생성할 필요 없이 간단하고 빨리 진행된다는 장점 배포중에는 클라이언트의 요청을 처리할 수 있는 인스턴스의 수가 준다는 점에 유의해야함 5.1.3 블루 / 그린 배..

4. 운영 서버의 외부 환경 구성 ( DNS, HTTPS )

4.1 도메인, DNS 4.1.1 도메인 서버의 고유 IP 는 유저들에게 친화적이지 않음 사용자들이 쉽게 외워 접속할 수 있는 naver.com 과 같은 도메인 주소 필요성이 제기됨 IP 주소는 변경될 경우 유저 접속이 힘들어지기에 도메인 주소는 필요함 4.1.1.1 도메인 주소의 작동 방식 웹 브라우저와 같은 클라이언트에서 특정 사이트 naver.com 에 접속하려는 경우 다음과 같은 일이 일어난다 1) 웹 브라우저의 주소창에 naver.com 을 입력하고 엔터를 친다 2) 웹 브라우저에서 가까운 DNS 서버에 naver.com 이란 도메인의 실제 IP 주소를 알고있는지 물어본다 3) 해당 DNS 서버가 보른다면 다음 DNS 서버에 물어본다 -> 찾을 때까지 반복 4) naver.com 의 실제 주소를..

3.1 Auto Scaling 그룹 생성

인스턴스에서 생성된 AMI 를 활용해 새롭게 이미지를 생성했다는 것을 전제로 한다. 1. 시작 템플릿에 들어 간 후에 시작 템플릿 생성 버튼 클릭 - 시작 탬플릿에 들어간다 - 그 후에 시작 탬플릿 생성을 클릭한다 * 시작 탬플릿 생성 --> Auto Scaling 그룹이 인스턴스 생성시 어떤 AMI 를 기반으로 할 것인지, 서버 사양 및 보안 그룹 설정 등 인스턴스에 대한 설정을 미리 정해주는 것이다 2. 시작 탬플릿 생성 시작 탬플릿 생성시 아래의 AMI ID 는 새롭게 생성한 이미지의 AMI ID 를 기입한다, 그리고 각 섹션에 사용할 인스턴스, 저장한 키페어 값 그리고 마지막으로 사용할 보안그룹을 지정한 후에 시작 탬플릿 생성 버튼을 클릭한다. 3. Auto Scaling 그룹생성 버튼을 클릭한다..

3. 다중 서버 환경 구성

대부분의 운영 환경에서는 한대의 서버 인스턴스가 아닌 여러대의 서버 인스턴스로 서비스함 --> 많은 트래픽에 대응하고 서버에 장애가 생겨도 서비스가 안전하게 돌아갈 수 있게 하기 위함 * Auto Scaling --> 트래픽에 따라 서버의 수를 자동으로 늘리고 줄이는 방식 3.1 AWS Auto Scaling 그룹을 이용한 다중 서버 구성 아래 이미지는 2장에서 공부한 서버 단위의 로드 밸런서를 둔 서버 아키텍처의 모습이다. 3.1.1 AWS Auto Scaling 그룹 AWS Auto Scaling 그룹은 AWS 에서 제공하는 자동 다중 서버 서비스 같은 사양, 같은 환경, 같은 코드를 가지고 있는 똑같은 EC2 인스턴스들의 묶음 AMI 를 이용해서 만들어졌기 때문에 같은 인스턴스들이 여러대 존재 가능..

2.4 웹 서버와 웹 애플리케이션 서버

서버 소프트 웨어는 크게 웹 서버와 웹 애플리케이션 서버로 구분할 수 있다. 2.4.1 웹 서버 클라이언트에서 HTTP 프로토콜로 요청을 받고 정적인 파일들을 응답으로 전달 대표적인 제품으로는 nginx, apache, IIS 등이 있음 HTML, CSS, JS 와 같은 정적인 파일 내용을 그대로 응답으로 줄수 있지만, 애플리케이션 코드를 실행해 그 결과를 알려주지는 않음 2.4.2 웹 애플리케이션 서버 (WAS - Web Application Server) 클라이언트의 요청에 대해 코드 실행을 통해 동적인 응답을 만들어주는 역할 배포한 코드를 프로세스에서 실행, 해당 프로세스에 클라이언트 요청을 넘겨주는 역할 서버 자원 최적화를 위해 프로세스의 수, 메모리를 조절하기도 함 2.4.3 웹서버와 웹 애플리..

2-1. 운영 서버 환경의 구성

2.1 운영 서버 아키텍처의 이해 2.1.1 단일 서버 단일 서버 구성은 단순한 구성인만큼 환경을 구축하기가 쉽다는 장점이 있어서 테스트 서버나 간단한 애플리케이션을 서비스할 때 많이 사용한다. 그리고 DB 와 애플리케이션이 같은 서버에서 실행되어 별도의 네트워크 설정을 할 필요 없이 로컬 호스트를 대상으로만 하면 된다. 하지만, 아래와 같은 단점이 있다. 첫번째, 전체 서비스의 장애 발생 가능성이 높음 같은 자원을 공유하기 때문 둘 중 하나라도 장애가 발생할 경우 그 부분이 아닌 전체가 죽을 수 있음 두번째, 서버 자원의 효율적 사용 어려움 각 속성에 따라 최적 OS 설정 자원의 종류(CPU, 메모리..) 등이 다를 수 있음 세번째, 보안성이 떨어짐 애플리케이션 특성상, 여러 불특정 IP 를 받아야 되..

1. 운영 서버와 AWS 소개

아래 내용은 위키북스 서비스 운영이 쉬워지는 AWS 인프라 구축 가이드라는 책을 정리한 것이다. 위 글의 제목을 클릭하면 온라인 서점으로 연결되니 구매의사가 있으면 넘어가도 좋을 것 같다. 아래 내가 정리한 내용은 추후 추가적으로 보충학습할 때 사용할 예정이다. 1.1 운영 서버 운영 서버는 개발이나 테스트 목적이 아닌 실제 사용자들을 대상으로 서비스하는 서버, 운영서버는 트래픽 대응, 빠른 응답속도, 높은 가용성을 보장해야 한다. 그러기 위해 운영 서버는 테스트 서버와 다르게 다양한 구성 요소들을 포함해야 한다. 1.2 운영서버 관리의 세단계 운영 서버 관리는 크게 ‘환경구성’, ‘코드배포’, ‘모니터링’ 이라는 세 단계로 나뉨. 첫째 환경구성 : 서비스 코드를 구동시킬 수 있는 서버 인프라 구축 둘째..

1. 부가세 출력 프로그램 만들기

책에 있는 것에 좀 더 추가해서 부가세 출력 프로그램을 만들어보았다. 유저가 잘못 입력할수도 있기 때문에 while 반복문을 통해 잘못 입력했을 경우 다시 복귀하여 재 입력이 가능하도록 했다. 뭔가 더 간단한 코드가 있을거 같긴한데... def service_price(): while True: service = input('서비스 종류를 입력하시오 (a / b / c) : ') valudAdd = input("부가세를 포함하시나요? (y/n) : ") if valudAdd == 'y': if service == 'a': result = 23 * 1.1 elif service == 'b': result = 40 * 1.1 elif service == 'c': result = 67 * 1.1 else: p..

빅데이터의 탐색 4-1. 벌크형과 스트리밍 형의 데이터 수집

데이터 전송에는 벌크형과 스트리밍 형의 두 종류의 도구가 사용된다. 1. 객체 스토리지와 데이터 수집 - 분산 스토리지에 데이터 읽어들이기 빅데이터는 대부분 확장성이 높은 분산 스토리지(distributed storage)에 저장된다. 분산형의 데이터베이스가 사용되는 경우도 있지만, 대부분은 대량으로 파일을 저장하기 위해 객체 스토리지(Object storage) 를 쓴다. 객체 스토리지는 다수의 컴퓨터를 사용하여 파일을 디스크에 복사함으로써 데이터의 중복화 및 부하 분산을 실현한다. 대표적인 예시로 Hadoop 의 HDFS, 클라우드 서비스의 Amazon S3 가 있다. 객체 스토리지에서의 파일 읽고 쓰기는 네트워크를 거쳐서 실행한다. 데이터는 항상 여러 디스크에 복제되기 때문에 일부 하드웨어가 고장나..

반응형