Python의 Global Interpreter Lock(GIL)

2019-05-31

파이썬은 느립니다. 다른 언어들에 비하면 정말 많이 느립니다. 동적 타입 시스템을 사용하며 인터프리터 언어라는 것만으로도 충분히 설명이 가능하지만 파이썬은 느리게 만드는 원인이 하나 더 있습니다. 바로 Global Interpreter Lock(GIL) 때문입니다. 대체 GIL이 무엇이길래 파이썬을 느리게 만들고, Python은 왜 GIL을 사용할까요?

Read More

간단하게 보는 웹 브라우저의 페이지 렌더링 방식

2019-04-22

웹 개발을 할 때 프론트엔드 영역은 기본적으로 HTML, CSS, JavaScript를 사용하여 작성한다. 그런데, 우리가 작성한 코드들이 어떻게 웹 브라우저를 통해 보여지는걸까? 웹 브라우저는 어떤 흐름을 거쳐 우리가 작성한 코드를 화면에 그려주는 것일까?

Read More

GitLab Runner에서 Docker in Docker 사용하기

2019-03-27

GitLab Runner에서 Executor를 Docker로 설정해놓고, CI/CD 파이프라인에서 사용하는 Alpine Linux(혹은 다른 Linux 배포판 이미지) 내에서 Docker를 사용해야 하는 경우가 생겨서 단순하게 해당 Linux 이미지 내에서 Docker를 설치하고 사용하는 방식으로 CI 설정 파일을 작성했는데 Linux 이미지 내에서 Docker daemon이 켜지지 않는 문제가 있었다.

Read More

Alpine Linux에 Docker와 AWS CLI 설치하기

2019-03-22

Alpine Linux는 작고 가볍고 보안을 중시한 리눅스 배포판으로 Docker 이미지가 5MB 정도밖에 되지 않는 것으로 유명하다. 그래서 리눅스 위에서 간단한 작업을 해야할 때 자주 사용하는데, 이번에 CI/CD 파이프라인을 구성하며 GitLab Runner에서 AWS ECR/ECS에 배포를 어떻게 할까 고민하다가 Alpine Linux 이미지에 Docker와 AWS CLI를 설치하여 사용하는 방법을 적용하기로 했다.

Read More