분류 전체보기 216

애플리케이션 성능 모니터링(APM)

애플리케이션 성능 모니터링 -> 조직이 애플리케이션 및 코드의 성능 문제를 신속하게 식별하고 해결하기 위한 프로세스 APM과 Observability 비교 둘 다 원격 측정을 사용하여 데이터를 수집하고 성능에 대한 인사이트를 제공 APM은 트랜잭션 추적 및 모니터링과 같이 보다 애플리케이션 중심적인 반면, Observability는 애플리케이션 및 인프라 성능 양쪽 모두에 적용 애플리케이션 성능 모니터링은 어떻게 작동하나요? APM은 일련의 도구와 방법론을 사용하여 소프트웨어 애플리케이션의 성능을 모니터링하고 관리 APM 도구에는 일반적으로 응답 시간, 처리량 및 오류율과 같은 주요 메트릭의 모니터링이 포함되어 성능 병목 현상 및 문제를 식별하고 진단. APM 도구는 또한 개발자들이 코드의 문제를 이해하..

[카카오 인턴] 보석 쇼핑

개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다. 보석 이름 DIA RUBY RUBY DIA DIA EMERALD SAPPHIRE DIA 진열대의 3번부터 7번까지 5개..

python/알고리즘 2023.08.28

(분산 시스템과 병렬 시스템), 로드밸런서 알고리즘, 람다 부하테스트

분산 시스템과 병렬 시스템 분산 시스템은 네트워크로 연결된 여러 컴퓨터가 협력하여 작업을 수행하는 시스템이며, 클라우드 컴퓨팅과 P2P 네트워크가 예시입니다. 병렬 시스템은 하나의 작업을 여러 하위 작업으로 나누어 동시에 처리하여 성능을 향상시키는 시스템으로, 다중 코어 CPU와 GPU가 이에 해당합니다. 분산 시스템의 기술로는 하둡, Apache Spark, Kafka, Flink과 같은 데이터 처리 및 스트리밍 프레임워크가 있습니다. NoSQL 데이터베이스로는 Cassandra와 HBase가 대용량 데이터 관리에 활용되며, 클라우드 기반으로는 Google BigQuery, Amazon Redshift, Microsoft Azure HDInsight 등이 데이터 분석을 지원합니다. 병렬 시스템 기술은 ..

Git Action + Terraform을 통한 자동화

Summary 테라폼을 이용하여 인프라를 관리할 수 있다. aws의 s3, dynamodb를 이용하여 테라폼 백엔드를 구축하여 비용 효율적으로 tfstate를 관리한다. GitOps를 활용하여 인프라 프로비저닝을 자동화 할 수 있다. GitOps란? GitOps는 클라우드 네이티브 애플리케이션을 위한 지속적인 배포를 구현하는 방법입니다. GitOps의 핵심 아이디어는 현재 프로덕션 환경에서 원하는 인프라에 대한 선언적 설명을 항상 포함하는 Git 저장소와 프로덕션 환경이 저장소의 설명된 상태와 일치하도록 하는 자동화된 프로세스를 갖는 것 입니다. 새 응용 프로그램을 배포하거나 기존 응용 프로그램을 업데이트하려는 경우 저장소만 업데이트하면 됩니다. 출처 - https://s-core.co.kr/insigh..

DevOps BootCamp/Iac 2023.08.15

웹, 서버, 네트워크, 엔터프라이즈 시스템

Web World Wide Web의 줄임말로, 인터넷 상에서 정보를 공유하고 검색할 수 있는 시스템을 의미합니다. 웹은 문서, 이미지, 동영상 등 다양한 유형의 정보를 제공하며, 웹 브라우저를 사용하여 이 정보들에 접근할 수 있습니다. 웹은 하이퍼텍스트 시스템으로 구축되어 있어, 다른 웹 페이지로 링크되어 있는 텍스트나 요소를 클릭하여 쉽게 이동할 수 있습니다. 서버 컴퓨터 네트워크에서 다른 컴퓨터들에게 서비스를 제공하거나 데이터를 저장하는 역할을 하는 컴퓨터 시스템을 말합니다. 서버는 다양한 형태로 존재하며, 파일을 저장하는 파일 서버부터 웹 페이지를 제공하는 웹 서버, 이메일을 관리하는 메일 서버, 데이터베이스를 호스팅하는 데이터베이스 서버 등 다양한 용도로 사용될 수 있습니다. 서버는 클라이언트 컴..

