2023/11 92

코루틴 스코프 만들기

코틀린 코루틴을 요약한 내용입니다. CoroutineScope 팩토리 함수 CoroutineScope는 coroutineContext를 유일한 프로퍼티로 가지고 있는 인터페이스 interface CoroutineScope { val coroutineContext: CoroutineContext } CoroutineScope 인터페이스를 구현한 클래스를 만들고 내부에서 코루틴 빌더를 직접 호출 가능 잘 사용되지 않음 cancel, ensureActive 같은 다른 CoroutineScope의 메서드를 직접 호출하면 문제 발생 할 수 있음 class SomeClass: CoroutineScope { override val coroutineContext: CoroutineContext = Job() fun o..

코틀린 스터디 2023.11.24

코루틴 기반 동시성 프로그래밍

코틀린 동시성 프로그래밍을 요약한 내용입니다. 프로세스, 스레드, 코루틴 프로세스 프로세스는 실행 중인 애플리케이션의 인스턴스 프로세스는 상태를 갖고 있다 핸들, 프로세스 ID, 데이터, 네트워크 등의 상태 프로세스 내부의 스레드가 액세스 할 수 있다 애플리케이션은 여러 프로세스로 구성될 수 있다 브러우저 같은 경우 여러 프로세스로 구성 스레드 실행 스레드는 프로세스가 실행할 일련의 명령을 포함 프로세스는 최소한 하나의 스레드를 포함 애플리케이션의 진입정을 실행하기 위해 생성 애플리케이션이 실행되면 main() 함수의 명령 집합이 포함된 메인 스레드가 생성 doWork는 메인 스레드에서 실행되므로 doWork() 종료되면 애플리케이션의 실행이 종료 fun main(args: Array) { doWork(..

코틀린 스터디 2023.11.24

Elasticserch 6.4.3 실행

엘라스틱서치 실행 $ docker pull elasticsearch:6.4.3 $ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --name elasticsearchTest elasticsearch:6.4.3 -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/es/book_backup // 예제 코드 추가 $ docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /Users/chihwan/Downloads/elastic-book-snapshot-master:/usr/share/elastics..

Elasticsearch 8.1.2 실행

Elasticsearch 설치 Docker $ docker pull elasticsearch:8.10.2 $ docker run -p 9200:9200 -p 9300:9300 -v /Users/chihwan/Documents/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name elasticsearch-study elasticsearch:8.10.2 ssl 설정으로 config/elasticsearch.yml 파일 수정 cluster.initial_master_nodes ⇒ docker id cluster.name: "docker-cluster" network.host: 0.0.0.0 #-------..

쿠버네티스로 컨테이너 실행하기

쿠버네티스 입문을 요약한 내용입니다. 3.1 Kubectl 3.1.1 설치 3.1.2 기본 사용법 kubectl [command] [type] [name] [flags] command: 자원에 실행하려는 동작, create, get, delete 등을 사용할 수 있습니다. type: 자원 타입, pod, service, ingress 등을 사용할 수 있습니다. name: 자원 이름 flag: 부가적으로 설정할 옵션을 입력 간단한 에코 서버를 동작시키는 예제 실습 echoserver 라는 이름의 파드를 하나 생성 $ kubectl run echoserver --generator=run-pod/v1 --image="k8s.gcr.id/echoserver:1.10" --port=8080 ## k8s v1.18..

쿠버네티스 설치하기

쿠버네티스 입문을 요약한 내용입니다. 쿠버네티스를 사용하기 전 필요한 쿠버네티스 설치 과정을 다룹니다. 클라우드 서비스의 쿠버네티스 소개, 쿠버네티스 클러스터를 직접 구성하는 방법을 소개합니다. 2.1 설치 없이 쿠버네티스 사용하기 쿠버네티스는 별도로 설치하지 않고 웹 브라우저에서 사용해볼 수 있는 사이트가 있다. 2.1.1 카타코다 쿠버네티스 플레이그라운드 카타코다에서는 마스터 노드가 이미 설정되었고 플레이그라운드에서 제공하는 커맨드라인툴을 이용할 수 있다. 쿠버네티스 커맨드라인 인터페이스인 kubectl관련 명령을 실행할 수 있다. 2.1.2 Play with Kubernetes Play with Kubernetes는 도커에서 제공하는 쿠버네티스 실습용 웹 환경 카타코다와의 차이점은 로 직접 노드를 ..

쿠버네티스 소개

쿠버네티스 입문을 요약한 내용입니다. 쿠버네티스는 컨테이너 오케스트레이션 시스템 세계의 사실상 표준이라고 볼수 있다. 컨테이너 오케스트레이션 시스템에는 도커 스웜, 코어OS 플리트, D2iQ의 DC/OS 등이 있었다. 도커가 스웜뿐만 아니라 쿠버네티스를 지원하기 시작하고 코어OS는 플리트 개발을 종료 했다. 1.1 컨테인너 리눅스는 원래 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉터리로 권한을 제한하는 chroot 등으로 격리 환경을 구성할 수 있었다. 여기에 디스크의 파일 변경 사항을 레이어 형태로 저장하는 파이시스템을 합해 컨테이너라는 개념이 탄생 도커는 위에 기능을 모아서 컨테이너를 손쉽게 사용할 수 있도록 한 것으로 주목을 받았음 countainerd, runc, cri-o 같은..

모듈

모던 자바스크립트 Deep Dive을 요약한 내용입니다. 48.1 모듈의 일반적 의미 모듈이란 애플리케이션을 구성하는 개별적 요소로서 재사용 가능한 코드 조각을 말한다. 모듈은 기능을 기준으로 파일 단위로 분리 모듈은 자신만의 파일 스코프(모듈 스코프)를 가질수 있어야 한다. 모듈은 애플리케이션이나 다른 모듈에 의해 재사용되어야 의미가 있다. 모듈은 공개가 필요한 자산에 한정하여 명시적으로 선택적 공개가 가능하다. export 공개된 모듈의 자산을 사용하는 모듈을 모듈 사용자라 한다. 모듈 사용자는 모듈이 공개한 자산 중 일부 또는 전체를 선택해 자신의 스코프 내로 불러들여 재사용할 수 있다. import

Ajax

모던 자바스크립트 Deep Dive을 요약한 내용입니다. 43.1 Ajax란? Ajax란 자바스크립트를 사용하여 브라우저가 서버에게 비동기 방식으로 데이터를 요청하고, 서버가 응답한 데이터를 수진하여 웹페이지를 동적으로 갱신하는 프로그래밍 방식을 말한다. Ajax는 브라우저에서 제공하는 Web API인 XMLHttpRequest 객체를 기반으로 동작한다. XMLHttpRequest는 HTTP 비동기 통신을 위한 메서드와 프로퍼티를 제공한다. Ajax 이전의 웹페이지는 html 태그로 시작해서 html 태그로 끝나는 완전한 HTML을 서버로부터 전송받아 웹페이지 전체를 처음부터 다시 렌더링하는 방식으로 동작 화면이 전환되면 서버로부터 새로운 HTML을 전송받아 웹페이지 전체를 처음부터 다시 렌더링했다. 단..

비동기 프로그래밍

모던 자바스크립트 Deep Dive을 요약한 내용입니다. 42.1 동기 처리와 비동기 처리 함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성된다. 생성된 함수 실행 컨텍스트는 실행 컨텍스트 스택에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료하면 함수 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거 된다. 자바크립트 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 동시 2개 이상의 함수를 동시에 실행할 수 없다는 것을 의미 “실행중인 실행 컨텍스트”를 제외한 모든 실행 컨텍스트는 모두 실행 대기 중인 태스크들이다. 자바스크립트 엔진은 한번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작한다. 싱글 스레드 방식은 한번에 하나의 태스크만 실행할 수 있기 때문에 처리시..