본문 바로가기

전체 글

(162)
백준 2812번 - 크게 만들기 (Java, Deque + 그리디) 문제https://www.acmicpc.net/problem/2812문제 접근완전 탐색은 불가능 : N이 최대 50만 → 모든 조합(nCk)을 탐색하는 DFS 방식은 시간 초과 발생그리디 + Deque 사용앞자리가 클수록 전체 수가 큼현재 숫자가 이전 숫자보다 크면 앞의 작은 숫자들을 제거단, K개까지만 제거 가능이 과정을 Deque로 구현하여 스택처럼 숫자를 쌓고 관리함전체 코드import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); String num = sc.ne..
백준 14889번 스타트와 링크 - DFS, 백트래킹 문제 개요https://www.acmicpc.net/problem/14889N명이 있을 때, 두 팀으로 나누어 능력치의 차이가 최소가 되도록 팀을 나누는 문제입니다. 각 팀의 능력치는 팀 내 두 사람 간의 시너지의 합으로 계산됩니다. 단, 반드시 두 팀은 N/2명으로 균등하게 나누어야 합니다.전체 코드package baekjoon;import java.util.*;public class Main { static boolean[] team; static int[][] power; static int n, answer = Integer.MAX_VALUE; public static void DFS(int L, int idx) { if (L == n / 2) { int startTeam = 0; int..
Docker Compose와 GitHub Actions를 활용한 CI/CD 파이프라인 구축 기존 CI/CD 문제점처음 CI/CD 파이프라인을 구성했을 때는 Docker Compose를 사용하지 않고, Redis도 EC2 인스턴스에 직접 설치해서 운영했습니다. Spring Boot 애플리케이션만 Docker로 빌드해 EC2에 배포했고, CI/CD 자체는 동작했지만 인프라 관리 측면에서 아쉬운 점이 있었습니다.특히 Redis는 컨테이너 외부에 설치되어 있어 관리가 분리되어 있었고, 컨테이너화된 애플리케이션과의 연동이 유연하지 않았습니다. 또한 Redis 데이터의 영속성을 따로 관리하지 않아 재시작 시 데이터가 유지되지 않는 구조도 문제였습니다.이러한 점들을 보완하기 위해 이번에는 Docker Compose를 도입해 Spring Boot와 Redis를 함께 컨테이너로 실행하고, Redis에는 --a..
백준 10989번 수 정렬하기 3 - 계수 정렬 문제 설명자연수 N개가 주어진다. 이 수들을 오름차순으로 정렬해서 한 줄에 하나씩 출력하는 문제이다.시간 초과에 유의해야 한다.입력 조건첫째 줄에 N (1 ≤ N ≤ 10,000,000)둘째 줄부터 N개의 줄에 정수 (1 ≤ 수 ≤ 10,000)예제 입력105231423517예제 출력1122334557전체 코드import java.io.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int n = In..
AWS Certified Cloud Practitioner 모듈10 - AWS 클라우드 장점 AWS Training에서 제공하는 AWS Cloud Practitioner (Korean) 강의 요약 정리 내용입니다.클라우드 컴퓨팅의 장점 6가지클라우드 컴퓨팅은 기존의 온프레미스 인프라 대비 더 저렴하고 빠르며 유연한 IT 환경을 제공합니다.이 글에서는 AWS에서 제시한 클라우드 컴퓨팅의 6가지 핵심 장점을 하나씩 정리해보겠습니다.1. 선행 비용을 가변 비용으로 전환기존에는 서버를 직접 구매하거나 데이터 센터를 구축하는 등 초기 자본(선행 비용)이 많이 들었습니다.하지만 AWS와 같은 클라우드를 사용하면 사용한 만큼만 요금을 지불하면 됩니다.더 이상 장비 구매 X실험/개발 단계에서도 저렴하게 시작 가능예시: 서버 한 대를 1년치 비용으로 사는 대신, 하루 단위로 사용 후 중단 가능2. 규모의 경제에..
AWS Certified Cloud Practitioner 모듈10 - AWS Well-Architected Framework AWS Training에서 제공하는 AWS Cloud Practitioner (Korean) 강의 요약 정리 내용입니다.AWS Well-Architected Framework 정리AWS에서는 신뢰성 있고 안전하며 효율적이고 비용 효과적인 클라우드 아키텍처를 설계하기 위한 체계적인 기준으로 Well-Architected Framework를 제공합니다. 이 프레임워크는 클라우드 기반 시스템을 설계·운영할 때 발생할 수 있는 공통적인 문제를 예방하고, 모범 사례(Best Practice)를 기반으로 지속적인 개선을 유도합니다.핵심 구성 요소 6가지AWS Well-Architected Framework는 다음 6가지 핵심 요소(필러)로 구성되어 있습니다.핵심 요소설명운영 우수성 (Operational Excel..
AWS Certified Cloud Practitioner 모듈9 - AWS를 통한 혁신 AWS Training에서 제공하는 AWS Cloud Practitioner (Korean) 강의 요약 정리 내용입니다.AWS 서비스를 통한 혁신 정리클라우드를 통해 혁신하려면 단순히 기존 인프라를 이전하는 데 그치지 않고, 원하는 비즈니스 목표(결과)를 명확히 정의하고 적절한 AWS 서비스를 선택해야 합니다.전제 조건현재 상태: 기존 온프레미스 시스템, 수작업 프로세스 등원하는 상태: 빠른 배포, 예측 가능한 운영, 자동화된 인프라 등해결하려는 문제: 확장성 부족, 운영 비용 증가, 속도 저하 등1. 서버리스 애플리케이션정의서버를 직접 운영/관리할 필요 없는 애플리케이션 구조로 AWS가 인프라 관리를 대신합니다.주요 서비스AWS Lambda: 이벤트 기반 함수 실행Amazon API Gateway: A..
도커 개념 정리: 이미지, 컨테이너, 볼륨, 컴포즈 도커(Docker)는 왜 써야 할까?내 컴퓨터에서는 잘 되던 프로그램이 다른 컴퓨터에선 에러가 나는 경우가 있습니다. 운영체제, 라이브러리 버전, 설치 순서 등 환경 차이 때문입니다. 이 문제를 해결해주는 도구가 바로 Docker(도커)입니다. 도커의 가장 큰 장점은 이식성입니다. 한 번 도커로 패키징한 프로그램은 어떤 컴퓨터에서든 동일하게 실행할 수 있습니다. 설치 에러, 환경 충돌을 더 이상 신경 쓸 필요가 없습니다.도커(Docker)Docker는 프로그램을 격리된 환경에서 실행할 수 있도록 도와주는 플랫폼입니다.이 격리된 환경을 우리는 컨테이너(Container)라고 부릅니다. 마치 한 컴퓨터 안에 여러 개의 작은 컴퓨터(미니 운영체제)를 띄워서 그 안에서 각각 독립적으로 프로그램을 실행시키는 개념..