본문 바로가기

분류 전체보기135

[C++] 가장 가까운 같은 글자 가장 가까운 같은 글자문자열 s가 주어졌을 때, s의 각 위치마다 자신보다 앞에 나왔으면서, 자신과 가장 가까운 곳에 있는 같은 글자가 어디 있는지 알고 싶습니다. 예를 들어, s="banana"라고 할 때,  각 글자들을 왼쪽부터 오른쪽으로 읽어 나가면서 다음과 같이 진행할 수 있습니다. 따라서 최종 결과물은 [-1, -1, -1, 2, 2, 2]가 됩니다.   입출력 예"banana"[-1, -1, -1, 2, 2, 2]"foobar"[-1, -1, 1, -1, -1, -1]  2중 반복문으로 해당 글자 인덱스부터 뒤에서 앞으로 해당 글자가 있는지 찾아갑니다.   풀이#include #include using namespace std;vector solution(string s) { vector.. 2024. 6. 22.
[C++] 문자열 겹쳐쓰기 (replace) 문자열 겹쳐쓰기문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.   입출력 예"He11oWor1d""lloWorl"2"HelloWorld""Program29b8UYP""merS123"7"ProgrammerS123"   풀이#include using namespace std;string solution(string my_string, string overwrite_string, int s) { string answer = ""; answer = my_string.repl.. 2024. 6. 15.
[EKS] Github Action과 ArgoCD로 CI/CD 파이프라인 구축 AWS EKS환경에서 쿠버네티스 클러스터를 생성하고 CI/CD 파이프라인을 구축합니다. CICD는 지속적통합 / 지속적배포라는 개념으로 애플리케이션 개발 단계를 자동화하여 애플리케이션을 더욱 짧은 주기로 고객에게 서비스를 제공하는 방법입니다. 코드를 통합하고 배포하는 과정의 파이프라인을 통해 자동화할 수 있습니다. CI ( 지속적 통합) CI는 작성한 코드를 지속적으로 통합하는 방법입니다. 코드 변경이 발생할 때마다 자동으로 빌드 및 테스트를 수행하여 품질을 높이고 문제를 빠르게 감지할 수 있습니다. 개발자가 코드를 원격 코드 저장소에 push하면 원격 코드 저장소에서 코드를 가져와 유닛테스트 후 빌드를 진행합니다. 이 결과물을 다른 컴포넌트와 잘 통합되는지 확인합니다. CD (지속적 배포) 소프트웨어 .. 2024. 1. 24.
[EKS] 3티어 아키텍처 (RDS, Redis, 인그레스, tls, 도메인연결) AWS EKS를 이용하여 쿠버네티스 환경의 3티어 아키텍처를 구성합니다. 구성환경은 VScode를 사용합니다. 먼저, 로컬에서 kubectl 명령을 사용하기 위해 eksctl을 설치해야합니다. 아래 블로그를 참고하여 진행합니다. 04_AWS CLI와 PowerShell을 이용한 EKS 관리 오늘은 AWS의 Command Line Interface와 윈도우의 PowerShell을 이용한 EKS 관리 시간입니다. 당연히 AWS CLI v2 설치와 함께 kubectl, iam_authenticator 설치 및 kubeconfig 파일에 리전과 클러스터를 업데이트하는 작업 virtualtech.tistory.com 이제 쿠버네티스 클러스터를 생성합니다. 아래명령을 입력하여 노드 3개를 가지고 psy라는 키페어를.. 2024. 1. 8.
[k8s] 쿠버네티스 Service와 Deployment 기본적으로 쿠버네티스 매니패스트 파일을 통해 클러스터 내부의 애플리케이션의 네트워크 설정, 구성 등의 리소스를 작성하고 관리합니다. yaml 또는 yml 형식의 파일을 사용합니다. 쿠버네티스 클러스터의 구성에 대해서는 아래 글에서 다루고 있습니다. [k8s] 쿠버네티스 기초 쿠버네티스란? 쿠버네티스는 구글이 내부적으로 사용하던 컨테이너 클러스터 관리도구에서 아이디어를 얻어서 만든 오픈소스 소프트웨어입니다. 쿠버네티스는 컨테이너화된 애플리케이션의 parkkingcar.tistory.com Pod Pod은 쿠버네티스의 기본 배포 단위입니다. Pod은 하나 이상의 컨테이너를 묶은 단위로, 컨테이너들이 동일한 호스트에서 실행됩니다. Pod은 네트워크 네임스페이스, IPC 네임스페이스, 호스트 이름, 스토리지 리.. 2023. 12. 19.
[k8s] 쿠버네티스 기초 쿠버네티스란? 쿠버네티스는 구글이 내부적으로 사용하던 컨테이너 클러스터 관리도구에서 아이디어를 얻어서 만든 오픈소스 소프트웨어입니다. 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장을 관리하는 것을 자동화하기 위한 컨테이너 오케스트레이션 엔진입니다. 최근 도커를 비롯한 컨테이너 기술이 화두가 되면서 실제 서비스 환경에 컨테이너를 적용하는 사례가 늘어나는데, 도커 자체로는 여러 호스트 구성 또는 큰 규모의 서비스 환경에서 사용하는 시스템을 구축하기 어렵습니다. 그래서 쿠버네티스와 같은 컨테이너 오케스트레이션 엔진을 사용해 이러한 시스템을 구축합니다. 쿠버네티스에서 실제 컨테이너가 기동하는 노드는 쿠버네티스 노드라 하고, 그 쿠버네티스 노드를 관리하는 노드는 쿠버네티스 마스터라 합니다. 쿠버네티스(Kub.. 2023. 12. 19.
우분투에 도커, 도커컴포즈 설치 실행환경Ubuntu 22.04 Docker 설치방법 1. 우분투 시스템 패키지 업데이트sudo apt-get update2. 필요한 패키지 설치sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common 3. Docker의 공식 GPG키를 추가curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - 4. Docker의 공식 apt 저장소를 추가sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_rele.. 2023. 12. 6.
[AWS] AWS DataSync 및 Storage Gateway를 사용하여 온프레미스 NFS 공유 마이그레이션 AnyCompany는 일상적 업무 수행에 NFS(네트워크 파일 시스템) 파일 공유를 많이 사용합니다. CIO(Chief Information Officer)는 온프레미스 NFS 파일 서버의 데이터가 적절히 백업되지 않거나 기본 데이터 센터의 재해로부터 보호되지 않을까 봐 걱정입니다. 예산이 빠듯하기 때문에 배포와 유지 관리에 직원들의 시간이 많이 필요한 고가의 백업 또는 복제 솔루션 대신 비즈니스를 개선하는 데 비용을 지출하고자 하며, 이 경우 배포와 유지 관리에 많은 인력의 노동 시간도 필요합니다. CIO는 다음 기준을 충족하는 솔루션을 찾기 위해 여러분에게 요청합니다. 1. 회사 데이터 센터에서 온프레미스 NFS 파일 공유의 데이터를 재해로부터 보호 2. 비용 효율적 3. 배포 및 유지 관리 용이 4.. 2023. 12. 3.
[AWS] Lake Formation을 사용한 데이터 레이크 설정 Lake Formation을 사용하여 대규모 음악 데이터 집합을 위한 데이터 레이크를 설정합니다. 데이터 레이크를 생성한 후에 AWS Glue 크롤러를 설정해 AWS Glue 데이터 카탈로그에서 스키마를 확인하고 테이블을 생성합니다. 데이터를 크롤링한 후에는 테이블에 액세스 권한을 부여하고 Amazon Athena를 사용해 데이터를 쿼리합니다. AWS Lake Formation은 안전한 데이터 레이크를 며칠 만에 설정할 수 있도록 도와주는 서비스입니다. 데이터 레이크는 큐레이팅된 안전한 중앙 집중식 리포지토리로, 오리지널 형식 및 분석에 필요한 형식으로 데이터를 저장합니다. 데이터 레이크는 데이터 사일로를 없애고 다양한 유형의 분석을 조합하여 인사이트를 얻어 이를 바탕으로 비즈니스 결정을 내리는 데 도움.. 2023. 12. 3.