인터넷
마이크로 서비스 패턴
마이크로 서비스 패턴
2020.10.101) X축 확장 :: 다중 인스턴스에 고루 요청 분산 일반적인 모놀리식 애플리케이션 확장 수단, 부하 분산기 뒷면에 애플리케이션 인스턴스 N개를 띄워 놓고 부하 분산기는 들어온 요청을 인스턴스에 고루 분배합니다. 애플리케이션 능력과 가용성을 개선할 수 있습니다. 2) Y축 확장 :: 요청 속성별 라우팅 인스턴스 앞면에 위치한 라우터는 요청의 속성에 알맞은 인스턴스로 요청을 라우팅 합니다. 애플리케이션을 확장해서 증가하는 트랜잭션 및 데이터 볼륨을 처리하기 좋습니다. 3) Z축 확장 :: 기능에 따라 애플리케이션을 서비스로 분해 위 과정을 거치면 X축/Z축 확장을 하면 애플리케이션 능력과 가용성 개선, 애플리케이션이 복잡해지면 문제는 해결되지 않는다. 모놀리식 애플리케이션을 여러 서비스로 쪼갠다. Y축 확..
프로그래머스 : JOIN
프로그래머스 : JOIN
2020.10.07https://programmers.co.kr/learn/courses/30/lessons/59042 이 문제는 입양을 간 기록은 있는데 보호소에 들어온 기록이 없는 동물의 ID 와 이름을 ID순으로 조회하는 SQL문을 작성하는것입니다. 어떻게 풀어야 할까...! 우선 테이블을 보면 ANIMAL_INS의 역할은 동물 보호소에 들어온 동물의 정보를 담는다. 반면에 ANIMAL_OUTS는 동물 보호소에 입양 보낸 동물의 정보를 담습니다. right join 즉, 오른쪽 테이블(ANIMAL_OUTS) 를 기준으로해서 무조건 ANIMAL_OUTS는 모두 보이는 형태가 됩니다. 그리고 ANIMAL_ID 값이 서로 같은 것을 기준으로 왼쪽 테이블(ANIMAL_INS)의 값을 불러오는데 '보호소에 들어온 기록이 없다..
GCP40 :: 베스천호스트 연결
GCP40 :: 베스천호스트 연결
2020.10.02구글문서에 따르면 베스천 호스트를 통해 내부 아이피 만으로 외부아이피 없이 접속할 수 있습니다. 이 방식의 장점은 따로 방화벽 규칙을 설정하지 않고도 개발 환경에 연결하거나 외부 애플리케이션의 데이터베이스 인스턴스를 관리할 수 있습니다. 우선적으로 베스천 호스트에 로그인한 후에 대상 비공개 인스턴스에 접근하여 로그인하게 됩니다. 이러한 베스천 호스트를 점프 서버라고도 부릅니다. 다음 2단계를 거쳐서 로그인을 수행합니다. 1) OS로그인 사용 설정합니다. gcloud compute instances add-metadata test --metadata enable-oslogin=TRUE 여기서 test 인스턴스에 oslogin 을 TRUE 로 주었습니다. 또, test 인스턴스에 rw 권한을 부여해야 합니다..
알고리즘108 :: 구간합 (JAVA)
알고리즘108 :: 구간합 (JAVA)
2020.09.30구간의 합을 빠르게 구하고자 할때 Priefix sum을 미리 구해서 답을 도출해냅니다. 누적합이 특정배열에 담기는것으로 상수시간안에 답을 도출해낼 수 있습니다. 10, 20, 30, 40, 50 인 경우 10, 30, 60, 100, 150 으로 누적합 테이블을 생성할 수 있습니다. 이때 left가 1이고 rightrk 3인 구간의 합을 구하는 문제가 주어질 경우 간딴하게 Array[3] - Array[1-1] 의 값으로 답을 결정할 수 있습니다. (식 Array[right] - Array[Left-1]) package test; import java.util.*; public class 구간합알고리즘 { public static void main(String[] args) { // TODO Auto-..
Network08 :: 네임서버
Network08 :: 네임서버
2020.09.28네임 서버는 DNS 서버라고도 합니다. 우리가 인터넷에 접근할때 기본적으로 URL을 사용하게 되는데 실제 원하는 서버에 접근하기 위해서는 URL을 해당 컴퓨터의 IP주소로 변환시켜야 합니다. 이 작업을 수행하는것을 네임 서버 혹은 DNS 서버라고 합니다. URL을 입력했을때 hosts 파일을 검색해서 해당 URL에 대응하는 IP주소를 얻을 수 있습니다. 컴퓨터 수가 많아지면서 이름 해석을 전문으로 하는 서버 컴퓨터가 필요해졌고 이를 네임 서버 혹은 DNS서버라고 합니다. nsloopup 뒤 server 치면 네임 서버를 확인할 수 있습니다. 그외에도 각 포털 사이트의 아이피를 확인할 수 있습니다. 위에서 네임 서버를 수정하고 쿼리를 날리게 되면 웹사이트에서 URL에 따른 리다이렉팅이 되지 않습니다. 따라..
GCP38 :: OS로그인
GCP38 :: OS로그인
2020.09.28ㅡ. 정의 구글 문서에 따르면 OS Login은 사용자에게 일종에 권한을 주는 것인데요. (Compute Engine IAM roles) SSH로 리눅스 인스턴스에 접근할 수 있는 권한을 주거나 취소할 수 있습니다. OS 로그인 자체는 기존의 메타데이터에서 SSH 키를 추가하거나 혹은 제거함에 따라서 인스턴스에 접근하고 관리할 수 있는 방법에 대체할 수 있는 수단입니다. 다음의 스텝으로 OS 로그인을 설정할 수 있습니다. ㅡ. 스텝1 우선 첫번째로 해줘야할거는 게스트 환경을 설치해줘야 하는데 이는 최신 public images에 이미 포함되어 있습니다. 만약에 커스텀 이미지를 사용하고 있다면 게스트 환경을 추가적으로 설치해줘야 합니다.(VM에) 마찬가지로 최신 게스트 환경이 존재하지 않는다면 업데이트 시..
GCP37 :: 커스텀 부팅 디스크
GCP37 :: 커스텀 부팅 디스크
2020.09.28구글 클라우드 플랫폼 문서에서는 VM을 위한 부트디스크 생성시에 public, custom, snapshot (다른 부트 디스크로부터 가져온) 것을 통해서 가져올 수 있다고 소개되어 있습니다. 그리고 부트 디스크의 경우에는 디스크 사이즈가 2 테라바이트로 제한되어야 하고 (MBR 파티셔닝에 의해 설명이 된다고 나와있습니다.) 컴퓨터 엔진은 자동적으로 부트 영구 디스크를 생성합니다. 인스턴스를 생성시에요! 추가적인 데이터 스토리지 공간이나 인스턴스를 위해서 혹은 추가적인 인스턴스 스토리지 옵션이 요구되는 경우에 커스텀 부팅 디스크를 이용할 수 있습니다. 이 경우 단독의 부트 영구 디스크를 생성해서 인스턴스에 나중에 붙이게 됩니다. 혹은 부트 디스크의 사이즈를 조절할 수도 있습니다. (퍼포먼스의 수행을 목적..
GCP36 :: 단독 테넌트 노드
GCP36 :: 단독 테넌트 노드
2020.09.28ㅡ. 정의 단독 테넌트 노트 = 프로젝트의 VM을 호스팅 하는 목적으로 사용합니다. 일종에 베어메탈로서 호스트 하드웨어로 관리됩니다. 단독 테넌트 노드를 사용하면 VM을 다른 프로젝트의 VM과 물리적으로 분리하여 유지, 동일한 호스트 하드웨어에서 여러 VM을 그룹화 합니다. 호스트 하드웨어 위에 구동되는 VM에는 추가적인 하드웨어 격리 레이어가 존재합니다. 단독 테넌트 노드에 다양한 크기의 머신 유형에 여러 VM을 프로비저닝 할 수 있기 때문에 전용 호스트 하드웨어의 기본 리소스를 효율적으로 사용할 수 있어야 합니다. 호스트 하드웨어를 다른 프로젝트와 공유하지 않기 때문에 다른 워크로드나 VM과 물리적인 격리해야하는 워크로드의 보안 또는 규정 준수 요구사항을 충족시킬 수 있습니다. ㅡ. 어디에서 사용할까..
알고리즘107 :: 투포인트 - BOJ_수들의합2
알고리즘107 :: 투포인트 - BOJ_수들의합2
2020.09.28선형 시간 알고리즘입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import java.util.*; public class 수들의합2_2 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int[] a = new int[n+1]; for(int i=0; i
알고리즘106 :: BOJ_11726_2XN타일링
알고리즘106 :: BOJ_11726_2XN타일링
2020.09.27두가지 접근 방식으로 문제를 해결하였습니다. 1) Bottom-up 과 2) Top-down 으로 접근하였습니다. 기본적으로 이 문제는 피보나치 수열에 대한 이해를 근본으로 하고 있습니다. 1) 바텀업 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 package backjun; import java.util.*; public class BOJ_11726_2n타일링 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] dp = new int[n+2]; dp[1] ..
알고리즘105 :: BOJ_2056_작업
알고리즘105 :: BOJ_2056_작업
2020.09.26위상정렬과 관련된 문제입니다. "몇몇 작업들 사이에는 선행 관계라는 게 있어서, 어떤 작업을 수행하기 위해 반드시 먼저 완료되어야 할 작업들이 있다." 앞서 수행해야 하는 작업이 우선 수행한뒤 뒤에 노드들이 수행되어야 합니다. 따라서 위상정렬 알고리즘을 활용하여 해결할 수 있습니다. Scanner sc = new Scanner(System.in); int n = sc.nextInt(); ArrayList[] al = new ArrayList[n+1]; for(int i=1; i
Network07 :: OSI 7 계층
Network07 :: OSI 7 계층
2020.09.26ㅡ. OSI 7 계층이 무엇인지? 네트워크 통신에서 일어나는 과정을 7 레이어로 나눈 것입니다. ㅡ. OSI 7 계층을 나누는 이유 흐름을 파악하기 쉽고, 사람들이 이해하기 쉬운 장점이 있습니다. ㅡ. 각 계층별 특징 1) 물리계층 대표적으로 케이블, 허브 등이 있습니다. 데이터를 전기적인 신호로 변환해서 주고받을 수 있는 기능을 수행합니다. 이는 데이터 전송 역할을 전기적신호를 이용하는것을 의미합니다. 데이터 전송 계층 : 단지 데이터 전달(0,1 비트열) 2) 데이터링크 계층 대표적으로 브릿지, 스위치가 있습니다. 여기서는 맥(Mac) 주소를 이용해서 통신하게 됩니다. 전송되는 단위는 프레임이라고 합니다. 물리계층에서 발생하는 오류를 찾아내고, 수정하는 역할을 진행합니다. 전반적으로 에러검출, 재전송..