반응형

전체 글 292

[코드팩토리의 플러터 프로그래밍] 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차 설계:   데이터베이스, 캐시, 메시지 큐 도입한 알..

[CocoaPods 설치] use "Software Update" to install updates 해결방법

상황 :cocoapods 설치하다가 아래 commandlinetools에서 넘어가지 않고 있었다.그래서 여기 있던 대로 했더니 sudo rm -rf /Library/Developer/CommandLineTools sudo xcode-select --install 오히려 에러가 발생했다. xcode-select: error: command line tools are already installed, use "Software Update" to install updates  해결방법 : 찾아보니 아래 명령어로 대신 실행하면 된다. sudo softwareupdate --install -a 그러면 이렇게  완료된다.   참고 문서 - macos - command line tools are already i..

개발 2024.05.08

[코드팩토리의 플러터 프로그래밍] 1장. 다트 입문하기

DartPad DartPad dartpad.dev 1. 변수 선언 - var / dynamic - final / const void main() { final DateTime now = DateTime.now(); // 런타임 상수 const DateTime now = DateTime.now(); // 빌드 에러. 빌드 타임 상수 } 2. 컬렉션- Listㄴ add함수 ㄴ where함수 ㄴ reduce함수 ㄴ fold함수 - Map- Setvoid main() { List blackPinkList = ['리사', '지수', '제니', '로제']; Map dictionary = { 'Harry Potter': '해리 포터', 'Ron Weasley': '론 위즐리', 'Herm..

개발 2024.05.06

[코드팩토리의 플러터 프로그래밍] 0장. 개발환경 구축 (플러터 sdk, xcode, cocoapods, xcode, 안드로이드 스튜디오)

플러터 SDK  1. sdk 내려받기https://flutter.dev/get-started/install Choose your development platform to get startedInstall Flutter and get started. Downloads available for Windows, macOS, Linux, and ChromeOS operating systems.docs.flutter.dev 2. macos 클릭해서 다운로드 3. desktop 클릭 4. 상단 download 클릭Make macOS desktop apps | Flutter 5. flutter sdk 다운로드 - 인텔 기반 cpu면 intel processor을 - m으로 시작하는 계열의 cpu면 apple sli..

개발 2024.05.06

[가상면접 사례로 배우는 대규모 시스템 설계 기초] 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(데이터베이스 서버의 수) 만큼 증가 - 장점 : 규모 확장성 문제를 해결할 수 있다. - 단점ㄴ 여러 데이터 센터에 걸쳐 규모를 늘리기..

반응형