전체 글

전체 글

    [AWS, Certified Developer Associate] SQS, SNS

    Amazon SQS (Simple Queue Service)완전 관리형 대기열(Queue) 서비스애플리케이션 분리에 사용 (Decouple Applications)무제한 처리량 / 무제한 메세지 queueing메시지는 기본 4일, 최대 14일까지 존재 가능낮은 지연 (발행 및 소비에 대해 메시지의 크기는 작아야함 (256KB 미만) SQS - 메시지 발행생산자는 SDK (SendMessage API)를 통해 256KB 미만의 메시지 전송메시지는 소비자가 메시지를 읽고 삭제할 때까지 SQS 대기열에 유지 SQS - 메시지 소비소비자는 SQS 메시지를 폴링폴링한 메시지에 대해 소비자는 작업(처리) (ex) RDS DB에 데이터 저장)처리가 완료된 후 소비자는 SDK (DeleteMessage API)를 통해..

    [Java 9] 주요 변경내용 : Collection / Optional / Stream 관련 기능, 내부 문자열 처리방식, G1 GC

    Collection 정적 팩토리 메서드 추가자바 9 이전에는 List를 만들기 위해 Arrays.asList(1, 2) 사용Set, Map 등의 타입에 대해서도 new 키워드를 통해 생성 및 초기화 필요했음자바 9부터는 Collection 관련 인터페이스에 정적 팩토리 메서드 of 추가되어 간결하게 생성 및 초기화 가능// AS-IS (Java 9 미만)List list = Arrays.asList(1, 2);Set set = new HastSet(Arrays.asList(1, 2));Map map = new HashMap();map.put("A", 1);map.put("B", 2);// TO-BE (Java 9)List list = List.of(1, 2);Set set = Set.of(1, 2);Ma..

    [Java 9] 언어적 변경 : try-with-resources, @SafeVarargs, inner class + diamond Syntax, Interface + private method

    확장된 try-with-resources 자바 7부터 생긴 try-with-resources 구문을 통해 생성한 자원을 정리하지 않는 실수를 막을 수 있고, 코드가 간단해짐// AS-IS (Java 7 미만)Resource resource = new Resource();try { ...} finally { resource.close(); // finally 구문으로 인한 코드 복잡도 증가 + 실수로 빼먹을 수 있음}// TO-BE (Java 7)try (Resource resource = new Resource()) { // 자동으로 리소스 close ...} 그러나 자바 7의 try-with-resources 구문은 try 외부에서 선언한 자원에 대해서는 적용이 불가했음자바 9는 try 외부에서 ..

    백준[2638] - 치즈

    문제: https://www.acmicpc.net/problem/2638분류: 그래프탐색, DFS난이도: G3소요시간: 20m자아성찰:DFS, BFS 등 그래프 탐색을 활용한 풀이가 필요한 문제."치즈 내부에 있는 공간은 치즈 외부 공기와 접촉하지 않는 것으로 간주한다" 를 어떻게 판단할지 고민치즈 내부 공간임을 어떻게 판단할것인가?"모눈종이의 맨 가장자리에는 치즈가 놓이지 않는 것으로 가정한다" 문장에서 감을 잡았다.0,0부터 DFS를 통해 거쳐갈 수 있는 모든 칸은 외부 공기로 마킹한다.매 time마다 0,0부터 DFS를 통해 외부 공기를 마킹한 후 -> 다시 map을 돌며 각 위치한 치즈에 대해 4방향 외부공기 확인 (4방향에 마킹된 칸 >= 2일 경우 치즈 녹임)import java.io.Buff..

    [Java 9] 자바 플랫폼 모듈 시스템 (JPMS)

    자바 9 - 자바 플랫폼 모듈 시스템 (JPMS) (vs 빌드툴 Module)자바 9에서는 모듈 시스템이 등장모듈 (Module) : 여러 코드가 모인 독립적인 구성요소비슷한 역할을 하는 코드끼리 모아 유지보수성 높일 수 있음 / 역할 간 의존성 제어 = 안전성 증대자바 9 이전에도 Maven, Gradle과 같은 빌드툴을 활용해 모듈 시스템이 구성되어 있긴 했음한 프로젝트 내에 여러 모듈을 만들어 의존성 관리 (멀티모듈)JPMS vs 빌드툴 Module?JPMS는 빌드툴 없이 모듈 구성이 가능 이를 통해 JDK에서 필요한 일부 코드(모듈)만 다운로드 가능 (성능,용량 측면 유지보수성 증대, Modular run time image)JPMS와 빌드툴 Module 함께 사용 가능JPMS는 특정 패키지 기준..

    백준[2583] - 영역 구하기

    문제: https://www.acmicpc.net/problem/2583분류: 그래프탐색, DFS난이도: S1소요시간: 15m자아성찰: 요새 그래프 탐색 관련해서 모두 BFS로만 했던 것 같아 DFS 연습을 위해 골라봤다.int[M][N] 순서가 불편해 N, M 순서로 바꾸어도 문제가 없을 것 같아 바꾸어 풀었다.최초 벽의 위치를 1로 마킹 -> 맵을 돌며 마킹 안한 부분부터 DFS 수행 -> dfs 호출 될 때마다 현재 영역 count++정석적인 DFS 풀이로 풀리는 문제이며, 상하좌우 이동에 대해서는 dx, dy 배열을 선언하는 게 편하다. 문득 stream을 써보고 싶어서 Collections.sort 말고 stream().sorted().forEach()로 결과를 출력했다.  import jav..

    [AWS, Certified Developer Associate] CloudFormation

    IaC (Infrastructure as Code, 코드형 인프라)인프라를 코드 형식으로 정의, 관리하는 방식수동으로 인프라를 생성/관리하는 방식에서 벗어나 자동화/코드화를 통해 인프라를 생성 및 관리자동화된 프로비저닝 / 유연성 / 확장성 / 버전 관리ex) 앤서블(Ansible) / 테라폼(Terraform) / AWS CloudFormation  AWS CloudFormationAWS의 대표적인 IaC 서비스AWS 인프라를 선언하는 방식으로 작성리소스 생성, 보안그룹 연결 등을 순서대로 생성하도록 선언자동화 / 버전관리 / 코드검토를 통한 검증 / 스택 비용 추적 가능 / 생산성 / 관심 분리 (VPC stack, Network stack, App stack 분리 가능)  CloudFormation..

    백준[2012] - 등수 매기기

    문제: https://www.acmicpc.net/problem/2012분류: 그리디, 정렬난이도: S3소요시간: 10m자아성찰:꽤나 단순한 그리디 문제였다.예상등수와 실제 등수의 차이의 합을 최소화 하는 문제예상등수를 높게 생각한 학생에게 높은 등수를 줄수록 차이의 합이 최소가 된다. (그리디)예상등수를 오름차순 정렬 -> 예상등수 순으로 등수를 매겨 차이 합 구함이 때, 중요한 것은 정답의 최댓값이었다.N = 500000이므로 모두가 1등을 예상할 경우 정답의 최댓값은 int 범위를 훌쩍 넘어가버린다.0 + 1 + 2 + ... + 499,999 = 약 1250억맞왜틀 => 정답의 범위를 확인해보자 public class B_2012 { static int N; static int[] ar..

    [AWS, Certified Developer Associate] Elastic Beanstalk

    Elastic Beanstalk하나의 인터페이스에서 EC2, ASG, ELB, RDS 등을 재사용해 자동으로 배포해주는 관리형 서비스용량 프로비저닝, 로드밸런서 구성, 스케일링, 애플리케이션 상태 모니터링, 인스턴스 구성 자동화개발자는 코드에만 신경무료환경, 버전, 구성 등의 집합으로 이루어짐하나의 환경 안에서 애플리케이션 버전을 1 -> 2로 업데이트 가능다양한 언어 지원 (고급 설정으로 사용자 지정 플랫폼 생성도 가능)  Beanstalk - 애플리케이션 업데이트를 위한 배포 옵션All at once한번에 모든 인스턴스 배포속도가 가장 빠름 but 모든 서비스가 중지되므로 다운타임 발생UC ) 빠른 배포 & 개발환경 & 다운타임 중요 X & 추가요금 XRolling버킷이라는 인스턴스 묶음을 동시 업데..

    [AWS, Certified Developer Associate] ECS

    ECS (Elastic Container Service)Docker 관리를 위한 Amazon 전용 플랫폼AWS에서 도커 컨테이너 실행 = ECS 클러스터에서 ECS 태스크 실행EC2 Launch 타입EC2 인스턴스에 대한 인프라를 직접 프로비저닝 및 관리해야함ECS 클러스터에 여러 EC2 인스턴스 (= ECS 태스크)각 인스턴스는 ECS Agent를 실행해야함 (에이전트가 지정한 ECS 클러스터에 인스턴스 등록)ECS 클러스터에 새로운 도커 컨테이너 등록 시 각 EC2 인스턴스에 배포됨Fargate Launch 타입서버리스 (프로비저닝, 관리 X)ECS 태스크를 정의 -> AWS에서 CPU와 RAM 요구사항을 토대로 ECS 태스크 실행확장 시 태스크 수만 늘리면 됨 ECS - EC2 Instance Pr..