전체 글

전체 글

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 네트워킹의 동작원리 - 1

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 네트워킹의 동작원리 - 1

    (VPC) AWS 네트워킹의 동작 원리 Amazon Virtual Private Cloud(Amazon VPC)를 이용하면 사용자가 정의한 가상 네트워크로 AWS리소스를 시작할 수 있습니다. 이러한 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센터에서 운영하는 기존 네트워크와 매우 유사합니다. 이 뜻은 기존에 선 깔고 기기 사는 과정과 별 다를바 없다는 뜻입니다. ( 기능적으로 매우 유사 ) VPC의 특징 계정 생성 시 default로 VPC를 만들어 줍니다. EC2, RDS, S3등의 서비스를 활용 가능합니다. 서브넷 구성 ( CIDR ) 보안 설정(IP block, inbound outbound설정) VPC Peering(VPC간의 연결) IP 대역 지정 ..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 네트워킹의 기본

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 네트워킹의 기본

    네트워킹의 기본 컴퓨터 사이에 통신을 하려면 컴퓨터의 위치값을 알아야 합니다. 각 컴퓨터의 위치값(주소)를 IP주소 라고 지칭합니다. (IPV4) 이는 옥텟4개로 이우어져 있어 32비트로 나누어 집니다. 즉 총 표현개수는 2^32개 입니다. 또한 IPV4 IP주소에는 여러개의 Class가 존재합니다. 만약 A Class에 Host가 10개 있다고 하면, 이는 A Class네트워크에 10개의 주소가 있다고 보시면 됩니다. 즉 정리하면 1개의 네트워크가 2^24개의 ip 즉 호스트를 보유하고 있다는 뜻이고 이런 네트워크가 A Class에는 2^7개 있다는 것입니다. 하나의 네트워크는 큰 규모를 자랑합니다. 하지만 이러한 네트워크의 개수는 상당히 적습니다. B Class는 조금 다릅니다. 1개의 네트워크가 ..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - AWS의 주요 서비스 소개

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - AWS의 주요 서비스 소개

    컴퓨팅 서비스 AWS EC2(elastic)은 이름에서부터 탄력적이라는 말이 있습니다. 즉 탄력적이게 컴퓨팅 자원을 늘릴 수 있다는 것입니다. 만약 내가 노트북을 머신러닝 하려고 샀는데, 여기있는 CPU, GPU를 조절하려고 하면, 하드웨어니까 다 뜯어 고쳐야 하는 단점이 있습니다. 이는 할 수 있긴 하지만 하드웨어의 단점 때문에 이를 하기는 어렵습니다. 하지만 EC2는 클릭 한번으로 이를 다 할 수 있게 됩니다. AWS Lightsail은 여기에 가상화 프라이빗 서버를 곁들인 서비스를 말합니다. 또한 AWS Auto Scaling은 갑자기 서비스의 사용자가 많이 10배가 뛰어서 10만명이 되었다고 해 봅시다. 그럼 이는 EC2를 자동으로 몇개를 더 만들어서 이 더 만든 EC2에 트래픽을 분산시켜주는 역..

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 클라우드 컴퓨팅

    [ DevOps ] - AWS 기반 소규모 & 중규모 아키텍트 설계 - 클라우드 컴퓨팅

    클라우드 컴퓨팅 AWS에서 제공하는 클라우드 서비스는 언제 어디서든, 접근이 가능하다는 장점이 존재합니다. 또한 원하는 만큼 컴퓨터 자원을 scaling할 수 있다는 장점이 있습니다. 만약 물리적 컴퓨터를 이용한다면 컴퓨터를 여러개를 사서 늘리는 방법이 존재하지만, 클라우드 서비스는 그렇지 않습니다. 또한 사용한 만큼만 지불하면 됩니다. 새벽시간을 예시를 들면, 서비스 사용양이 줄어들 텐데, 이 때는 요금을 적게 사용하면 된다는 장점이 있을 수 있습니다. 그리고 클릭 하나만으로 컴퓨터 서비스를 이용할 수 있다는 장점이 있기도 합니다. 하지만 AWS에는 너무 많은 컴퓨터적 자원이 존재합니다. 그래서 관리를 위해서는 고급 전문 지식이 필요할 수 밖에 없다는 단점이 있습니다. 하지만 요즘은 GUI가 너무 잘 ..

    [ DevOps ] - DevOps 엔지니어의 역할

    [ DevOps ] - DevOps 엔지니어의 역할

    DevOps vs DevOps 엔지니어 DevOps엔지니어는 DevOps를 하는것이 아니라, 조직에 DevOps문화를 정착시키는 역할을 하게 됩니다. 앞에서 말했듯이 DevOps는 하나의 문화입니다. DevOps를 한 조직에 정착시키고 전파시키는것이 DevOps엔지니어의 역할입니다. 즉 DevOps엔지니어는 개발자가 개발뿐만 아니라 운영에도 참여할 수 있는 환경을 만들어 주는 역할을 합니다. 개발자가 테스팅을 해야 하는데, 이를 할 수 있는 setUp이 구축되어 있지 않으면 개발자가 이를 직접 다 해야 합니다. DevOps 엔지니어는 이러한 환경 ( 비지니스 로직 )을 구축합니다. DevOps팀의 주요 고객은 개발자라고 할 수 있습니다. DevOps팀에서 구축하고 운영하는 많은 시스템들의 주 사용자가 개..

    [ DevOps ] - 개요

    [ DevOps ] - 개요

    DevOps란 데브옵스는 분리되어 있던 개발 조직과 운영 조직의 경계를 허물고 하나의 팀으로 통합하고자하는 문화이자 철학입니다. 대부분의 회사들에서 직접 서버장비를 구매하고, 그 서버장비 위에 운영체제를 설치하고 그리고 그 위에 서비스를 운영하기 위한 환경을 만들고, 해당 환경에 서비스를 올리는 식으로 진행되었습니다. 이 단계에서 개발팀과 운영팀이 분리되어 있었습니다. 따라서 이러한 개발팀과 운영팀 사이의 소통에서 문제가 있었습니다. 즉 이러한 과정에서 굉장히 많은 커뮤니케이션 오버헤드가 발생한 것입니다. 이는 대부분의 조직의 구조입니다. 조직의 규모가 크다면 각 단계 별 전문가로 구성된 기능 조직을 운영할 수도 있습니다. 하지만, 그만큼 의사소통이 많아지기 때문에 커뮤니케이션 문제가 발생하게 되고, 병..

    Advanced Web Programming - Closure

    클로저 함수 클로저 함수는 외부 함수의 실행이 끝나더라도 외부 함수 내 변수를 사용할 수 있습니다. 클로저는 이처럼 특정 데이터를 스코프 안에 가두어 둔 채로 계속 사용할 수 있게 하는 폐쇄성을 갖습니다. // 클로저를 만드는 형태 1. - 중첩함수 function outerFn() { let x = 10; return function innerFn(y) { // innerFn 함수는 클로저다. return x = x + y; } } let a = outerFn(); // 외부함수 호출은 한번만. 이제 a 변수는 innerFn 함수를 참조한다. a(5); // 15; a(5); // 20; a(5); // 25; // 클로저를 만드는 형태 2. - 전역에 선언한 변수를 박스 안에서 함수로 정의하고 전역에..

    Advanced Web Programming - lexical scope ( 2 )

    var name = 'zero'; // (1)변수 선언 (6)변수 대입 function wow(word) { // (2)변수 선언 (3)변수 대입 console.log(word + ' ' + name); // (11) } function say () { // (4)변수 선언 (5)변수 대입 var name = 'nero'; // (8) console.log(name); // (9) wow('hello'); // (10) } say(); // (7) 일단 처음 코드를 실행(여기서 실행은 브라우저가 스크립트를 로딩해서 실행하는 걸 말합니다..)하는 순간 모든 것을 포함하여 전역 컨텍스트가 생깁니다. 모든 것을 관리하는 환경입니다. 페이지가 종료될 때까지 유지됩니다. 전역 컨텍스트 말고도 함수 컨텍스트가 있습..

    Advanced Web Programming - lexical scope

    전역 변수와 지역 변수 자바스크립트에서 주로 변수를 사용해 데이터를 저장했었습니다. var로 선언했었습니다. 물론 변수를 만드는 일은 문제가 되지 않았지만. 전역(global)변수를 만드는 일은 최대한 지양해야 합니다. 전역변수란 자바스크립트에서 제일 바깥 범위(함수 안에 포함되지 않은)에 변수를 만드는 겁니다. window객체나 global객체에 변수를 만드는 것입니다. var x = 'global' function ex() { var x = 'local'; x = 'change'; } ex(); alert(x); 다음을 보시면 같은 x여도 ex함수 바깥의 x는 전역변수이고 ex함수 안의 x는 ex함수의 지역변수가 됩니다. 지역 변수는 함수 안에 들어있는 변수를 의미합니다. 스코프 위의 상황에서 지역변..

    Data Structure - Graph ( DFS, BFS )

    Data Structure - Graph ( DFS, BFS )

    DFS 이는 깊이 우선 탐색이라고도 하며, 루트 노드 ( 혹은 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 deep하게 탐색하는 방법입니다. 미로를 탐색할 때 한 방향으로 갈 수 있을 때까지 계속 가다가 더 이상 갈 수 없게 되면 다시 가장 가까운 갈림길로 돌아와서 이곳부터 다른 방향으로 다시 탐색을 진행하는 방법과 유사합니다. 즉, 넓게(wide)탐색하기 전에 깊게(deep)탐색 하는 것입니다. 사용하는 경우 : 모든 노드를 방문 하고자 하는 경우에 이 방법을 선택합니다. BFS 이는 너비 우선 탐색이라고도 하며, 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법입니다. 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나..