전체 글 207

[쿠버네티스 인 액션] 1장. 쿠버네티스 소개 - 쿠버네티스 소개

1. 쿠버네티스 개요 - 개발자가 애플리케이션 매니페스트를 마스터에 게시하면, 쿠버네티스는 해당 애플리케이션을 워커 노드 클러스터에 배포- 개발자는 특정 애플리케이션이 함께 실행되도록 지정할 수도 있으며, 쿠버네티스는 여러 어플리케이션을 동일한 워커 노드에 배포- 다른 애플리케이션은 클러스터에 걸쳐서 분산되지만 배포된 위치에 상관없이 동일한 방식으로 서로 통신할 수 있음.   2. 쿠버네티스 클러스터 아키텍처 이해 - 마스터 노드 : 전체 쿠버네티스 시스템을 제어하고 관리하는 쿠버네티스 컨트롤플레인을 실행 - 워커 노드 : 실제 배포되는 컨테이너 애플리케이션을 실행  - 컨트롤 플레인 : 클러스터를 제어하고 작동시킴ㄴ 쿠버네티스 API : 사용자, 컨트롤 플레인 구성 요소와 통신ㄴ 스케줄러 : 애플리케이..

[쿠버네티스 인 액션] 1장. 쿠버네티스 소개 - 컨테이너 기술 소개 w.쿠버네티스 TV, 악분 일상

1. 쿠버네티스와 같은 시스템이 필요한 이유 - 조금 뻔한 내용이 많아서 패스 2. 컨테이너 기술 소개 1) 리눅스 컨테이너 기술 - 동일한 호스트 시스템에서 여러 개의 서비스를 실행할 수 있으며 동시에 서로 다른 환경을 만들어줄 뿐만 아니라 - 가상머신과 유사하게 서로 격리하지만 오버헤드가 훨씬 적음  2) 컨테이너와 가상머신 비교 [가상머신]- 호스트에 가상머신 3개를 실행하면, 3개는 각각 완전히 분리된 운영체제가 실행되고 동일한 베어메탈 하드웨어를 공유한다. - 가상머신 아래에는 물리적 하드웨어 리소스를 각 가상머신 내부의 운영체제에서 사용할 수 있는 더 작은 리소스로 나누는 호스트OS와 하이퍼바이저가 있음. ㄴ 해당 가상머신 내에서 실행되는 애플리케이션의 가상머신의 게스트 OS 커널에 대한 시스..

[코드팩토리의 플러터 프로그래밍] 6장. 기본 위젯 알아보기 - 위젯, child 대표위젯, children 대표 위젯 개념 위주

위젯 - 현재 주어진 상태를 기반으로 어떤 UI를 구현할지 정의 - 상태가 변경되면 변경 사항에 알맞게 변경된 UI를 화면에 다시 그려줌. - 결과적으로 플러터는 최소한의 리소스를 이용해 120FPS 까지 퍼포먼스 발생  자식 하나만을 가지는 (child) 대표적인 위젯- Container 위젯 : 자식을 담는 컨테이너 역할을 함.ㄴ 다만, 단순하게 자식을 담는 역할을 하는게 아니라 배경색, 너비와 높이, 테두리 등의 디자인 지정 - GestureDetector 위젯 : 제스처 기능을 자식 위젯에서 인식하는 위젯 ㄴ 탭이나 드래그, 더블 클릭 같은 제스처 기능이 인식됐을 때 함수 실행 가능- SizedBox 위젯 : 높이와 너비 지정하는 위젯ㄴ Container 위젯과 다르게 디자인적 요소는 적용할 수 ..

[코드팩토리의 플러터 프로그래밍] 5장. 플러터 입문하기 - hello code factory 출력, center위젯으로 중앙 정렬

환경 : 맥북 m1 hello code factory 출력 materialapp : material design 기반의 위젯들을 사용하게 해주는 위젯scaffold : materialapp 다음으로 위치하는 위젯으로 화면 전체를 차지하며 레이아웃 도와주는 기능 제공 ex, 화면에 알림과 같은 스낵바 실행, 위에 앱바 혹은 아래에 탭바 추가   import 'package:flutter/material.dart';void main() { runApp( MaterialApp( home: Scaffold( body: Text( 'Hello Code Factory', ), ), ), );}    center 위젯으로 중앙으로 정렬 impo..

