모음 30

[쿠버네티스 인 액션] 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차 설계:   데이터베이스, 캐시, 메시지 큐 도입한 알..

[가상면접 사례로 배우는 대규모 시스템 설계 기초] Ch7. 분산 시스템을 위한 유일ID 생성기 설계

요구사항- ID는 유일해야 한다.- ID는 숫자로만 구성되어야 한다.- ID는 64비트로 표현될 수 있는 값이어야 한다.- ID는 발급 날짜에 따라 정렬 가능해야 한다.- 초당 10,000개의 ID를 만들 수 있어야 한다.  개략적 설계 - 다중 마스터 복제 (multi-master replication) - UUID (universally unique identifier)- 티켓 서버 (ticket server)- 트위터 스노플레이크 (twitter snowflake) 접근법  다중 마스터 복제 (multi-master replication) :다음 id값을 구할때 k(데이터베이스 서버의 수) 만큼 증가 - 장점 : 규모 확장성 문제를 해결할 수 있다. - 단점ㄴ 여러 데이터 센터에 걸쳐 규모를 늘리기..

[스프링 퀵스타트] chapter2. 프레임워크 개요 (v2023)

2.1.3 자바 기반의 프레임워크 처리 영역프레임워크 PresentationStrutsStruts 프레임워크는 UI Layer에 중점을 두고 개발된 MVC(Model View Controller) 프레임워크이다.Spring(MVC)Struts와 동일하게 MVC 아키텍처를 제공하는 UI Layer 프레임워크이 다. 하지만 Struts처럼 독립된 프레임워크는 아니고 Spring 프레임워크 에 포함되어 있다. BusinessSpring(IoC, AOP)Spring은 컨테이너 성격을 가지는 프레임워크이다. Spring의 IoC와 AOP 모듈을 이용하여 Spring 컨테이너에서 동작하는 엔터프라이즈 비 즈니스 컴포넌트를 개발할 수 있다.PersistenceHibernateorJPAHibernate는 완벽한 ORM..

반응형