이번 포스팅을 시작으로 도커를 처음 시작하는 사람이 알아야 할 내용 및 실습 방법에 대한 포스팅을 해 보려고 한다. 도커란 무엇인가? 도커는 컨테이너형 가상화 기술을 구현하기 위한 상주 어플리케이션과 이 어플리케이션을 조작하기 위한 명령행 도구로 구성되는 프로덕트이다. 어플리케이션 배포에 특화되어 있기 때문에 어플리케이션 개발 및 운영을 컨테이너 중심으로 할 수 있다. 웹 어플리케이션을 개발한다고 가정해 보자. 로컬에 Apache나 Nginx 같은 웹 서버를 구축한다고 생각해 보자. 가상 환경에 운영 환경과 같은 운영 체제를 설치하고 환경 구축 작업을 해야 한다. 이 때 로컬 환경에 도커만 설치하면 몇 줄짜리 구성 파일과 명령어 한 줄로 어플리케이션이나 미들웨어가 이미 갖추어진 테스트용 가상환경(도커 컨..
오늘은 타입스크립트 모듈(modules)에 대해 공부했던 내용을 정리해 보려고 한다. 모듈 모듈은 독립 가능한 기능의 단위이다. 여러 모듈을 결합하면 하나의 프로그램을 만들 수 있는데, 모듈을 사용하면 다음과 같은 장점이 있다. 유지 보수의 용이성 : 중복 코드의 최소화 전역 스코프 오염을 방지 : 이름 공간이 파일 단위로 제한되어 전역 이름 공간을 침범하지 않음 재사용성 향상 : 모듈을 다른 프로젝트에 공유하여 재사용 가능 모듈러 프로그래밍(modular programming)은 프로그램의 설계 기술로 모듈의 분리와 손쉬운 교체를 중심으로 설계한다. 모듈러 프로그래밍은 다음 세 단계를 통해 진행된다. 모듈을 식별함 : 공통 기능이 무엇인지, 다만 설계와 분석만 가지고는 어려움 모듈을 분리해 선언함 : ..
오늘은 동기화를 공부한 내용에 대해서 정리 해 보려고 한다. 프로세스 간 통신 프로세스는 시스템 내에서 독립적으로 실행 되기도 하고, 데이터를 주고받으며 협업하기도 한다. 프로세스가 다른 프로세스와 데이터를 주고받는 프로세스간 통신(IPC)에는 같은 컴퓨터 내에 있는 프로세스 뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다. 프로세스간 통신에는 크게 세 가지가 있다. 프로세스 내부 데이터 통신 하나의 프로세스 내에 2개 이상의 스레드가 존재하는 경우의 통신이다. 프로세스 내부의 스레드는 전역 변수나 파일을 이용하여 데이터를 주고받는다. 전역 변수를 이용한 통신 : 전역 변수를 이용한 통신은 공동으로 관리하는 메모리를 사용하여 데이터를 주고 받는 것이다. 데이터를 보내는 쪽에..
오늘은 여름에 바닷가에서 마시기 좋은 맥주를 소개할까 합니다. 코아 브루어리에서 만든 빅웨이브 골든에일 맥주에요. 기본적으로 표지에서도 알 수 있듯이 더운 여름날 서핑 하고 가볍게 마실 수 있게 만든 맥주입니다. 골든 '에일' 이긴 하나, 빅 웨이브는 라거에 가까운 에일로 보아야 할 것 같아요. 골든 에일은 효모의 특징을 남기지 않고 깔끔하게 발효되는 효모를 사용하고 골든 에일 답게 진한 단 맛과 색을 낼 수 있는 카라멜 맥아의 비율을 줄이며 홉의 쓴 맛 보다는 향이나 고유의 맛에 중점을 둔 도수가 그리 높지 않은(4.4%) 맥주입니다. 과일 향이 살짝 나긴 합니다. 다만 그 정도가 과하지 않아서 맥주를 처음 접하시는 분들도 부담이 없어 보여요. 거품이나 탄산도 막 엄청 감탄이 나올 만큼(?) 많은 건 ..
안녕하세요 데브오웬입니다. 오랜만에 맥주 리뷰 포스팅을 하려고 합니다! ㅋㅋㅋ 오늘 소개할 맥주는 독일의 대표적인 맥주 브랜드인 에딩거의 헤페바이젠 맥주 '에딩거 바이스비어' 입니다! 저는 개인적으로 밀맥주 덕후에요 ㅋㅋㅋ 대표적으로 호가든과 크로넨버그 블랑 매우 좋아합니다. 밀맥주는 독일 남쪽 바이에른에서 유래한 맥주로, 맥주의 원료 함량 중 밀 맥아의 비율이 50% 이상 들어가는 맥주를 말해요. 밀 맥아가 보리 맥아보다 다루기가 힘들어서 맛있게 만들기 더 어려운 맥주라고 합니다. 대표적인 맥주로는 독일의 에딩거, 바이젠슈테판, 파울라너 등과 오스트리아 에델바이스 바이스비어, 벨기에의 호가든과 크로넨버그 블랑 등이 한국에서 유명하지요. 밀맥주는 엷은 색과 부드러운 촉감, 풍부한 맛과 향이 특징입니다. ..
최근에 다시 프랑스어 공부를 시작했다. 예전부터 하고 싶었었는데, 회사 다닐 때는 바빠서 못했던 것이었다. 원래는 나는 작년에 프랑스어 교재 두 권을 구매했었다. Grammaire Progressive du francais Intermediaire 와 Vocabulaire progressif du francais 라는 책이고 CLE 사에서 출판한 전세계적으로 유명한 프랑스어 교재였다. 하지만 이 책들은 프랑스어 원서였고, 프랑스어로 모든 문장이 쓰여져 있었다. 그러다 보니 한 페이지 한 페이지 넘어가는게 사실 쉽지 않았다. 모르는 단어도 많았고 재미가 없었다. 그래서 나는 학원을 다닐까 고민도 해 보았었다. 강남역 쪽에 프랑스어 학원이 많이 있었다. 커리큘럼도 괜찮고 좋은 선생님들도 많았던 것 같다. 하..
지난번 포스팅에 이어서 타입스크립트의 클래스와 인터페이스에 대해서 조금 더 정리해 보려고 한다. ㅎㅎ 오버라이딩(Overriding) 오버라이딩은 부모 클래스에 정의된 메서드를 자식 클래스에서 새로 구현하는 것을 일컫는 개념이다. 부모 클래스에서 오버라이딩을 당하는(?) 메서드를 오버라이든 메서드 라고 하고, 자식 클래스에서 오버라이딩된 메서드를 오버라이딩 메서드라고 했을 때, 오버라이딩이 이루어지기 위해서는 다음 두 가지의 조건을 만족해야 한다. 조건 1. 오버라이든 메서드의 매개변수 타입은 오버라이딩 메서드의 매개변수 타입과 같거나 상위 타입이어야 한다. (단, 오버라이딩 메서드의 매개변수 타입이 Any 이면 예외) 조건2. 오버라이든 메서드의 매개변수 갯수가 오버라이딩 메서드의 매개변수 갯수와 같거..
이번에는 쓰레드에 대해서 공부한 내용을 정리해 보려고 한다. 지난 포스팅에서 프로세스에 대해서 정리를 한 적이 있었다. 프로세스는 스케줄링의 단위로서 실행 단위(Execution unit)이다. 또한 소유하고 있는 자원에 대한 보호(Protection domain) 개념을 가지고 있기도 하다. 지금까지는 하나의 실행 흐름을 가지고 실행중인 프로그램에 대해서만 다루었기 때문에 프로세스만 가지고 설명이 가능했다. 하지만 프로세스의 처리 속도가 점점 빨라져야 할 필요성에 맞추어, 하나의 프로세스가 수행해야 할 여러 작업들을 나누어 수행할 수 있는 설계가 필요해졌고, 이에 생겨난 개념이 쓰레드(Thread)이다. 쓰레드는 프로세스 내의 실행 흐름이다. 이 역시 실행 단위(Execution unit)으로 볼 수 ..