[코드팩토리의 플러터 프로그래밍] 4장. 다트 3.0 신규 문법

1. 레코드1) 포지셔널 파라미터 : 표시한 타입 순서를 지켜야함 void main() { // 정확한 위치에 어떤 타입의 값이 입력될 지 지정 가능 (String, int) minji = ('민지', 20); print(minji); // 특정 순서의 레코드 값 가져오고 싶다면 $ 사용 print(minji.$1); print(minji.$2);} 실행화면 >> 2) 네임드 파라미터 : 입력 순서 지킬 필요 없지만 타입과 변수 이름 쉼표로 구분하고 명시해줘야함 void main() { // 네임드 파라미터 형태로 record 선언 ({String name, int age}) minji = (name: '민지', age: 20); print(minji);} 실행화면 >> 2...

[코드팩토리의 플러터 프로그래밍] 2장. 다트 객체지향 프로그래밍

1. 객체지향 프로그래밍의 필요성 1) 모든 코드를 main()함수에서 작성하면 코드 정리가 안돼 장애물이 됨.2) 변수와 메서드를 특정 클래스에 종속되게 코딩할 수 있음. > 코드 관리가 용이해짐 2. 클래스와 인스턴스 1) 클래스 : 일종의 설계도로 데이터가 보유할 속성과 기능을 정의하는 자료구조 2) 인스턴스 : 클래스를 이용해서 객체를 선언하면 해당 객체를 인스턴스라고 부름  3. 클래스의 생성자 1) 생성자 : 클래스의 인스턴스를 생성하는 메서드 2) 네임드 생성자 : 클래스를 생성하는 여러 방법을 명시하고 싶을 때 사용 class Idol { // 생성자에서 입력받는 변수들은 일반적으로 final 키워드 사용 final String name; final int membersCount; ..

[가상면접 사례로 배우는 대규모 시스템 설계 기초] ch12. 채팅 시스템 설계

요구사항1. 응답지연이 낮은 일대일 채팅 기능2. 최대 100명까지 참여할 수 있는 그룹 채팅 기능3. 사용자의 접속상태 표시 기능4. 다양한 단말 지원, 하나의 계정으로 여러 단말에 동시 접속 지원5. 푸시 알림 +) 5천만 DAU 처리할 수 있도록 설계  1차 설계 1. 설계 전 고려사항 : 네트워크 통신 프로토콜 결정 - 메시지 요청 시나리오에서는 HTTP 프로토콜 : keep-alive 헤더 사용해서 클라이언트와 서버 사이의 연결을 유지 ㄴ 페이스북 같은 많은 대중적 채팅 프로그램이 초기에 HTTP를 사용함 - 메시지 수신 시나리오에서는 HTTP 프로토콜을 사용하기에는 서버에서 클라이언트로 임의 시점에 메시지를 보낼 때 사용 못하므로, 이때를 위해 다른 기법을 사용한ㄴ 폴링(polling), 롱 ..

[가상면접 사례로 배우는 대규모 시스템 설계 기초] Ch10. 알림 시스템 설계

요구사항- 푸시 알림, SMS 메시지, 이메일 지원해야함 - soft-real-time 시스템 : 가능한 빨리 전달되어야 하지만 시스템에 높은 부하가 걸렸을때 약간의 지연 가능   1차 설계:   알림 전송 시스템에 1개 서버만 제공하는 시스템 문제점 - SPOF(Single-Point-Of-Failure) : 알림 서비스에 서버가 하나밖에 없더서 그 서버에 장애가 생기면 전체 서비스 장애로 이루어짐- 규모 확장성 : 한 대 서비스로 모든 것 처리하므로, 그 안에 데이터베이스나 캐시 등 주요 컴포넌트의 규모를 개별적으로 확장할 수 없음 - 성능 병목 : 모든 것을 한 서버로 처리하면 사용자 트래픽이 몰리는 시간에 시스템 과부하 빠질 수 있음    2차 설계:   데이터베이스, 캐시, 메시지 큐 도입한 알..

반응형