전체 글

전체 글

    [AWS, Certified Developer Associate] Lambda - 함수 구성, 성능개선, 동시성, 제한

    Lambda - 함수 구성 (Function Configuration)RAM128MB  ~ 10GB까지 설정 가능 (1MB 단위 증가)램을 증가하면 vCPU도 자동으로 증가 (직접 설정 불가)RAM이 1792MB일 때 함수는 1개의 완전한 vCPU를 가짐1792MB 이상이면 CPU가 1개 이상이 되므로 코드의 효율성을 위해 멀티스레딩을 적용해야함CPU intensive 앱이면 (복잡한 계산) -> RAM을 늘려 CPU 성능을 높여야함Timeout : 기본값 3초, 최대 900초까지 가능 (15분)수행시간이 15분이 넘어간다면 람다는 좋은 활용사례가 아님 (Fargate, ECS, EC2 사용 권장)  Lambda - 함수 성능 개선람다에는 Execution Context가 존재 > 초기화 오래걸리는 작업..

    [AWS, Certified Developer Associate] Lambda - 이벤트 처리방법, Event / Context 객체, Edge Functions, VPC

    Serverless개발자가 서버를 관리 / 프로비저닝 할 필요가 없는 새로운 패러다임단지 코드(함수)를 배포서버가 없다는 뜻이 아님!서버를 관리 / 프로비저닝 할 필요가 없고, 보이지 않음AWS 서버리스Lambda, DynamoDB, Cognito, API Gateway, S3, SNS & SQS, KDF, Aurora Serverless, Step Functions, Fargate AWS Lambda가상의 함수 (Virtual Function) - 관리할 서버 없이, 단지 코드를 프로비저닝하고 함수를 실행시간 제한 - 짧은 실행시간 (최대 15분)온디맨드로 실행 (함수가 실행될 때만 비용 발생)스케일링 자동화장점가격 책정 쉬워짐 - 수신 요청 수에 따라 청구 / 프리티어에서도 컴퓨팅 시간 40만 GB,..

    [AWS, Certified Developer Associate] X-Ray, CloudTrail

    X-Ray여러 애플리케이션 간 시각적 분석 제공애플리케이션 성능 트러블슈팅 / 병목현상 식별 / MSA에서 MS간 의존관계 파악서비스 문제를 짚어줌요청 - 응답 한눈에 파악 가능오류와 예외 응답 확인 가능지연시간 등을 통해 SLA를 준수하는지 확인 가능어떤 서비스로 인해 지연이 발생하고 스로틀링이 발생하는지 발견 가능어떤 사용자들이 오류에 영향을 받는지 식별 가능호환성 좋음 : 람다, Beanstalk, ECS, ELB, API Gateway, EC2, 어떤 애플리케이션 서버든 (온프레미스 포함)  X-Ray - Leverages Tracing엔드투엔드 방식으로 요청을 추적요청 시 이를 처리하는 각 컴포넌트가 각자 트레이스를 추가트레이스는 세그먼트로 구성 (세그먼트는 하위 세그먼트로 구성)트레이스에 어노..

    백준[15661] - 링크와 스타트

    문제: https://www.acmicpc.net/problem/15661분류: 백트래킹, 비트마스킹난이도: G5소요시간: 30m자아성찰:DFS (조합)을 이용해서도 풀 수 있는 문제인 것 같았다.모든 경우에 대해 boolean 배열을 만들어 true/false 설정 및 계산 (재귀)나는 팀에 속하거나(1) / 속하지 않거나(0) 의 두가지 경우라는 생각에서 비트마스킹으로 풀어보았다.각 경우의 수를 이진수로 변환해 0과 1로 표현Integer.toBinaryString(string) 이용나머지 자릿수는 String.repeat()을 통해 0으로 채워 N 자릿수 맞춤String.toCharArray()를 통해 문자 배열로 만든 후 차이 계산최솟값이 0인경우 System.exit(0)을 통해 프로그램을 ..

    [AWS, Certified Developer Associate] CloudWatch, EventBridge

    CloudWatch - Metrics모든 AWS 서비스에 대한 지표 제공CPU 사용량, NetworkIn 등 기본 지표 제공배열 형태의 속성을 가짐 (인스턴스 id, 환경, etc)지표 당 최대 10개 배열 선택 가능타임스탬프를 가지며 지표 대시보드 생성 가능EC2 인스턴스는 기본적으로 5분마다 지표를 가짐추가적인 비용이 드는 세부 모니터링 활성화 시 1분마다 지표 가짐ASG 스케일 아웃 / 인의 작업속도 증대 (모니터링 빈도 늘어남)EC2 메모리 사용량은 RAM에서 푸시하지 않음 (커스텀 지표를 통해 가능) CloudWatch - Custom Metrics메모리 사용량, 디스크공간, 로그인 사용자 수 등 사용자 지정 지표를 생성 가능PutMetricData API 호출StorageResolution A..

    [AWS, Certified Developer Associate] Kinesis Data Firehose, Kinesis Data Analytics

    Kinesis Data Firehose생산자로부터 데이터를 읽어와 특정 데이터에 대해 Lambda를 통해 데이터 변환 후 도착지에 배치성 쓰기 실행도착지 1 - AWS 도착지S3 / RedShift / ElasticSearch도착지 2 - 써드파티 도착지Datadog / Splunk / NewRelic / MongoDB 등도착지 3 - 커스텀 도착지HTTP EndPoint데이터를 모든 도착지에 보내면 2개 옵션 존재모든 데이터를 S3 버킷에 보내 백업도착지에서 쓰기 실패한 데이터를 실패 버킷에 보관완전 관리형 서비스 (관리기능 X, 오토스케일링, 서버리스)Firehose를 통하는 데이터에 대해서만 비용 지불실시간에 가까운 서비스다양한 데이터 형식, 변환, 압축 지원람다를 통해 자체 데이터 변환 생성 가능..

    [AWS, Certified Developer Associate] Kinesis Data Streams, Kinesis Client Library (KCL)

    Kinesis스트리밍 데이터를 실시간으로 수집, 처리, 분석하도록 도와줌애플리케이션 로그, 지표, 웹사이트 클릭스트림, IoT 원격 데이터 Kinesis Data Streams빅데이터 스트리밍번호가 매겨진 여러 샤드로 구성 (샤드는 미리 프로비저닝 되어야함)데이터가 샤드에 분할샤드가 수집 / 소비율에 맞춰 스트림 용량 정의여러 형태의 생산자가 KDS에 데이터를 보냄데이터는 레코드 형태로 생성Partition Key + 최대 1MB 데이터 볼륨파티션 키 : 레코드가 어느 샤드로 이동할지 결정여러 형태의 소비자가 레코드 수신파티션 키 + 샤드의 위치인 시퀀스 번호 + 데이터 볼륨1 ~ 365일 사이 보유기간 설정 가능데이터 재처리 가능삽입된 데이터는 삭제가 불가 (불변성, immutability)동일한 파티..

    백준[2529] - 부등호

    문제: https://www.acmicpc.net/problem/2529분류: 백트래킹, 브루트포스난이도: S1소요시간: 10m자아성찰:숫자를 하나하나 다 넣어가며 탐색했을 때 시간 복잡도는 (k + 1)!k 10! = 3,628,800 => 브루트포스로 풀 수 있었다.조건이 어려워보일 땐 우선 브루트포스를 고민해보자.문제 자체의 구현은 까다롭지 않았으며, 시간복잡도를 가장 먼저 고려해볼 수 있는 문제였다.1. 가장 먼저 단순하게 생각 = 브루트포스2. 시간복잡도 계산 -> 문제 없으면 브루트포스로 해결 import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arra..

    [Java 16, 17] record class, sealed class

    자바 16 - record class데이터 전달을 위해 등장한 클래스 (DTO, Data Transfer Object)AS-ISDTO 클래스의 상속을 막기 위해 final class로 정의캡슐화, 변경 제한을 위해 필드에 private final 선언최초 값 초기화를 위해 매개변수를 가진 생성자 정의필드값에 접근하기 위한 getter 생성비교를 위한 equals(), hashcode() 재정의데이터 출력(로깅 등)을 위한 toString() 재정의public final class AsIsDto { // 상속을 막기위한 final class private final String username; // 캡슐화, 변경 방지를 위한 private final 필드 private final in..

    [Java 16] Switch Expression, instanceof Pattern Matching

    Switch Expression AS-IS기존 Switch 문법의 경우 Statement(문) 형식Statement: 변수에 할당 불가능. 하나의 값으로 표현 불가능각 case를 case 값: 형태로 사용(colon case label)각 분기가 끝날 때마다 break;를 붙여야함여러 분기를 한번에 처리하고 싶다면 colon case label을 연이어 적어야함public String calcGrade(int score) { String grade = ""; // 변수 할당 불가능. 먼저 선언 switch (score) { case 5: // colon case label grade = "A"; break;..