Wikipedia에 가장 정리 잘된 것 같아서 번역했다. 물론 대충. 출처는 이 문서는 비지니스에서 발생할 수 있는 업무관리 방식에 대한 것이다. 비지니스에서 마이크로매니지먼트는 관리자가 부하 직원이나 직원의 작업을 면밀히 관찰하고 통제하는 관리 스타일이다. 일반적으로 마이크로매니지먼트는 직장에서 자유를(자기결정권과 책임) 박탈하기 때문에 부정적인 행위로 간주한다.
xz LZMA/LZMA2 압축 알고리즘을 이용해서 파일에 대한 무손실 압축을 수행하는 프로그램이다.xz은 바이트 스트림 기반으로 작동하며 파일정보나 메타데이터등을 관리하지 않는다. 따라서 여러 개의 파일을 묶어서 압축하고 싶다면 .tar .cpio와 같은 툴과 함께 사용해야 한다.메타데이터를 관리하지 않기 때문에 디렉토리를 압축 할 수 없다. 디렉토리를 압축하려고 하면 "xz$ tar -cvf test.tar
나는 항상 우리의 고객이 스트리밍 데이터를 이용하는 것을 보며 놀라곤 한다. 예를들어 기업과 전문가 집단에게 가장 신뢰받는 뉴스기업 중 하나인 Thomson Reuters 의 경우 데이터를 수집하고 분석 및 시각화 하여 사용자 경험의 지속적 개선을 지원하는 솔류션을 구축했다. Hayday, Clash of Clan 및 Boom Beach 같은 게임을 제공하는 소셜 게임 회사인 Supercell은 450억건의 게임 데이터를 실시간으로 처리하는 시스템을 개발했다.
이 문서는 Kafka에 대한 최소한의 경험을 가지고 있는 것으로 가정한다. 아래의 지식이 필요하다. 에 대한 기본 이해 에 대한 기본 이해 컨슈머와 프로듀서 파티션 컨슈머 그룹의 경우 가용 영역 갯수 만큼의 브로커를 만들어야 한다. 테스트하려는 도쿄리전은 3개의 가용 영역으로 구성돼 있으니 최소 사양으로 만들 경우 (kafka실행을 위한 최소 스펙)kafka.m5.large 인스턴스 3개를 실행해야 하므로 상당한 비용이 들어간다. AWS MSK에서 테스트할 kafka 버전은 2.x인데, 2.x는 사용해본적이 없어서 시간이 꽤나 걸릴 것 같은(비용도 그만큼 올라갈 것 같은) 불길한 예감이 들었다.
소프트웨어 엔지니어링에서 CI는 모든 개발자의 작업 사본을 공유하고, 하루에 여러 번(수시로 혹은 짧은 간격으로) 병합하는 프로세스를 말한다. 1991년 Grady Booch가 CI라는 용어를 처음 제안했으나 당시에는 여러 번 통합하는 것을 권유하지는 않았다. XP(eXtreme programming)에서는 하루에 한번이상 통합할 것을 권하고 있다. CI는 "통합의 지옥(integration hell)"라는 문제를 방지하는게 주요 목표다. 빈번한 통합이 CI의 목표를 달성하기 위한 주요 수단 중 하나이지만, CI는 빈번한 통합이상을 지향한다.
zsh를 사용하기로 했다. 대단한 계기가 있는 건 아니다. 맥미니를 구매해서 개발환경 세팅하는 중, 쓸만한 쉘 없냐라고 했더니 누군가 oh my zsh를 써보라고 한게 이유가 됐다. Z shell(Zsh)는 쉘 스크링팅을 위한 command 인터프리터 및 로그인 쉘로 사용 할 수 있는 유닉스(unix)쉘이다. Zsh는 Bouren 쉘의 확장&개선된 쉘로 Bash, ksh 및 tcsh의 기능들도 일부 포함하고 있다. 많은 쉘들이 탭키를 이용해서 명령어를 완성해주는 기능을 가지고 있다. zsh는 한 걸음 더 나아가서 개발자가 명령어 완성을 프로그래밍 할 수 있다.
Consule는 서비스 디스커버리(Service discovery)와 설정을 관리하는 툴이다. Consule는 분산&클라우드 환경에 적응하기 위한 고가용성, 유연한 스케일링, 분산시스템의 특징을 가진다. Consul의 핵심 기능은 아래와 같다. 서비스 디스커버리 Health Checking KV(Key/Value) 저장소(Store) 멀티 데이터센터 대응 Service Segmentation 이 문서는 아래의 순서로 진행한다. 1. 로컬에 설치해서 기본적인 사용방법을 익힌다.
사용가능한 버전 시간복잡도 특정 키에 멤버를 추가 할 수 있다. 멤버를 추가 할 때는 스코어(score)를 설정 할 수 있다. 멤버는 스코어를 기준으로 정렬되서 저장된다. 이미 존재하는 멤버라면 멤버의 스코어가 업데이트되며, 재 정렬된다. 스코어&멤버 쌍으로 저장이 되며, 하나 이상을 설정 할 수 있다.key 가 없다면, 새로운 key가 만들어지고 첫 멤버가 추가된다. 스코어는 부동 소수점 숫자여야 한다.
AWS 상에서 서비스를 구성하다보면, 여러 개의 VPC로 나뉘는 경우가 있다. 그러다 보면 같은 계정의 같은 리전에 있는 다른 VPC 혹은 다른 리전에 있는 VPC와 통신해야 하는 경우가 생긴다. 아예 다른 계정의 VPC와 통신을 해야 할 수도 있다. IGW(인터넷게이트웨이)를 통해서 통신을 할 수 있겠으나 인터넷에 자원이 노출된다는 단점이 있다. 통신해야 할 자원이 프라이빗 서브넷(Private subnet)에 있다면, 통신하기가 더 힘들어진다. VPN을 사용하는 방법도 있기는 하지만 번거로울 뿐더러 추가적인 비용이 들어간다.
모바일 애플리케이션은 포기한지 오래다. Java는 왠지 싫고, iOS 쪽도 별로 관심이 없고. 그냥 언젠가는 지금 알고 있는 HTML, Javascript, CSS 와 같은 웹 기술로 모바일 애플리케이션 개발이 가능해지면 그때 무임승차해야지 하는 자세였다. 그래서 관심을(만) 가지고 있던게 Progress Web App이였다. 그러다가 flutter라는 프레임워크에 대한 이야기를 듣게 됐다. 프레임워크 중 하나라고 생각 할 수 있긴 하겠는데, Dart 언어 기반이라는게 마음에 들었다. Dart는 에서 2018 배우면 안될 언어 중 하나로 당당히 선정되기도 했는데, 사용해야 할 곳이 명확해지면 언어도 살아날 것 같은 느낌이고 무엇보다 코드가 정감이(Go, C 스타일이라서...) 있어서 배워볼만하지 싶다는 생각이 들었다.
30 POSTS HERE
마이크로매니지먼트
Wikipedia에 가장 정리 잘된 것 같아서 번역했다. 물론 대충. 출처는 이 문서는 비지니스에서 발생할 수 있는 업무관리 방식에 대한 것이다. 비지니스에서 마이크로매니지먼트는 관리자가 부하 직원이나 직원의 작업을 면밀히 관찰하고 통제하는 관리 스타일이다. 일반적으로 마이크로매니지먼트는 직장에서 자유를(자기결정권과 책임) 박탈하기 때문에 부정적인 행위로 간주한다.
XZ - 무손실 압축 툴
xz LZMA/LZMA2 압축 알고리즘을 이용해서 파일에 대한 무손실 압축을 수행하는 프로그램이다.xz은 바이트 스트림 기반으로 작동하며 파일정보나 메타데이터등을 관리하지 않는다. 따라서 여러 개의 파일을 묶어서 압축하고 싶다면 .tar .cpio와 같은 툴과 함께 사용해야 한다.메타데이터를 관리하지 않기 때문에 디렉토리를 압축 할 수 없다. 디렉토리를 압축하려고 하면 "xz$ tar -cvf test.tar
Amazon Managed Streaming for Apache Kafka - MSK
나는 항상 우리의 고객이 스트리밍 데이터를 이용하는 것을 보며 놀라곤 한다. 예를들어 기업과 전문가 집단에게 가장 신뢰받는 뉴스기업 중 하나인 Thomson Reuters 의 경우 데이터를 수집하고 분석 및 시각화 하여 사용자 경험의 지속적 개선을 지원하는 솔류션을 구축했다. Hayday, Clash of Clan 및 Boom Beach 같은 게임을 제공하는 소셜 게임 회사인 Supercell은 450억건의 게임 데이터를 실시간으로 처리하는 시스템을 개발했다.
Docker로 Kafka 클러스터 만들기
이 문서는 Kafka에 대한 최소한의 경험을 가지고 있는 것으로 가정한다. 아래의 지식이 필요하다. 에 대한 기본 이해 에 대한 기본 이해 컨슈머와 프로듀서 파티션 컨슈머 그룹의 경우 가용 영역 갯수 만큼의 브로커를 만들어야 한다. 테스트하려는 도쿄리전은 3개의 가용 영역으로 구성돼 있으니 최소 사양으로 만들 경우 (kafka실행을 위한 최소 스펙)kafka.m5.large 인스턴스 3개를 실행해야 하므로 상당한 비용이 들어간다. AWS MSK에서 테스트할 kafka 버전은 2.x인데, 2.x는 사용해본적이 없어서 시간이 꽤나 걸릴 것 같은(비용도 그만큼 올라갈 것 같은) 불길한 예감이 들었다.
Continuous integration
소프트웨어 엔지니어링에서 CI는 모든 개발자의 작업 사본을 공유하고, 하루에 여러 번(수시로 혹은 짧은 간격으로) 병합하는 프로세스를 말한다. 1991년 Grady Booch가 CI라는 용어를 처음 제안했으나 당시에는 여러 번 통합하는 것을 권유하지는 않았다. XP(eXtreme programming)에서는 하루에 한번이상 통합할 것을 권하고 있다. CI는 "통합의 지옥(integration hell)"라는 문제를 방지하는게 주요 목표다. 빈번한 통합이 CI의 목표를 달성하기 위한 주요 수단 중 하나이지만, CI는 빈번한 통합이상을 지향한다.
zsh
zsh를 사용하기로 했다. 대단한 계기가 있는 건 아니다. 맥미니를 구매해서 개발환경 세팅하는 중, 쓸만한 쉘 없냐라고 했더니 누군가 oh my zsh를 써보라고 한게 이유가 됐다. Z shell(Zsh)는 쉘 스크링팅을 위한 command 인터프리터 및 로그인 쉘로 사용 할 수 있는 유닉스(unix)쉘이다. Zsh는 Bouren 쉘의 확장&개선된 쉘로 Bash, ksh 및 tcsh의 기능들도 일부 포함하고 있다. 많은 쉘들이 탭키를 이용해서 명령어를 완성해주는 기능을 가지고 있다. zsh는 한 걸음 더 나아가서 개발자가 명령어 완성을 프로그래밍 할 수 있다.
Consul
Consule는 서비스 디스커버리(Service discovery)와 설정을 관리하는 툴이다. Consule는 분산&클라우드 환경에 적응하기 위한 고가용성, 유연한 스케일링, 분산시스템의 특징을 가진다. Consul의 핵심 기능은 아래와 같다. 서비스 디스커버리 Health Checking KV(Key/Value) 저장소(Store) 멀티 데이터센터 대응 Service Segmentation 이 문서는 아래의 순서로 진행한다. 1. 로컬에 설치해서 기본적인 사용방법을 익힌다.
ZADD - Redis
사용가능한 버전 시간복잡도 특정 키에 멤버를 추가 할 수 있다. 멤버를 추가 할 때는 스코어(score)를 설정 할 수 있다. 멤버는 스코어를 기준으로 정렬되서 저장된다. 이미 존재하는 멤버라면 멤버의 스코어가 업데이트되며, 재 정렬된다. 스코어&멤버 쌍으로 저장이 되며, 하나 이상을 설정 할 수 있다.key 가 없다면, 새로운 key가 만들어지고 첫 멤버가 추가된다. 스코어는 부동 소수점 숫자여야 한다.
AWS VPC Peering
AWS 상에서 서비스를 구성하다보면, 여러 개의 VPC로 나뉘는 경우가 있다. 그러다 보면 같은 계정의 같은 리전에 있는 다른 VPC 혹은 다른 리전에 있는 VPC와 통신해야 하는 경우가 생긴다. 아예 다른 계정의 VPC와 통신을 해야 할 수도 있다. IGW(인터넷게이트웨이)를 통해서 통신을 할 수 있겠으나 인터넷에 자원이 노출된다는 단점이 있다. 통신해야 할 자원이 프라이빗 서브넷(Private subnet)에 있다면, 통신하기가 더 힘들어진다. VPN을 사용하는 방법도 있기는 하지만 번거로울 뿐더러 추가적인 비용이 들어간다.
flutter 시작하기
모바일 애플리케이션은 포기한지 오래다. Java는 왠지 싫고, iOS 쪽도 별로 관심이 없고. 그냥 언젠가는 지금 알고 있는 HTML, Javascript, CSS 와 같은 웹 기술로 모바일 애플리케이션 개발이 가능해지면 그때 무임승차해야지 하는 자세였다. 그래서 관심을(만) 가지고 있던게 Progress Web App이였다. 그러다가 flutter라는 프레임워크에 대한 이야기를 듣게 됐다. 프레임워크 중 하나라고 생각 할 수 있긴 하겠는데, Dart 언어 기반이라는게 마음에 들었다. Dart는 에서 2018 배우면 안될 언어 중 하나로 당당히 선정되기도 했는데, 사용해야 할 곳이 명확해지면 언어도 살아날 것 같은 느낌이고 무엇보다 코드가 정감이(Go, C 스타일이라서...) 있어서 배워볼만하지 싶다는 생각이 들었다.