개발공부 (53) 썸네일형 리스트형 8월 백엔드 챌린지 : 도커 프로 (3) 1. 컨테이너 오케스트레이션 툴 - GCP GKE(Google Kubernetes Engine) - AWS EKS(Elastic Kubernetes Services) ECS(Elastic Container Service) 기능 - 컨테이너 클러스터링 ~ 여러 대의 노드를 하나의 클러스터로 묶어, 어플리케이션을 분산 실행하고, 자원을 효율적으로 활용 ~ 여러 대의 물리적인 또는 가상의 서버를 하나의 시스템처럼 동작하게 하는 기술 ~ 컨테이너를 실행하는 호스트의 자원을 효율적으로 분배, 컨테이너가 안정적으로 실행되도록 함 ~ 여러 대의 컨테이너를 묶어 하나의 서버처럼 사용할 수 있도록 지원 - 서비스 디스커버리 ~ 컨테이너를 자동으로 발견하고, 서비스 이름과 IP주소 등을 관리해 어플리케이션 간 연결을 관리.. 8월 백엔드 챌린지 : 도커 프로 (2) 1. 도커 명령어(Docker CLI) 1) 레지스트리에서 이미지 다운로드 docker pull [OPTIONS] NAME[:TAG|@DIGEST] 2) 이미지 목록 docker images [OPTIONS] [REPOSITORY[:TAG]] 3) 이미지에서 새 컨테이너 만들고 실행하기 docker run [OPTIONS] CONTAINER [CONTAINER...] 4) 컨테이너 로그 페치 docker logs[OPTIONS] CONTAINER 5) 실행중인 컨테이너 정지 docker stop [OPTIONS] CONTAINER [CONTAINER...] 6) 컨테이너 제거 docker rm [OPTIONS] CONTAINER [CONTAINER...] 7) 이미지 제거 docker rm [OPTION.. 8월 백엔드 챌린지 : 도커 프로 (1) 1. Docker란? - 오픈 플랫폼 - 어플리케이션을 인프라에서 분리해준다 - 신속하다 - 인프라를 어플리케이션을 관리하는 것처럼 관리할 수 있다 - 코드 배포에 용이하다 - 컨테이너 기반 가상화 도구 - 어플리케이션을 컨테이너라는 단위로 격리해 실행하고 배포하는 기술 2. 컨테이너란? - 컨테이너는 가상화 기술 중 하나 - 호스트 운영체제 위 여러 개의 격리된 환경을 생성 - 각각의 컨테이너 안에서 어플리케이션 실행 3. 가상화 기술이란? - 하나의 물리적인 컴퓨터 자원(CPU, 메모리, 저장장치) 등을 가상적으로 분할해 여러 개의 가상 컴퓨터 환경을 만들어 내는 기술. 이를 통해 물리적인 컴퓨터 자원을 더육 효율적으로 사용할 수 있으며, 서버나 어플리케이션을 운영할 때 유연성과 안정성을 제공한다 하.. 7월 백엔드 챌린지 4. 예제 적용 1. 알림 시스템 설계 1.1 개요 알림 시스템은 많은 서비스에서 최신 뉴스, 제품 업데이트, 이벤트 등 비즈니스적으로 중요한 내용을 비동기로 제공한다. 모바일 푸시, SMS, 그리고 이메일로 분류할 수 있다 1.2 기본 설계 1) IOS - 알림 제공자 : 알림 요청을 만들어 애플 푸시 알림 서비스로 보내는 주체. 알림 요청을 보내려면 device token, payload 데이터가 필요하다 - 알림 서비스(APNS) : 애플에서 제공하는 원격 서비스. 푸시 알림을 IOS 장치로 보내는 역할을 담당한다 2) AOS : APNS 대신 FCM을 사용한다(기본 설계는 같다) 3) 이메일, SMS 역시 동일 4) 연락처 정보 수집 절차 - 알림을 보내려면 모바일 단말 토큰, 전화번호, 이메일 주소 등의 정보가.. 7월 백엔드 챌린지 3. 사용자 수에 따른 규모를 확장하는 방법 2 1) 메세지 큐 메세지 큐에 일단 보관한 메시지는 소비자가 꺼낼 때까지 안전하게 보관할 수 있다 장점 : 서비스 또는 서버 간 결합이 느슨해져, 규모 확장성이 보장되어 안정적인 애플리케이션을 구성할 수 있다. 생산자는 소비자의 프로세스가 다운되어도 메시지를 발행할 수 있고, 그 반대도 가능하다 사용 사례 알림 푸시 발송, 이메일 발송, 이미지 보정 등 시간이 오래 걸릴 수 있는 프로세스를 비동기로 처리한다 이벤트 큐 : 메시지 큐와 다르게 한 번 읽은 데이터는 즉시 삭제되지 않는다 오늘날의 애플리케이션은 이벤트 기반 MSA를 구현할 뗴 이벤트 큐를 많이 활용한다 특징 : 단일 진실 공급원, 장애가 일어난 시점부터 재처리 가능, 많은 양의 실시간 데이터를 효율적으로 처리 가능 https://www.yout.. 7월 백엔드 챌린지 2. 사용자 수에 따른 규모를 확장하는 방법 1) 데이터베이스 다중화 (1) 목적 대부분의 애플리케이션은 읽기 연산의 비중이 쓰기 연산보다 훨씬 높다. 따라서 더 나은 성능을 위해 데이터 변경은 주 데이터베이스에서, 읽기 연산은 서브 데이터베이스로 분산한다 -> 주 데이터베이스 : 쓰기 연산(INSERT, UPDATE, DELETE)/ 서브 데이터베이스 : 주 DB에서 사본 전달받음, 읽기 연산(SELECT) (2) 스프링에서.. spring: datasource: url: jdbc:mysql://127.0.0.1:3306/kotlin_spring?serverTimezone=UTC driver-class-name: com.mysql.cj.jdbc.Driver username: root password: 1234 하나의 데이터소스를 사용할 경우 ya.. 7월 백엔드 챌린지 1. 기술 면접에서 시스템 설계 문제가 가지는 의미 1. 시스템 설계 문제란? 1) 무엇을 원하는가? - 기술 면접에서 구직자에게 주어진 문제를 어떻게 해결할 것인지 문제 해결 능력을 파악하기 위해 출제한다 - 정답은 없고 설계 기술을 면접관들에게 보여주면 된다 - 협력할 수 있는 지, 압박을 잘 견뎌낼 수 있는 지를 판단하기 위해 2) 피해야 하는 점 : 비용을 고려하지 않은 오버 엔지니어링 2. 효과적 면접을 위한 4단계 접근법 1) 문제 이해 및 설계 범위 확정 - 바로 답만 얘기하지 말자 - 깊이 생각하고 질문해 요구사항과 가정을 분명히 하기 - 올바른 질문하기, 적절한 가정하기, 시스템 구축에 필요한 정보 모으기 ex) 뉴스피드 시스템 설계 - 가장 중요한 기능이 무엇인가? - 정렬 상태는 어떻게 되어야 하는가? - 최대 사용자? 친구 상태? -.. CS 강의 2. CPU와 메모리 심화 출처 : 내일배움캠프 1. CU의 핵심 기능 : 스케줄링 1) 스케줄링 소개 - 프로그램을 실행하는 주체 = 프로세스 ex) 카톡 실행 - 작업을 처리하는 주체 = 스레드 ex) 카톡 메세지 송수신 CPU를 잘 사용하기 위해 프로세스를 잘 배정해야 한다. OS는 실행 대기 중인 프로그램들에게 CPU 자원 배정을 적절히 하여 시스템의 성능을 끌어올릴 수 있다 공통 배정조건 : 오버헤드 낮음, 사용률 높음, 기아 현상 낮음 - 오버헤드 : 프로세스가 필요한 자원보다 더 많이 사치부리며 사용하지 않도록 - 사용률 : 프로세스가 최대한 자원을 많이 받고 빨리 처리하도록 - 기아 현상 : 프로세스가 자원할당을 못받아서 배고픈 상태로 대기하지 않도록 목표에 따른 배정조건 - 배치 시스템 : 가능하면 많은 일을 수행.. 이전 1 2 3 4 5 6 7 다음