도커 Docker 기초 확실히 다지기
이전 개발자를 위한 인프라 기초 총정리 포스트에서 컨테이너와 도커에 대해 간단히 살펴봤습니다. 이해하기 어려운 개념은 아니지만 막상 뭔가를 하려면 막막할 수 있는데요, 이번 포스트에서는 도커의 컴포넌트와 내부 기술을 알아보고 가상 환경을 구축해서 도커를 설치하고 실행해보려고 합니다. 도커 Docker 애플리케이션은 하드웨어, OS, 미들웨어 등 인프라 환경
이전 개발자를 위한 인프라 기초 총정리 포스트에서 컨테이너와 도커에 대해 간단히 살펴봤습니다. 이해하기 어려운 개념은 아니지만 막상 뭔가를 하려면 막막할 수 있는데요, 이번 포스트에서는 도커의 컴포넌트와 내부 기술을 알아보고 가상 환경을 구축해서 도커를 설치하고 실행해보려고 합니다. 도커 Docker 애플리케이션은 하드웨어, OS, 미들웨어 등 인프라 환경
하루 종일 화면을 들여다보며 키보드를 두드리는 개발자에게 빠질 수 없는 것 중 하나가 프로그래밍 폰트(개발용 폰트)입니다. 프로그래밍 폰트는 각 문자의 폭이 일정한 고정폭 글꼴(Monospaced font)을 기반으로 헷갈릴 여지가 있는 글자를 없애도록 설계된 폰트입니다. 아래 그림은 일반 굴림체와 프로그래밍 폰트인 Consolas, D2 Coding 폰트
최근 클라우드 관련 부서로 옮겨 클라우드 관련 업무를 맡게 되었습니다. 그동안 개발은 했어도 인프라 지식은 많지 않은 상황에서 업무를 하다보니 어려운 부분이 있어 인프라 기초를 정리해봅니다. IT Infrastructure IT 인프라란 애플리케이션을 가동시키기 위해 필요한 하드웨어나 OS, 미들웨어, 네트워크 등 시스템의 기반을 말합니다. 시스템의 요구사
2018년 10월 30일자로 스프링 부트 2.1이 공개되었습니다. 어떤 점이 달라졌는지 살펴보겠습니다. 써드파티 라이브러리 업그레이드 스프링부트에서 사용하는 써드파티(third-party) 라이브러리들의 버전이 업그레이드 되었습니다. 안정된(stable) 버전 중에서는 최신 버전이죠. Hibernate 5.3 : ORM Micrometer 1.1 : 애
구글 클라우드 서밋(Google Cloud Summit)은 구글이 우리나라에서 처음으로 진행하는 대규모 클라우드 공식 행사입니다. 지난 번 AWS Summit 2018 Seoul 에서는 AWSome Day 교육에 참가하느라 다양한 세션을 듣지 못해서 이번 행사에 기대가 컸는데요. 구글이 아마존을 따라잡기 위해 어떤 전략을 쓰고 있을지도 궁금했습니다. 저는
모놀리스에서 마이크로서비스로 모놀리식(monolithic) 애플리케이션을 마이크로서비스(microservices) 애플리케이션으로 바꾸고 싶다면 어떻게 하시겠습니까? 처음부터 마이크로서비스 기반으로 다시 작성해야 할까요? 폭파시키고 처음부터 작성해야 할 때는 진짜로 폭파했을 때 뿐이다. Martin Fowler 아닙니다. 처음부터 다시 만드는 일은 너무나
분산 데이터 관리의 어려움 보통 모놀리식(monolithic) 애플리케이션에서는 하나의 관계형 DB(Relational database)를 사용합니다. DB 작업은 트랜잭션(transaction)이라는 단위로 수행이 되는데 RDB의 장점은 트랜잭션이 ACID하도록 만들어줍니다. 원자성(Atomicity): 작업이 완전히 성공하든지 또는 완전히 실패하도록
마이크로서비스 배포 전략 모놀리식 애플리케이션은 통째로 배포되기 때문에 애플리케이션 복사본을 여러 개 실행하는 형식으로 배포합니다. 따라서 N개의 서버에 M개의 애플리케이션 인스턴스가 실행됩니다. 마이크로서비스 배포에 비하면 단순하죠. 마이크로서비스 애플리케이션은 수십에서 수백 개의 서비스로 이루어져 있습니다. 각 서비스는 다양한 언어와 프레임워크로 만들어
서비스 디스커버리 REST API 를 이용해서 다른 서비스를 호출한다고 해봅시다. 요청을 보내기 위해서는 서비스 인스턴스가 있는 곳의 네트워크 정보를 알아야 합니다. IP 주소와 포트 정보가 되겠죠. 물리적 서버에서 돌아가는 경우라면 미리 설정 파일로 빼서 관리할 수 있으므로 큰 문제는 없습니다. 하지만 클라우드에서는 어떨까요? 클라우드에서 인스턴스는 동
함수형 접근 함수형 프로그래밍 언어의 문법을 배우는 것은 쉽습니다. 하지만 함수형으로 생각하는 방법을 익히는 것은 쉽지 않습니다. Java 에서 Scala 나 Clojure 로 바꾸는 것보다 문제에 접근하는 방식을 바꾸는 것이 더 중요합니다. 함수형 프로그래밍은 좀 더 추상화된 레벨에서 코딩할 수 있도록 합니다. 이게 어떤 의미인지 간단한 예제로 살펴보겠습