본문 바로가기

전체 글

(32)
vpc - vpc간의 연결 Transit Gateway Transit Gateway를 사용하는 이유는 다음과 같습니다. 1. 두개 이상의 VPC를 연결하여 동일한 네트워크 대역대인 것 처럼 사용하고 싶을 경우 (peering의 경우 여러개를 연결 했을 때 구성이 복잡해질 수 있다.) 2. 두개 이상의 VPC를 연결하여 사용하지만 Internet 망을 거치고 싶지 않은 경우 VPC는 아시다시피 Vertual Private Cloud의 약자로 클라우드가 아닌 IDC에서 사용하던 private한 환경과 같이 구성할 수 있는 가상의 클라우드 환경입니다. 지난번 VPC 구성에서는 하나의 VPC 안에서 외부 접근으로 부터 보호되어야하는 was 서버나 database가 들어가는 private 구역과 외부에서 접근이 가능하게 할 수 있는 web 서버를 가지고 있는 publ..
python - 패킹과 언패킹(packing & unpacking) 패킹과 언패킹 패킹과 언 패킹은 단어의 뜻에서 알 수 있듯이 '싸다'와 '풀다'이다. 파이썬은 데이터를 변수에 대입할 때 독특한 방법을 사용할 수 있다. 간단한 예시를 통해 알아봅시다. numbers = 1,2,3,4,5 # 패킹 # 원래는 튜플을 나타내는 괄호를 사용해야하지만 생략하는 경우가 더 많다. # numbers = (1,2,3,4,5) print(numbers) > [1,2,3,4,5] a,b,c,d,e = numbers # 언패킹 print(a,b,c,d,e) > 1 2 3 4 5 내가 아는 자바나 자바스크립트에서는 본적이 없는 코드입니다. 패킹과 언패킹은 언더바를사용하여 불필요한 값을 언더바로 사용하여 생략할 수도 있습니다. numbers = 1,2,3,4,5 a,_,_,d,e = numb..
ec2 - 네트워크 인터페이스 사용(network interface) aws cloud 환경에서 여러개의 서버를 구축하는 작업을 하다가 보면 programming을 하는 것과 같이 같은 작업을 하는 경우가 적지 않게 발생합니다. ec2 instance를 여러개 생성하여 docker swarm으로 network 환경을 구성한 프로젝트가 있었습니다. docker swarm으로 통신을 테스트 하던 중에 network가 불안정하여 docker의 container의 name으로 통신을 하지 않고 IP 주소를 명시하여 사용하였습니다. 이때 구성하였던 network 환경은 위와 같습니다. test를 하기 위해 여러번 ec2 instance를 새로 생성하여 구성을 할 때 instance의 ip 주소가 바뀌어 매번 수작업으로 host의 "/etc/hosts" 파일과 docker-compo..
python - iterator, generator(이터레이터와 제네레이터) 출처 : https://nvie.com/posts/iterators-vs-generators/ 컨테이터(container) 컨테이너는 원소들을 가지고 있는 데이터 구조이며 멤버쉽 테스트를 지원합니다. 이는 메모리에 상주하는 데이터 구조로, 보통 모든 원소값을 메모리가 가지고 있습니다. 파이썬에서 잘 알려진 컨테이너는 다음과 같습니다. 기술적으로 어떤 객체가 특정한 원소를 포함하고 있는지 아닌지를 판단할 수 있으면 컨테이너라고 합니다. 다음과 같이 리스트, 셋, 튜플에 대해 멤버쉽 테스트를 할 수 있습니다. assert 1 in [1, 2, 3] # lists assert 4 not in [1, 2, 3] assert 1 in {1, 2, 3} # sets assert 4 not in {1, 2, 3} a..
python - format(문자열) 포맷팅 문자열을 출력하는 방법은 여러가지가 있습니다. 그중에 가장 많이 사용하는 것이 print() 함수입니다. 문자열을 출력할 때에는 어떤 알림이나 정보를 보여줘야 하는 이유가 대부분 입니다. 그런데 그 정보는 일정한 틀 안에 세부 정보는 가변적으로 계속 바꿔야하는 경우가 많습니다. 그래야 정보로써의 제 기능도 할 수 있습니다. 예를 들어 날짜를 알려주는 알림문자가 있다고 합시다. "지금은 6시 42분 입니다."라는 문장이 있는데 몇시가 되었든 항상 같은 문장을 보여준다면 이 알림은 기능을 못한다고 볼 수 있습니다. 문장안에 있는 숫자는 시간이 지나면서 계속 다른 정보를 보여줘야 합니다. 이때 필요한 것이 포맷팅이라 할 수 있겠습니다. 포맷 1 이 방법은 문자열을 쪼개서 더하기(+)로 붙이는 방식입니다..
python - 재귀 함수 재귀 함수는 자기 자신을 호출할 수 있습니다. 함수가 자신을 직점 또는 간접적으로 호출하는 것을 재귀(recursion)이라고 합니다. 재귀를 사용하면 while문이나 for문 없이도 반복작업을수행할 수 있습니다. 다음은 전형적인 재귀 함수입니다. def numbers(n,m): """수 n을 출력하고, 1 더한 수가 m보다 작으면 그 수도 출력한다.""" print(n) if n + 1 4 > 5 > 6 > 7 코드의 함수는 자연수 n과 m을 입력받아 그 사이의 모든 자연수를 출력하는 함수입니다. 이 함수는 본문 안에서 자기자신( numbers() )을 호출합니다. 이 함수가 실행되는 과정을 살펴보면 다음과 같습니다. 1. 처음에 nu..
python - 반복문(break, continue) 반복문(break, continue) 기본적으로 알아야 하는 반복분의 문법에 대해서는 다루지 않을 것입니다. for와 while이 있는데 기본적인 문법 보다는 어떻게 멈추고 지나가는지에 대해 정리해볼 것입니다. 반복문을 사용하다 보면 특정 상황에 반복문을 종료하거나 지나쳐야할 때가 있습니다. 첫번째로 반복문을 특정 상황에서 종료해야 하는 경우를 알아보겠습니다. 상황을 종료하는 break 간단하게 설명을 했듯이 반복문을 사용하다 보면 특정 상황에 반복을 종료해야 하는 상황이 발생합니다. 예를 들면 시퀀스의 반복을 돌리다가 특정 값을 찾게 되면 반복문을 벗어나게 된다는 프로그램을 짜게된다는 것처럼 말입니다. 여기서 계속 등장하는 것이 '특정 상황'인데 그렇기 때문에 특정 상황을 명시하는 if문과 보통 같이 ..
ec2 - AMI 이미지 생성 및 사용하기 aws ec2 instance를 사용하다 보면 "현재까지의 instance 상태"와 똑같이 다른 ec2 instance를 만들어야하는 경우가 있습니다. 또는 현재 상태를 저장해두어야 하는 백업이 필요한 경우도 있습니다. aws ec2 instance는 가상 이미지를 기반으로 computing을 제공하기 때문에 그 가상의 이미지의 상태를 저장하여 이식하고 재사용할 수 있습니다. 저같은 경우에도 같은 세팅으로 test 환경, QC 환경, production 환경을 구성할 때 test환경의 이미지를 그대로 AMI로 만들어 모든 환경에 배포를 한 적이 있습니다. 또는 autoscaling을 사용할 경우 autoscaling group을 구성할 때 현재 존재하는 AMI를 기반으로 autoscaling group을..