전체 글

전체 글

    백준[21921] 블로그

    문제: https://www.acmicpc.net/problem/21921분류: 누적합, 슬라이딩 윈도우난이도: S3소요시간: 10m자아성찰:특정 배열구간의 합 관련 문제에서 효율적인 풀이 (= 구간합, 슬라이딩 윈도우)를 복습하고자 선택한 문제문제에서 주어진 배열의 최대 길이, 구간 길이는 250000이중 for문을 통한 처리 시 O(N^2)로 오랜 시간이 걸림누적합(Prefix Sum)을 통해 구하는 방식a ~ b 구간합 = prefixSum[b] - prefixSum[a - 1]슬라이딩 윈도우(Sliding Window)를 통해 구하는 방식구간 크기가 X일 때 1 ~ X 합 최초 초기화이후 위치 i를 증가시키며 현재 윈도우 값 -  [i - X]번째 값 (맨 앞의 값) +  [i]번째 값 (새로운..

    [AWS, Certified Developer Associate] AWS KMS, SSM Parameter Store

    AWS KMS (Key Management Service)AWS 서비스에서 '암호화'라고 하면 대부분 KMS 암호화를 의미할 가능성이 높음암호화 키 관리CloudTail을 통해 키를 사용하기 위한 API 호출 추적 가능API call을 통해 KMS 키 암호화 사용 가능 (SDK, CLI 등)KMS 키Symmetric (AES-256)암호화/복호화에 하나의 키가 사용대부분의 AWS Service는 대칭키 사용키 자체에 액세스 불가능 (API call을 통해서만)Asymmetric (RSA & ECC)암호화에 사용되는 공개키 & 복호화에 사용되는 개인키암/복호화 및 서명/검증 작업에 사용공개키는 KMS에서 다운로드 가능 / 개인키 액세스 불가능 (API call을 통해서만)사용사례 : KMS 키에 액세스할 ..

    [AWS, Certified Developer Associate] Step Functions

    AWS Step FunctionsAWS 서비스 오케스트레이션 / 비즈니스 프로세스 자동화 / 서버리스 애플리케이션 구축에 사용되는 시각적 워크플로 서비스실패, 재시도, 병렬화, 서비스 통합 등을 관리json 형태로 워크플로 정의상태 Choice : 브랜치 (or 기본 브랜치)로 보낼 조건 테스트Fail / Succeed : 워크플로의 실패 / 성공 여부로 실행을 중지Pass : 입력값을 출력값에 전달 or 작업을 수행하지 않고 고정된 데이터 주입Wait : 특정 날짜/시간동안 지연Map : 단계를 동적으로 반복Parallel : 브랜치 수행을 병렬적으로 수행  Step Functions - 오류 핸들링Step Function 자체에서 오류 처리 메커니즘 정의 가능이를 통해 코드에서의 에러 처리 제외 > ..

    [AWS, Certified Developer Associate] Cognito - User Pools, Identity Pools

    Amazon Cognito사용자에게 자격 증명을 부여해 웹, 모바일 애플리케이션과 상호작용 할 수 있도록 하는 것두가지 하위 서비스 존재Cognito User Pools앱 사용자를 위한 로그인 기능 제공API Gateway & ALB와 통합Cognito Identity Pools (Federated Identity)앱에 등록된 사용자가 AWS 리소스에 바로 액세스 가능하도록 임시 AWS 자격 증명 부여사용자 풀과 통합vs IAM : Cognito는 AWS 외부의 웹/모바일 애플리케이션 사용자를 위한 것 (수백만 사용자, 모바일 사용자, SAML 인증)  Cognito - User Pools웹 / 모바일 애플리케이션 사용자에 대한 서버리스 데이터베이스를 생성할 수 있는 방법단순 로그인 : 유저이름(or 이..

    [AWS, Certified Developer Associate] CodeStar, CodeArtifact, CodeGuru

    AWS CodeStarGitHub, CodeCommit, CodeBuild, CodeDeploy, CloudFormation, CodePipeline, CloudWatch 등의 서비스를 그룹화하는 통합 솔루션코드 저장 및 버전관리 / 코드 설계 및 테스트 / 코드 배포 / 인프라 프로비저닝 / 파이프라인 조정 / 모니터링 배포이슈 트래킹 도구 존재 + Jira / Github 이슈와 통합 가능Cloud9 도구를 통해 코딩을 통합 가능 (Web IDE로 클라우드에서 바로 코딩 가능)모든 구성요소를 볼 수 있는 대시보드 존재무료, 다른 서비스에 대한 비용만 지불  AWS CodeArtifact소프트웨어 개발을 위한 보안, 확장성, 비용 효율적인 아티팩트 관리 시스템아티팩트 관리 : 각각의 소프트웨어 종속성을..

    [AWS, Certified Developer Associate] CodeCommit, CodePipeline, CodeBuild, CodeDeploy

    AWS CodeCommitGitHub, GitLab, Bitbucket 등의 버전관리 툴과 달리 코드가 AWS 클라우드의 개인 VPC 내에 있음비공개 Git Repo사이즈 제한 없음 (코드를 GB 크기까지 확장가능)완전관리형, 고가용성코드는 AWS 클라우드 내에만 저장 -> 일관된 형식 / 높은 보안보안 강화 (암호화, IAM을 통한 액세스 제어)젠킨스, CodeBuild 등의 CI 툴과 통합 가능보안인증 (Authentication) : SSH Key / HTTPS인가 (Authorization) : IAM 정책암호화AWS KMS를 통해 암호화코드 커밋 시 HTTPS or SSH를 통해서 암호화된 상태로만 전송됨교차 계정 접근 : IAM 역할 생성 & AWS STS (AssumeRole API) 통해 ..

    [AWS, Certified Developer Associate] API Gateway - 개요, 엔드포인트 유형, 통합 방식

    AWS API Gateway클라이언트가 액세스 가능하도록 공개적인 REST API를 만들 수 있는 서버리스 서비스람다 + 게이트웨이 = 완전관리형 서버리스실시간 스트리밍 - 웹소켓 프로토콜 지원으로 실시간 스트리밍 가능버저닝 - API 버저닝 가능 (v1, v2.. )다양한 환경 지원 (dev, test, prod..)인증, 권한 부여 목적으로 보안 처리 가능API 키를 통해 게이트웨이의 요청 수에 따라 쓰로틀링 가능Swagger, Open API 3.0등 표준을 통해 API 정의 가능API 게이트웨이 수준에서 요청/응답을 변환 및 무효화 통한 유효성 검사 가능SDK, API 규격 생성 가능API 응답 캐싱 가능람다와 통합람다 함수 실행람다를 REST API로 쉽게 내보낼 수 있음HTTP와 통합HTTP ..

    [AWS, Certified Developer Associate] DynamoDB - LSI, GSI, DAX, S3와 연동 사례

    AWS DynamoDB - LSI (Local Secondary Index)테이블에 대체 정렬 키 제공 (Alternative Sort Key)하나의 스칼라 속성으로 존재 (String, Number, Binary)테이블 당 최대 5개 LSI 가능테이블 생성 전 정의테이블로부터 일부 또는 전체 속성 얻을 수 있음 (LSI 생성 시 결정)메인테이블의 WCU, RCU 사용특별히 쓰로틀 고려할 것 없음  AWS DynamoDB - GSI (Global Secondary Index)테이블에 대체 기본 키 제공 (Alternative Primary Key)non-key 속성의 쿼리 속도 높이는데 유용하나의 스칼라 속성으로 존재 (String, Number, Binary)해당 인덱스에 대해서는 반드시 RCU, W..

    [AWS, Certified Developer Associate] DynamoDB - 기초, 용량 모드, 기본 API

    AWS DynamoDB - 소개고가용성의 NoSQL 서버리스 데이터베이스여러 AZ에 걸쳐 즉시 복제 가능검색 속도가 빠르고 지연시간 낮음보안, 권한부여, 관리를 위한 IAM과 통합DynamoDB Streams를 통해 이벤트 기반 프로그래밍 활성화 가능낮은 비용, 오토스케일링 지원  AWS DynamoDB - 기초각 테이블은 Primary Key(기본 키)를 가짐테이블을 만들기 전에 기본키를 정의해야 함각 테이블은 items(=rows)을 무한으로 가질 수 있음각 item은 속성(attribute)을 가짐 (nullable) (시간이 지나도 추가 가능)각 item의 최대 크기는 400KB데이터 타입 지원스칼라 타입 - 문자열, 숫자, 이진수, boolean, null문서 타입 - List, Map집합 타입..

    백준[19598] 최소 회의실 개수

    문제: https://www.acmicpc.net/problem/19598분류: 그리디, 정렬, 우선순위큐난이도: G5소요시간: 15m자아성찰:처음에는 남은 회의 중 종료 시간이 빠른 순으로 배정된 회의실중 종료시간이 제일 빠른 회의실을 배정하면 되겠다라고 생각했다.스스로 테스트케이스를 생각해보면서, 다음 같은 상황에서 답이 맞지 않을 것 같았다.현재 배정된 회의실 중 종료시간은 30, 40남은 회의는 50-60 / 30-7050-60 회의가 종료시간 30 회의실 배정30-70 회의실은 종료시간 40 회의실 배정이 불가하므로 회의실 +130-70 회의가 30 회의실을 먼저 배정받고, 50-60 회의가 40 회의실을 배정받으면 추가로 회의실 배정 필요없음시작시간이 빠른 순 / 시작시간이 같을 경우 종료..