본문 바로가기

프로그래밍

(93)
[SwiftUI] UIViewRepresentable 란 무엇인가? 서론 SecretTalk의 친구목록, 대화목록을 구현하기 위해 UITableView의 기능이 필요하다. 이는 SwiftUI에서는 구현되지 않았기 때문에 SwiftUI에서 UIKit을 사용하기 위한 방법을 찾다가 UIViewRepresentable 이라는 기능을 발견했다. UIViewRepresentable 이란? View를 SwiftUI View 계층 구조에 통합하는데 사용하는 UIKit View 래퍼이다. 구조 protocol UIViewRepresentable : View where Self.Body == NeverProtocol 형식이다. 개요 UIViewRepresentable 인스턴스를 사용하면 SwiftUI 인터페이스에서 UIView 객체를 생성 및 관리할 수 있다. 앱의 커스텀 인스턴스 중 ..
[스프링 핵심 원리] IoC, DI, 그리고 컨테이너 제어의 역전 IoC(Inversion of Control) 기존 프로그램은 클라이언트 구현 객체가 스스로 필요한 서버 구현 객체를 생성하고, 연결하고, 실행했다. 한마디로 구현 객체가 프로그램의 제어 흐름을 스스로 조종했다. 개발자 입장에서는 자연스러운 흐름이다. 반면에 AppConfig가 등장한 이후에 구현 객체는 자신의 로직을 실행하는 역할만 담당한다. 프로그램의 제어 흐름은 이제 AppConfig가 가져간다. 예를 들어서 OrderServiceImpl 은 필요한 인터페이스들을 호출하지만 어떤 구현 객체들이 실행될지 모른다. 프로그램에 대한 제어 흐름에 대한 권한은 모두 AppConfig가 가지고 있다. 심지어 OrderServiceImpl도 AppConfig가 생성한다. 그리고 AppConfig는 ..
AWS SAA - Amazon S3 AWS에서 가장 중요한 구성 요소 중 하나 "무한히 확장 가능한" 스토리지 크기를 사전에 프로비저닝 할 필요가 없으며 무한히 확장 가능하다. Bucket S3는 객체를 저장하게 해주는 시스템이자 서비스이다. 파일이 버킷(디렉토리)에 있고 각 버킷은 고유한 이름을 갖는다. 이미 사용 중인 버킷의 이름은 만들 수 없다. 버킷은 region 수준에서 정의된다. S3는 전역 서비스이지만 버킷은 리전 리소스이다. 명명 규칙 버킷 이름은 3자(최소)에서 63자(최대) 사이여야 한다. 버킷 이름은 소문자, 숫자, 점(.) 및 하이픈(-)으로만 구성될 수 있다. 버킷 이름은 문자 또는 숫자로 시작하고 끝나야 한다. 버킷 이름은 IP 주소 형식(예: 192.168.5.4)을 사용하면 안된다. 버킷 이름은 접두사 xn--..
AWS SAA - Amazon Route 53 DNS Domain Name System으로 사람에게 친숙한 호스트 이름을 대상 서버 IP 주소로 번역해준다. DNS는 인터넷의 중추로 URL과 호스트 이름을 IP로 변환하는 것이다. DNS는 계층적 이름 구조를 가지고 있다. www.google.com .com www.example.com / api.example.com DNS 관련 용어 Domain Registrar 도메인 이름을 등록하는 곳 Amazon Route 53, GoDaddy 등등 DNS Records A, AAAA, CNAME, NS 등 Zone File 모든 DNS 레코드를 포함한다. 호스트 이름과 IP 또는 주소를 일치시키는 방법이다. Name Server DNS 쿼리를 실제로 해결하는 서버 Top Level Domain(TLD) .c..
AWS SAA - Amazon ElastiCache RDS와 동일한 방식으로 관계형 데이터베이스를 관리할 수 있다. ElastiCache는 Redis, Memcached와 같은 캐시 기술을 관리할 수 있도록 한다. 캐시는 높은 성능과 낮은 지연 시간을 가진 인-메모리 데이터베이스이다. 일기 집약적인 워크로드의 부하를 줄이는데 도움이 된다. 일반적인 쿼리가 캐시되어 데이터베이스가 매번 쿼리 되지 않는 것이며 캐시는 이러한 쿼리의 결과를 검색할 때 사용할 수 있다. 애플리케이션의 상태를 ElastiCache에 저장해 애플리케이션을 stateless 상태로 만들 수 있다. RDS와 같은 장점을 갖기 때문에 AWS는 운영체제의 유지 관리 / 패치, 최적화, 설정, 구성, 모니터링, 장애 회복, 백업을 수행한다. ElastiCache를 사용할 때 애플리케이션에 관..
AWS SAA - Amazon Aurora Amazon Aurora Aurora는 AWS의 사유 기술이다. (오픈 소스가 아니다.) 오로라 DB에는 호환 드라이버가 있어 Postgres, MySQL과 호환이 된다. 오로라는 AWS Cloud 환경에 최적화 되어있다. RDS의 MySQL보다 5배 이상 향상된 성능을 가지고 있다. RDS의 Postgres보다 3배 이상 향상된 성능을 가지고 있다. 오로라 스토리지는 자동으로 늘어난다. 10GB로 시작해서 128TB까지 늘어난다. 오로라는 Replicas를 15개까지 가질 수 있다. MySQL은 5개까지 가질 수 있다. 복제하는 속도도 훨씬 빠르다. 오로라는 장애 조치가 즉각적이다. 클라우드 네이티브라서 가용성이 높기 때문이다. MySQL RDS의 다중 AZ에서 장애 조치보다 속도가 훨씬 빠르다. 오로..
AWS SAA - Amazon RDS RDS는 Relational Database Service(관계형 데이터베이스 서비스)를 나타낸다. SQL을 쿼리 언어로 사용하는 데이터베이스를 위한 관리형 데이터베이스를 말한다. SQL은 데이터베이스 쿼리를 위한 구조적 언어이다. SQL을 이용해 클라우드에 데이터베이스를 생성할 수 있다. AWS에서 관리하는 데이터베이스 엔진 Postgres MySQL MariaDB Oracle Microsoft SQL Server Aurora (AWS Proprietary database) 인스턴스 상에 자체 데이터베이스 서비스를 배포하지 않고 RDS를 사용하는 이유 RDS는 관리형 서비스이다. 데이터베이스의 프로비저닝은 완전히 자동화 되어있고, 기본 OS 패치 또한 자동으로 이루어진다. 지속적인 백업이 수행되며 특정..
[KOCW] 반효경 운영체제 강의 정리 - 6. Process Synchronization 4(Concurrency Control) Dining Philosophers Example(Monitor) 출처 : http://www.kocw.net/home/cview.do?lid=3860d0b9372331de