전체 글

전체 글

    [AWS, Certified Developer Associate] EC2 - AMI, Instance Store, EBS, EFS

    EBS Volume네트워크 드라이브 (물리 드라이브 X, 네트워크를 통해 연결된 드라이브)네트워크로 연결되어 있으므로 일시적인 지연이 있을 수 있음네트워크 드라이브이므로 분리 및 다른 인스턴스에 연결 가능CCP 레벨에서는 하나의 EBS는 하나의 EC2 인스턴스에만 마운트 가능하나의 EC2에 여러 EBS는 가능 Associate 레벨에서는 일부 EBS 다중 연결 가능특정 AZ에 고정됨. 다른 AZ로 연결 불가능스냅샷을 이용하면 가능Volume이므로 용량을 미리 결정해야함(GBs, IOPS[단위 초당 전송 수]). 이후 용량 변경 가능EC2 인스턴스 생성 시 콘솔에서 EBS 볼륨을 생성하면 종료 시 삭제 옵션 설정 가능 (Delete on Termination attribute)EC2 인스턴스 종료 시 E..

    [AWS, Certified Developer Associate] EC2 - 정의, 인스턴스 유형, 보안그룹

    EC2 (Elastic Compute Cloud)IaaS (Infrastructure as a Service)가상머신 임대 (EC2 인스턴스)OS 설정CPU 성능 설정RAM 설정스토리지 설정네트워크 연결 스토리지 : EBS, EFS하드웨어 연결 스토리지 : EC2 Instance Store네트워크 유형 설정네트워크 카드 속도, Public IP방화벽 규칙 설정보안그룹부트스트랩 스크립트를 이용해 실행 시 동작 설정EC2 User Data가상 드라이브에 데이터 저장 (EBS)부하 분산 (ELB)자동 서비스 확장 = Auto Scaling (ASG)  EC2 인스턴스 유형m5.2xlargem : 인스턴스 클래스 (범용목적, 네트워크, 스토리지 etc)5 : 세대2xlarge : 인스턴스 클래스의 크기Gener..

    [AWS, Certified Developer Associate] IAM

    IAM (Identity and Access Management)사용자 생성, 그룹배치글로벌 서비스계정 생성 시 기본적으로 Root account 생성사용자를 생성해 특정 그룹 내에 배치그룹 내에 그룹은 X각 그룹 별로 AWS 권한을 설정하는 데에 사용보안문제, 비용문제를 방지하기 위해 사용자 별 권한을 제한최소 권한의 원칙 (least privilege principle)한 사용자가 다수의 그룹에 포함될 수 있음  IAM 정책사용자, 그룹, IAM 역할의 권한을 정의하는 JSON 문서그룹 별로 정책 생성 가능그룹에 속해있지 않은 사용자에 대해서는 사용자에 대해서만 적용 가능한 인라인 정책 생성 가능 Version : 정책 언어 버전, 보통 2012-10-17Id : 정책 식별자 (Optional)Sta..

    백준[11509] - 풍선 맞추기

    문제: https://www.acmicpc.net/problem/11509 분류: 그리디 난이도: G5 소요시간: 40m 자아성찰: 그리디, DP는 여전히 어렵다. 왼쪽에서 오른쪽으로만 화살을 쏠 수 있다는 조건을 통해 그리디 문제인 걸 알았다. 현재 위치에서 반드시 풍선을 터뜨려야 한다. 배열의 index를 풍선 높이로, index의 값을 해당 높이에 남아있는 화살 수로 접근했다. 현재 위치의 풍선 높이에 해당하는 화살이 존재한다면 (arr[H] > 0), 해당 화살은 사라지고(arr[H] --) 높이 - 1의 화살이 생긴다. (arr[H - 1]++) 현재 위치의 풍선 높이에 해당하는 화살이 존재하지 않는다면(arr[H] = 0) 새 화살을 쏘고 높이 - 1의 화살이 생긴다. (arr[H - 1]++..

    백준[15787] - 기차가 어둠을 헤치고 은하수를

    문제: https://www.acmicpc.net/problem/15787 분류: 비트마스킹 난이도: S2 소요시간: 20m 자아성찰: 명령 형태를 보고 긴가민가 했는데, "이미 목록에 존재하는 기록이라면 해당 기차는 은하수를 건널 수 없다." 조건에서 비트마스킹임을 확신했다. 최대 10만 개의 기차에 대해서 20개의 칸을 모두 비교하는 건 시간복잡도가 용서하지 않으므로, 비트마스킹을 통해 단순히 Integer 값으로 치환해 중복 여부를 판단해 시간복잡도를 줄일 수 있었다. Set를 통해 굳이 List.contains() 메서드를 사용하지 않고 중복을 제거했다. 15787번: 기차가 어둠을 헤치고 은하수를 입력의 첫째 줄에 기차의 수 N(1 ≤ N ≤ 100000)과 명령의 수 M(1 ≤ M ≤ 1000..

    [시스템 설계: 한번에 인터뷰 합격하기] 샤딩(Sharding) & RDB vs NoSQL

    1. 알고자 하는 것 샤딩 (Sharding) Sharding: MongoDB, Cassandra RDB vs NoSQL 2. 알게 된 것 데이터베이스의 확장성을 높이는 방법으로는 수직 스케일링 vs 수평 스케일링 방식이 있다. 수평 스케일링 방식으로는 샤딩(Sharding)이 있다. Sharding 샤딩은 데이터를 여러 DB에 분산하여 저장하는 방식이다. 데이터를 특정 Hash Function을 통해 구분지어 각 샤드에 저장한다. 클라이언트는 각 요청에 대해 Hash Function을 통해 데이터가 있는 샤드에 접근하여 데이터를 조회 및 저장한다. 각 샤드에는 장애 시 메인 샤드 DB로 승격될 수 있는 백업을 가질 수 있다. 이를 통해 새로운 DB를 계속 추가함으로써 무한히 확장 가능하다. (수평 스케..

    백준[19941] - 햄버거 분배

    문제: https://www.acmicpc.net/problem/19941 분류: 그리디 난이도: S3 소요시간: 10m 자아성찰: 그리디 알고리즘의 특성을 잘 알 수 있는 문제라고 생각한다. "가장 왼쪽에 있는 햄버거를 먹어야 다음 사람이 먹을 햄버거의 경우의 수가 늘어난다" 까지는 바로 떠올랐다. 하지만 위 조건에만 너무 심취해서 "범위 내 왼쪽에 햄버거가 없다면, 오른쪽에서 가장 가까운 햄버거를 먹는다" 라는 조건을 놓쳐 처음 제출 했을 때 틀렸다. HPHPHPHPHP 형태라면, 오른쪽에 햄버거를 먹어야 최대가 된다. 이 때에는 왼쪽과 반대로 가장 가까운 햄버거를 먹어야 다음 사람(오른쪽 사람)이 먹을 수 있는 햄버거의 경우의 수가 늘어난다. 19941번: 햄버거 분배 기다란 벤치 모양의 식탁에 사..

    [시스템 설계: 한번에 인터뷰 합격하기] 데이터베이스의 장애 극복 전략

    1. 알고자 하는 것 데이터베이스의 장애 극복 전략 2. 알게 된 것 단일 데이터베이스에 장애가 발생하면 해당 데이터베이스가 복구될 때까지의 시간이 모두 다운타임이 된다. 이러한 다운타임은 많은 사용자가 실시간으로 트래픽을 발생시키는 서비스에서 매우 치명적이다. 이러한 데이터베이스의 장애 극복 전략에는 크게 세가지 방식이 있다. Cold Standby (수동 예비 방식) Warm Standby (예열 대기 방식) Hot Standby (상시 대기 방식) Cold Standby 단일 데이터베이스의 작업을 S3와 같은 스토리지 등에 주기적으로 백업하고, 장애 발생 시 해당 백업을 새로운 데이터베이스에 복원하는 방식 백업이 저장되기 위한 저장공간과 복원을 위한 하나의 추가적인 데이터베이스만 있으면 가능한 방식..

    백준[17352] - 여러분의 다리가 되어 드리겠습니다!

    문제: https://www.acmicpc.net/problem/17352 분류: Union-find 난이도: G5 소요시간: 10m 자아성찰: 유니온 파인드 구현 연습 차 풀어보았다. 유니온 파인드의 원리가 생각보다 이해하기 쉬웠어서 union(), find() 메서드를 금방 떠올려 낼 수 있었다. 이래서 이해 >>>> 단순 암기라고 하는 것 같다. N-2개 다리 = 무조건 2개 그룹으로 나누어진다 = 1번 섬과 이어지지 않은 하나의 섬을 찾아서 이어주면 끝이다 시간복잡도는 O(N) find의 경우 경로 압축(parent[a] = find(parent[a])) 을 통해 find 시 parent를 업데이트 하도록 하면 시간복잡도는 상수로 처리된다.

    백준[4179] - 불!

    문제: https://www.acmicpc.net/problem/4179 분류: BFS 난이도: G4 소요시간: 20m 자아성찰: BFS 사용 접근법은 맞았으나 방문처리를 깜빡해서 79%에서 계속 실패하고 시간이 오래 걸렸다. 접근법 : 불 위치를 큐에 우선으로 넣어 이동 및 방문처리 -> 지훈이 위치 이동 및 방문처리 최초 지훈이 위치(J) 및 불들의 위치(F)에 대해서도 방문처리를 해주었어야 하는데 이걸 놓쳐서 한참 헤맸다. BFS 문제는 구현 자체는 까다롭지 않으나, 문제 조건에 따른 방문처리, 추가적인 플래그 작업 등에 신경쓰도록 하자.! 4179번: 불! 입력의 첫째 줄에는 공백으로 구분된 두 정수 R과 C가 주어진다. 단, 1 ≤ R, C ≤ 1000 이다. R은 미로 행의 개수, C는 열의 ..