본문 바로가기

Total

AWS Networking Cookbook : (1) VPC 구성 (기본편) AWS Networking Cookbook의 2장(사용자 맞춤형 VPC 구성)을 읽고 VPC 설정을 위한 기본 구성요소를 살펴봅니다. 다루는 주제들은 다음과 같습니다. VPC의 관리 Public Subnet, Privacy Subnet 관리 요령 NACL 관리 방법 SG(보안 그룹) 관리 방법 IGW(인터넷 게이트웨이) 관리 방법 NAT 게이트웨이 관리 방법 라우팅 테이블 관리 방법 EC2 인스턴스 관리 방법 1. VPC의 관리 AWS VPC는 AWS 클라우드 내에 있는 가상 네트워크로, 기업의 데이터센터 내에 있는 일반적인 네트워크처럼 구성되어 있습니다. VPC 조회 및 생성 AWS 계정으로 로그인하면 Default VPC를 제공하고 있습니다. AWS Services 에서 VPC를 검색하여 선택하면 V.. 더보기
2020년 새 해를 시작하며 .. 2020년도의 1월이 벌써 끝나갑니다 .. 올 해는 대부분 `클라우드`나 `빅데이터`와 관련하여 공부를 할 예정입니다. 그리고 `새로운 IT 기술`, `알고리즘`, `코드 패턴` 등을 틈틈히 살펴보려 합니다. 우선, 클라우드를 깊이있게 이해하기 위해서 앞으로 여러 책을 읽고 복습하는 형태로 포스팅을 할 예정입니다. AWS 관련하여 몇 개의 `서적`을 보고 `AWS 아키텍트 프로페셔널` 자격증을 취득하려 합니다. 어제부터 이틀간 약 4시간 정도.. **당신이 지금 알아야 할 AWS**를 읽고 있습니다. 앞으로 네 장(9~12장)만 읽으면 되네요. 입문 단계 서적이기도 하고, 실습 과정은 눈으로 보고 이해하며 넘어가고 있네요.. 여기 블로그도 댓글을 달 수 있도록 개선해야하는데 .. 이것저것 바쁜 핑계로 미.. 더보기
MongoDB : String-List to Concat-String 시간이 없어서.. 간략하게 적어봅니다. String으로 구성된 List를 하나의 필드안에 구분자를 주어 묶어야 하는 일이 생겼습니다. { // DB 기준으로 테이블, 컬럼 리스트를 생성 $group: { _id: "$dbNm", tableList: { $addToSet: "$tableNm" }, columnList: { $addToSet: "$columnNm" } }, // reduce & concate 을 이용하여 List를 Concate String 으로 변환 $project: { dbNm: "$_id", tableNm: { $reduce: { input: "$tableList", initialValue: "", in: { $concat: ["$$value", "_", "$$this"] } } }, .. 더보기
알고리즘 - 이분매칭 N 개의 리스트 A와 N 개의 리스트 B 라는 두 개의 컬렉션이 주어집니다. 즉, 리스트 A와 B의 길이는 갖고 서로 다른 데이터를 갖습니다. 기능 구현의 목적은 A와 B에 있는 데이터가 각각 1:1 매칭을 이루도록 하는 것입니다. 간단한 예로 다음과 같이 있을 때 .. List aList = Arrays.asList("A", "B", "C", "D"); List bList = Arrays.asList("1", "2", "3", "4"); A-1, B-2, C-3, D-4 로 매칭을 시켜야 합니다. 즉, 매칭을 시킬 때 간선이 발생하지 않도록 해야 합니다. 이와 관련된 다양한 알고리즘이 있습니다. 최대 유량 알고리즘 디닉(Dinic's) 알고리즘 - O(V^2*E) 에드몬드 카프(Edmonds k.. 더보기
AWS 용어 정리 용어 정리 - API Gateway - ARN Amazon Resource Name 의 축약어 AWS 리소스를 고유하게 식별 자세한 내용 : https://docs.aws.amazon.com/ko_kr/general/latest/gr/aws-arns-and-namespaces.html - AMI Amazon Machine Image 의 축약어 인스턴스를 시작하는데 필요한 정보를 제공 인스턴스의 루트 볼륨에 대한 템플릿(OS, APP), 계정 저장할 수 있는 시작 권한, 시작될 때 인스턴스에 연겷라 볼륨을 지정하는 블록 디바이스 매칭 자세한 내용 : https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/AMIs.html .소프트웨어 구성이 기재된 템플릿 (.. 더보기
MongoDB : Limit, Sort 여러번 사용 특정 데이터를 검색하기 위해 limit 와 sort를 여러번 사용해야할 때가 있습니다. 기본적인 Mongo API를 이용해서 시도해보았습니다. 기록된 데이터중 최근 1000건의 데이터 중 가장 마지막 일자의 데이터를 찾는 것이 목표입니다. Criteria criteria = new Criteria(); Query query = new Query(); criteria.and("creDatm").gt(startDate); query.addCriteria(criteria); query.with(Sort.by(Direction.ASC, "creDatm")); query.limit(1000); query.with(Sort.by(Direction.DESC, "creDatm")); query.limit(1); Sql.. 더보기
MongoDB : Backup & Restore 업무 중 MongoDB의 Database를 복제해야 하는 일이 생겼습니다. 그래서 다음과 절차를 갖고 진행했습니다. MongoDB 에서는 databaseCopy 라는 명령어를 제공해줍니다. 복제해야 할 Database 로 접속합니다. use DB명 그리고 다음 명령어로 복제를 수행합니다. db.copyDatabase('원본DB명' , '복제DB명') 그러나, Sharding 으로 구성하였을 경우 위 명령어로는 복제를 할 수 없습니다. 따라서 mongodump 와 mongorestore를 이용해야 합니다. 우선, dump 파일을 생성하겠습니다. mongodump 실행 포맷 mongodump --out /파일경로/파일명 --port 포트번호 -u관리자계정 -p관리자암호 --db .. 더보기
Effective Java : (16) 추상 클래스보다는 인터페이스를 우선적으로 ! 추상 클래스보다는 인터페이스를 우선하라 (아이템 20) 자바가 제공하는 다중 구현 메커니즘은 인터페이스와 추상 클래스 두 가지 입니다. 자바 8부터는 인터페이스도 default method를 제공하여 구현 형태를 제공할 수 있습니다. 이 둘의 가장 큰 차이는 추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 추상 클래스의 하위 클래스가 되어야 한다는 점입니다. 자바는 단일 상속만 지원하니, 추상 클래스 방식은 새로운 타입을 정의하는 데 커다란 제약을 안게 되는 셈입니다. 기존 클래스에도 손쉽게 새로운 인터페이스를 구현해넣을 수 있습니다. Comparable, Iterable, AutoCloseable 인터페이스가 추가되었을 때 표준 라이브러리의 수많은 기존 클래스가 이 인터페이스들을 구현한 채 릴리스.. 더보기