목록2026/01 (46)
cmod.ify
1. 전체 시스템 흐름본 프로젝트는 데이터의 저장(Command)과 조회(Query)의 책임을 분리하는 CQRS(Command Query Responsibility Segregation) 패턴을 기반으로 구축됨.입력 단계: 리액트(Frontend)에서 사용자가 도서 정보를 입력하고 등록 요청을 보냄.저장 및 발행 단계: Write 서버(Django, 7000번)가 요청을 받아 MySQL에 원본 데이터를 저장하고, 동시에 Kafka의 cqrstopic이라는 이름의 토픽으로 해당 데이터를 발행(Produce)함.메시지 중계 단계: Kafka 브로커는 전달받은 데이터를 보관하며 컨슈머의 요청을 기다림.동기화 단계: 별도의 컨슈머 프로세스(Consumer)가 카프카를 상시 모니터링하다가 메시지가 들어오면 이를 ..
정답 및 해설 드래그1번한 회사가 여러 대륙에 걸쳐 있는 도시들의 온도, 습도, 기압 데이터를 수집합니다. 각 사이트에서 매일 수집하는 데이터 양은 평균 500GB입니다. 모든 사이트는 고속 인터넷에 연결되어 있습니다.이 회사는 전 세계 모든 사이트에서 수집한 데이터를 가능한 한 빨리 하나의 Amazon S3 버킷에 통합하고자 합니다. 솔루션은 운영 복잡성을 최소화해야 합니다.이러한 요구 사항을 충족하는 솔루션은 무엇일까요?A.대상 S3 버킷에서 S3 전송 가속을 활성화합니다. 멀티파트 업로드를 사용하여 사이트 데이터를 대상 S3 버킷에 직접 업로드합니다.B.각 사이트의 데이터를 가장 가까운 리전의 S3 버킷에 업로드합니다. S3 리전 간 복제를 사용하여 객체를 대상 S3 버킷으로 복사합니다. 그런 다음..
현재 클라우드 스쿨(KDT) 과정을 진행하며 실질적인 역량 증명을 위해 자격증 취득을 결정했다.클라우드 분야에서 표준으로 통하는 AWS SAA에 도전한다.신입에게 자격증이 실무 능력을 대변해주지 못한다는 시선도 있지만, 취업에 대한 막연한 불안감을 해소하고 지식의 기초를 다지는 데 목적을 두었다.실제로 SAA를 공부하며 접한 개념들이 교육 과정의 온프레미스 환경과 클라우드 환경 사이의 용어 차이를 이해하는 데 큰 도움이 되고 있다.1. 자격증 정보 및 접수 현황시험 명칭: AWS Certified Solutions Architect - Associate (SAA-C03)응시 비용: 25% 할인 바우처 적용 시 약 160,000원 가입 이메일에 할인 코드가 있다. 결제 시 코드 적용하고 결제해야 한다프로모..
마이크로서비스와 비즈니스 민첩성1. 비즈니스 민첩성 확보사용자 피드백을 실시간으로 반영하여 서비스를 끊임없이 개선하는 것이 핵심임 아마존은 초당 1.5번 배포할 정도로 빠른 민첩성을 보유하고 있음 클라우드 인프라의 등장으로 과거 몇 주씩 걸리던 서버 구축이 클릭 몇 번으로 가능해짐 2. Cloud Friendly와 Cloud Native시스템을 하나의 큰 덩어리로 만들어 클라우드에 올리는 방식을 Cloud Friendly라고 함 서비스별로 독립적으로 분리되어 배포되는 방식을 Cloud Native라고 정의함 Monolithic과 Microservice 비교1. Monolithic 아키텍처전체 애플리케이션을 하나의 단위로 개발하며, 아주 작은 변경사항에도 전체를 다시 빌드하고 배포해야 함 특정 기능만 확장..
1차원 DP 배열의 변화 원리1. 핵심 규칙: 뒤에서부터 채우기1차원 배열을 앞에서부터 채우면, 방금 업데이트한 값을 같은 물건에서 또 참조하게 되어 '물건 중복 담기' 오류가 발생함. 하지만 뒤에서부터 채우면 dp[j-w]는 아직 '이전 물건까지만 계산된 값'을 유지하고 있으므로 2차원 배열의 dp[i-1][j-w]와 똑같은 효과를 냄.2. 예시 상황 재현배낭 용량: 7물건 A: 무게 4, 가치 8물건 B: 무게 3, 가치 6[Step 1] 물건 A (4, 8) 처리j를 7부터 4까지 줄이며 계산함.dp[7] = max(0, dp[7-4]+8) = 8dp[6] = max(0, dp[6-4]+8) = 8dp[5] = max(0, dp[5-4]+8) = 8dp[4] = max(0, dp[4-4]+8) = ..
처음에 2차원 리스트로 만들었더니 메모리 초과 ㅠㅠ어쩐지 너무 쉽더라import sysimport heapqinput = sys.stdin.readlinen = int(input())gra = []gra.append([0 for _ in range(n + 2)])for i in range(1, n + 1): li = list(map(int, input().strip().split())) gra.append([0] + li + [0])xdp = [[0] * (n + 2) for _ in range(n + 1)]ndp = [[sys.maxsize] * (n + 2) for _ in range(n + 1)]ndp[0] = [0 for _ in range(n + 2)]for i in range(1, ..
예시 데이터 상황노드 수(N): 5개 / 간선 수(M): 8개시작점: 1번 / 도착점: 5번초기 상태: dists = [0, inf, inf, inf, inf, inf] (1번 노드만 0)단계별 동작 과정1. 시작 단계 (노드 1)우선순위 큐에서 (0, 1)을 꺼냄. 1번 노드와 연결된 인접 노드들을 확인하여 거리를 갱신함.1 → 2: 비용 2 (0+2 ) → dists[2] = 21 → 3: 비용 3 (0+3 ) → dists[3] = 31 → 4: 비용 1 (0+1 ) → dists[4] = 11 → 5: 비용 10 (0+10 ) → dists[5] = 10큐 상태: [(1, 4), (2, 2), (3, 3), (10, 5)] (비용 순 정렬)2. 최단 거리 노드 선택 (노드 4)큐에서 가장 비용이 ..
클라우드에서 바라보는 핵심 중점 사항서비스 가용성(Managed Service): 장비가 고장 날 걱정을 하지 않음. 클라우드 사업자가 장비의 생존(Health)을 책임지므로, 사용자는 설정값(Interval, Timeout 등)만 잘 정하면 됨.보안 그룹(Security Group)과 ACL: L3/L4 수준의 보안은 '보안 그룹'이라는 가상 방화벽으로 설정함. 물리 장비의 ACL보다 훨씬 직관적이고 관리가 쉬움.비용 최적화: 물리 장비는 한 번 사면 끝이지만, 클라우드는 트래픽 양에 따라 비용이 나감. 따라서 서비스 특성에 맞춰 L4(NLB)를 쓸지 L7(ALB)을 쓸지 선택하는 것이 곧 비용 절감임.확장성(Auto Scaling): 헬스 체크를 통해 서버가 죽으면 자동으로 새 서버를 생성하고 로드밸..
[ 환경 ]MSI 노트북CPU: AMD 라이젠 7 5700URAM: 16GBWi-Fi: RZ608(MediaTek MT7921 OEM) 칩셋GPU: Radeon Graphics(내장) 1. LINUX 공식 사이트에서 TLS 버전 다운 받기https://ubuntu.com/download/desktop 2. 최신 REFUSE 다운로드https://rufus.ie/ko/ Rufus - 부팅 가능한 USB 드라이브를 간편하게 만들기 rufus.ie 3. Refus 실행장치 - USB 꽂은 거 설정부팅 [선택] 눌러서 아까 다운 iso 파일 선택하기파티션 구성 : GPT - 대상시스템 자동 변경 4. BIOS 진입노트북을 끄고 다시 전원을 켜자마자 Del 키를 연타하여 바이오스 화면으로 들어감. 5. 필수 설..
사각형의 합을 미리 구해놔야 함1. 원본 데이터 (Input)(행\열)1231행1232행4563행789 2. 누적 합 표 (DP 테이블) 계산 dp[i][j] = dp[i-1][j] (위쪽 합) + dp[i][j-1] (왼쪽 합) - dp[i-1][j-1] (대각선 중복) + 원본[i][j][최종 완성된 DP 테이블](행\열)1231행1362행512213행1227453. 구간 합 구하기 예시[계산 공식] 결과 = dp[x2][y2] - dp[x1-1][y2] - dp[x2][y1-1] + dp[x1-1][y1-1] 예시 ) (2, 2)부터 (3, 3)까지의 합을 구하라고 한다면 전체 면적: dp[3][3] = 45위쪽 영역 빼기: dp[1][3] = 6 (1행 전체)왼쪽 영역 빼기: dp[3][1] = ..