들어가기 전 이 글은 파이썬 비동기 라이브러리 asyncio 3장을 공부하며 작성한 글입니다. 3.1 퀵 스타트 파이썬 asyncio의 주요 컨트리뷰터 중 하나인 유리 셀리바노프는 다음 이야기를 남겼다. Asyncio는 일곱 가지 기능만 알면 충분하다. (일반적 용도로 가정할 때) asyncio는 많은 기능을 제공하지만 이 기능은 두 가지 사람을 대상으로 각각 만들어졌다고 볼 수 있다. 하나는 asyncio 프레임워크를 개발하는 개발자 관점, 또 다른 하나는 asyncio를 사용하는 개발자 관점이다. 일반적인 용도는 asyncio를 사용하는 최종 사용자 관점을 의미한다. 따라서 7가지 기능 정도만 정확하게 알면 asyncio를 사용할 수 있다. Asyncio를 사용한 Hello World import a..
자바 Primitive Type / Reference Type 데이터 타입은 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려준다. 자바에는 크게 Primitive Type(기본형 타입)과 Reference Type(참조형 타입)이 존재한다. 그렇다면 각 타입은 어떤 차이점을 가지고 있을까? 기본형 타입(Primitive Type) 기본형 타입은 기본값을 가지고 있다. 기본값이 존재하기 때문에 Null이 존재하지 않는다. 기본형 타입은 8가지가 존재한다. 기본형 타입은 실제 값을 스택(Stack) 메모리에 저장한다. 변수의 선언과 동시에 메모리에 생성됨. 컴파일 시점에 담을 수 없는 값을 담으려 하는 경우 컴파일 에러가 발생한다. Null을 넣을 수 없기 때문에 ..
파이썬 : asyncio를 이용한 비동기 프로그래밍의 이해 이번 포스팅에서는 파이썬에서 비동기 프로그래밍을 위해 주로 사용하는 asyncio에 대한 부분을 다뤄보고자 한다. 파이썬 2에서는 적절한 비동기 프로그래밍이 지원되지 않아 gevent 같은 라이브러리를 이용해 비동기 프로그래밍을 했던 것으로 알고 있다. 그렇지만 파이썬 3에서는 제네레이터를 기반으로 한 코루틴이 도입되면서 비동기 프로그래밍을 할 수 있게 되었다. 파이썬은 asyncio 라이브러리를 이용해서 보다 손쉽게 코루틴을 이용해 비동기 프로그래밍을 할 수 있도록 한다. 이번 포스팅에서는 주요하게 사용하는 메서드와 동작 방식이 어떻게 되는지를 살펴보고자 한다. 다른 블로그 글을 공부하고 내부 코드를 이해하며 작성한 글이라 틀린 부분이 존재할 ..
들어가기 전 이 글은 자바의 정석 7장을 공부하고 개인적으로 정리한 글입니다. 1. Java의 상속 상속은 기존의 클래스를 재사용하여 새로운 클래스를 생성하는 작업이다. 상속을 통해서 클래스를 작성하면 적은 양의 코드로 새로운 클래스를 작성할 수 있고, 공통된 코드를 한 곳에서 관리할 수 있다. 아래와 같이 정리해 볼 수 있다. 클래스 간에 부모 - 자식 관계는 있다. 그렇지만 형제 관계는 존재하지 않는다. 부모의 모든 것은 자식에게 상속된다. 하지만 자식에서의 변경점은 부모에게 영향을 미치지 않는다. 부모 클래스의 private인 필드 / 메서드는 자식 클래스에서 사용할 수 없다. 자식 클래스를 생성할 때 부모 클래스가 생성되고, 그것이 자식 클래스에게 포함되어 사용되기 때문이다. 자식 클래스를 통해 ..
Link Link는 두 프로세스를 연결하는 명령어다. 두 프로세스가 연결되면 하나의 프로세스가 예상치 못한 throw, Exception이 발생할 경우 연결된 프로세스도 함께 종료된다. 이 때, Link는 양방향 연결을 의미한다. A가 죽어도 B에 영향을 주고, B가 죽어도 A에 영향을 주는 것을 의미한다. Link는 위와 같은 개념을 가진다. 프로세스끼리 Link를 하게 된다면 오류의 전파가 최대한 빨리 중지된다는 관점에서 유용하다. 함께 일하는 프로세스 중에서 일부에서 오류가 발생했다고 가정해보자. 멀쩡한 프로세스들은 문제가 생긴 프로세스들에게 의존하고 있을 수 있다. 이 때 상황을 해결하기 위한 방법은 멀쩡한 프로세스가 망가진 프로세스에게서 의존성을 최대한 없애는 것이다. 얼랭에서는 link를 이용..