[PCCP 모의고사 #1] 외톨이 알파벳

문제 설명 알파벳 소문자로만 이루어진 어떤 문자열에서, 2회 이상 나타난 알파벳이 2개 이상의 부분으로 나뉘어 있으면 외톨이 알파벳이라고 정의합니다. 문자열 "edeaaabbccd"를 예시로 들어보면, a는 2회 이상 나타나지만, 하나의 덩어리로 뭉쳐있으므로 외톨이 알파벳이 아닙니다. "ede(aaa)bbccd" b, c도 a와 같은 이유로 외톨이 알파벳이 아닙니다. d는 2회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "e(d)eaaabbcc(d)" e도 d와 같은 이유로 외톨이 알파벳입니다. 문자열 "eeddee"를 예시로 들어보면, e는 4회 나타나면서, 2개의 부분으로 나뉘어 있으므로 외톨이 알파벳입니다. "(ee)dd(ee)" d는 2회 나타나지만, 하나의 덩어리로 뭉쳐있..

python/알고리즘 2023.08.03

(stateful, stateless), (L3, L4 브릿지), Git flow, OSI 7계층, shell script(경험)

stateful이랑 stateless Stateful (상태 유지): "Stateful"은 시스템이나 애플리케이션에서 사용자 상태를 유지하는 것을 나타냅니다. 이는 데이터의 변화나 변동을 계속 추적하고 관리하는 것을 의미합니다. 예를 들어, 로그인한 사용자의 세션 정보, 상품 장바구니의 내용, 현재 음악 재생 위치 등을 저장하고 유지하는 것이 상태 유지적인 방식입니다. 이러한 상태 정보는 보통 데이터베이스나 메모리에 저장될 수 있습니다. 상태 유지적인 시스템은 사용자의 상호작용에 따라 상태가 변경되고, 이전 상태에 의존하는 경우가 많습니다. Stateless (상태 비유지): "Stateless"는 시스템이나 애플리케이션에서 사용자 상태를 유지하지 않는 것을 나타냅니다. 각각의 요청은 독립적이며, 이전 ..

2021 카카오 채용연계형 인턴십 - 숫자 문자열과 영단어

문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. def solution(s): number_dict = { "zero": "0", "one": "1", "two": "2", "three": "3", "fou..

python/알고리즘 2023.07.27

자주 물어보는 질문

Ddos 공격에는 어떻게 대응해야 할까요? 순서대로 알려주세요 실시간 모니터링과 IDS/IPS를 사용하여 이상 트래픽을 감지한다. 트래픽 필터링과 부하 분산을 통해 공격 트래픽을 차단하고 분산시킨다. 클라우드 서비스 활용과 ISP 협조, 긴급 대응 계획을 수립하여 효과적으로 대응한다. SQL 인젝션 방지 Prepared Statements 사용하여 사용자 입력을 쿼리에 하드코딩하지 않고 파라미터로 처리한다. 입력 유효성 검사를 수행하여 사용자 입력 데이터의 형식과 범위를 확인한다. ORM 사용 및 레이어 분리 등 보안 강화 기술을 적용하여 데이터베이스와의 상호작용을 보호한다. DB 데이터 탈취 대응 비상 대응과 감지를 시작하여 침입자의 접근 차단하고 사고 범위를 평가한다. 백업 데이터로 복구하고 침해 조..

ArgoCD와 Kustomize를 이용해 kubernetes에 배포

Kustomize + ArgoCD Kustomize Kustomize는 kustomization 파일을 통해 쿠버네티스 오브젝트를 사용자가 원하는 대로 변경하는(customize) 독립형 도구이다. 애플리케이션의 새 버전의 이미지가 배포가 되면 kubernetes 환경에서 새 버전의 이미지로 설정을 변경해서 적용을 시켜야 함. kustomize의 edit set image를 활용하면 이미지 태그만 변경해서 적용할 수 있음. kubernetes의 manifests 수정하는 여러 방법 중에 simple하게 kustomize를 선택. kustomize에 edit set image로 애플리케이션 image의 버전을 수정해서 저장소에 commit 하려고 함. base/kustomization.yaml apiVer..