분류 전체보기
BOJ :: 1182(부분 수열의 합)
BOJ :: 1182(부분 수열의 합)
2020.10.261 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 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 package backjun; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; import java.util.*; public class BOJ_1182_부분수열의합_백트래킹 { static int aim=0; static int[] arr; static int answer = 0; public stat..
마이크로서비스 배포
마이크로서비스 배포
2020.10.11-. 개발자가 운영 팀에게 코드를 일일이 넘겨주었던 수작업 과정은 고도로 자동화되고 물리적인 프로덕션 환경은 가볍고 일시적인 컴퓨팅 인프라로 대체되었습니다. -. AWS EC2 ⇢ 도커 릴리스 ⇢ AWS 람다 도입-. 운영 환경에 사용되는 컴퓨팅 리소스 역시 물리 머신을 추상한 개념이 등장하면서 많은 변화를 겪게 되었고, AWS 등 고도로 자동화한 클라우드에 기반해 가상 머신은 수명이 긴 물리/가상 머신으로 빠르게 대체되었습니다. -. 현대에 이르러서 가상 머신은 불변 = Immutable 합니다. 재구성 = reconfiguration 하기보다 폐기 후 재생성 합니다. -. 배포 프로세스/아키텍처가 발전을 거듭한 것은 마이크로서비스 아키텍처가 점점 더 많이 채택되는 이유 입니다.-.프로덕션 환경의 4대..
마이크로 서비스 패턴
마이크로 서비스 패턴
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)의 값을 불러오는데 '보호소에 들어온 기록이 없다..
GCP41 :: 구글 클라우드 플랫폼 입문
GCP41 :: 구글 클라우드 플랫폼 입문
2020.10.07프로젝트는 테넌트 라고 불리는 개념에 해당하는 것입니다. 해당 프로젝트에 등록된 사용자 계정만이 프로젝트 안의 리소스를 조작할 수 있게 됩니다. 레거시 네트워크는 모든 지역에 걸쳐서 하나의 서브넷이 구성됩니다. 반면에 서브넷 네트워크는 지역마다 개별 서브넷이 존재합니다. gcloud 명령어는 GCP의 각 서비스를 관리하는 도구 입니다. gcloud 명령의 릴리즈 레벨에는 다음이 있습니다. General Availability, 라벨 x, 안정 버전 실제 운용 용도로 사용가능 Beta, 라벨 beta, 동작하지만 해결되지 않은 문제가 포함되어 있을 가능성이 있는 명령. 서비스 레벨 계약 대상에서 제외 Alpha, 라벨 alpha, 알파 버전 릴리즈 명령으로 예고없이 변경될 수 있음 SLA대상에서 제외 Pr..
GCP40 :: 베스천호스트 연결
GCP40 :: 베스천호스트 연결
2020.10.02구글문서에 따르면 베스천 호스트를 통해 내부 아이피 만으로 외부아이피 없이 접속할 수 있습니다. 이 방식의 장점은 따로 방화벽 규칙을 설정하지 않고도 개발 환경에 연결하거나 외부 애플리케이션의 데이터베이스 인스턴스를 관리할 수 있습니다. 우선적으로 베스천 호스트에 로그인한 후에 대상 비공개 인스턴스에 접근하여 로그인하게 됩니다. 이러한 베스천 호스트를 점프 서버라고도 부릅니다. 다음 2단계를 거쳐서 로그인을 수행합니다. 1) OS로그인 사용 설정합니다. gcloud compute instances add-metadata test --metadata enable-oslogin=TRUE 여기서 test 인스턴스에 oslogin 을 TRUE 로 주었습니다. 또, test 인스턴스에 rw 권한을 부여해야 합니다..
IT10 :: 프로젝트 유지보수
IT10 :: 프로젝트 유지보수
2020.10.02추석 연휴가 얼마 안남은 상황에서 이전에 했던 프로젝트 유지보수 포스팅을 수행합니다. 이 포스팅의 목적은 나름대로 메모의 역할과 그리고 프리워밍을 시간을 줄이기 위함입니다. 일부 내용이 도움이 되셨으면 바라는 마음도 있습니다. ㅡ. 백엔드 백엔드에서는 Spring boot 를 사용했습니다. 전체적으로는 MVC 패턴을 사용해서 백엔드를 설정하였습니다. 인터페이스와 클래스를 나누지 않은 이유는 없는데 하나로 패키지에 묶어서 관리하는게 편해서 위와 같이 관리하였습니다. spring boot의 시작을 위해서 springapplication.run을 동작시킵니다. run 메소드에는 @EnableAutoConfiguration으로 어노테이션된 클래스를 넘겨줍니다. @SpringBootApplication으로 어노테..
GCP39 :: Media(번역) - BigQuery
GCP39 :: Media(번역) - BigQuery
2020.10.02ㅡ. 스탠다드SQL 빅쿼리는 2011 표준화된 안시 SQL 에 따르는 Standard SQL을 더 선호합니다. 빅쿼리를 사용할때 자동적으로 생성하고 스케쥴해주고 쿼리잡을 실행해줍니다. 빅쿼리는 두가지 모드로 실행됩니다. :: interactive, batch Interactive(on-demand) : 가능한한 많이 실행됩니다. 제한이 따릅니다. Batch queries : 빅쿼리 공유 리소스 풀에서 유후 자원을 사용할 수 있도록 즉시 배치 쿼리가 대기열에 저장되고 시작됩니다. 단 몇분만에 실행됩니다. interactive 모드와 다르게 동시 요금 제한에 따른 제약이 없습니다. ㅡ. 빅쿼리 테이블 타입 모든 비구커리 테이블은 컬럼 네임을 가지고 있는 스키마 형태로 정의도비니다. 컬럼 네임에는 데이터 타입..
알고리즘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 파티셔닝에 의해 설명이 된다고 나와있습니다.) 컴퓨터 엔진은 자동적으로 부트 영구 디스크를 생성합니다. 인스턴스를 생성시에요! 추가적인 데이터 스토리지 공간이나 인스턴스를 위해서 혹은 추가적인 인스턴스 스토리지 옵션이 요구되는 경우에 커스텀 부팅 디스크를 이용할 수 있습니다. 이 경우 단독의 부트 영구 디스크를 생성해서 인스턴스에 나중에 붙이게 됩니다. 혹은 부트 디스크의 사이즈를 조절할 수도 있습니다. (퍼포먼스의 수행을 목적..