연필

세상에 태어나 글을 배우면서 가장 먼저 손에 쥐게되는 도구가 연필일 것이다. 어릴때에는 연필만 있는줄 알고 사용하다가 나이가 들면서 샤프, 볼펜, 만년필까지 다양한 필기구가 있다라는 것을 알게되었고 다른 필기구에 욕심을 내면서 사용했었다. 그러다가 다시 연필을 쥐었다. 사각사각 소리를 내며 종이 위를 걷는 연필의 소리가 좋게 들리는 것은 갬성인가? 아니면 나이 들었다는 증거인가? 어느 순간부터 나는 여행을 가면 그 나라 혹은 그 지역의 연필을 사게 되었다. 혹은 어느 전시관을 들릴경우 연필을 구매했다. 그렇게 구매한 연필이 보관함을 가득 채우고 있다. 연필의 매력은 무엇일까? 지울수 있다는 점? 나무향? 깍...

더보기

Snowflake, BigQuery, Redshift 비교

빅데이터와 분석은 오늘날 업계의 비즈니스를 발전시키는 근본적인 힘으로 작용되었습니다. 수년 동안 매초 생성되는 데이터의 양은 기하급수적으로 증가했으며, 이로 인해 데이터를 처리하는데 효율적인 클라우드 데이터웨어 하우스 기술이 등장했습니다. 데이터웨어 하우스는 데이터를 효율적으로 활용하여 심층적인 통찰력을 도출하는데 매우 중요합니다. 어떤 데이터웨어 하우스가 내 비즈니스에 적합한가?라는 고민이 생길 것 입니다. 데이타웨어 하우스 아키텍처는 빠르게 변화하고 있습니다. 기업은 기존 On-Premise대신 낮은 초기 비용, 향상된 확장성 및 성능을 갖춘 클라우드 기반 데이터웨어 하우스로 점차 이동하고 있습니다. ...

더보기

Microservice와 Monolith 선택 가이드

우선 이 글을 읽기전에 이전에 작성했던 글을 먼저 읽어 보길 바랍니다. 마이크로 서비스에 대해서 생각해보기 프로젝트를 시작할 때 기술 스택에 대해서 고민을 합니다. 아키텍처 관점에서는 크게 두 가지가 있습니다. 일반적으로 “마이크로서비스” 또는 “모놀리식” 둘 중 하나를 선택을 합니다. 위 두가지 중에 어떤 아키텍처를 선택해야 할까요? 본 글에서는 모놀리식 아키텍처와 마이크로서비스 아키텍처를 선택하는 방법에 대해서 언급하려고 합니다. 모놀리식 아키텍처와 마이크로 서비스 아키텍처 선택하기 두 가지 접근 방식은 고유한 장/단점을 지니고 있습니다. 백엔드 아키텍처를 선택할 때 선택의 자유가 있다는 얘기입니다...

더보기

Service Mesh 아키텍처 스타일 비교

이전 글에서 서비스 메시에 대해서 간략히 언급했었습니다. 서비스 메시가 무엇인지 아직 모르시는 분은 링크 를 통해 읽어보세요. 본 글에서는 서비스 메시의 아키텍처 스타일에 대해서 얘기하고자 합니다. 우리가 이미 알고 있는 방법일 수 도 있습니다. Library 방식: 라이브러리로 필요 기능들이 제공되며, 애플리케이션의 코드 레벨로 사용되어야 합니다. (어찌 보면, 서비스 메시라고 할 순 없지만 서비스 메시를 구현하기 위한 대안? 으로 이해하시면 될 것 같습니다.) Node Agent 방식: Node Agent나 Daemon에 의해서 기능들이 제공됩니다. Sidecar 방식: 컨테이너내에 sideca...

더보기

Service Mesh Architecture (서비스 메시 아키텍처)

마이크로 서비스는 소프트웨어 산업에 많은 영향을 주었습니다. Monolithic에서 마이크로 서비스 아키텍처로 전환하면 독립적으로 더 자주 애플리케이션을 배포 할 수 있습니다. 그러나 마이크로 서비스 아키텍처를 채택하는 것은 분산 시스템을 설계 할 때 발생하는 문제들을 가지고 있고 이 문제를 해결해야 한다는 것을 의미합니다. 분산 컴퓨팅의 오류를 살펴 볼까요? 네트워크는 신뢰할 수 있다. 지연 시간은 0이다. 네트워크 대역폭은 무한하다. 네트워크는 안전하다. Topology는 변하지 않는다. 관리자 한명이 모든 것을 처리한다. 데이터 전달 비용은 0이다. 동종 네트워크이다. 마...

더보기

마이크로 서비스(MSA) 관련 Tool

마이크로 서비스 Tool이라고 표현했지만, 다양한 기술의 모음이라고 생각하면 된다. 이번 글에서는 서로 다른 용도로 사용되는 마이크로 서비스 Tool에 대해서 살펴 볼 것이다. 운영체제 어플리케이션을 만들때에 가장 중요한 요소 중 하나는 적합한 기반을 설정하는 것이고, 결국 어플리케이션은 운영체제를 기반으로 수행되게 된다. Linux는 이런 운영체제중에 하나이며 가장 일반적으로 사용된다. Linux container를 사용하여 실행 환경 및 보안, 네트워킹, 스토리지와 같은 부분을 조절할 수 있다. 프로그래밍 언어 마이크로 서비스의 주요 장점은 다른 언어와 기술을 사용할 수 있다는 점이다. 따라서 개발자는...

더보기

Netflix내의 마이크로서비스가 데이터를 처리하는 방법 (Gutenberg)

마이크로서비스 아키텍처에서는 단일 서비스에서 여러 목적지로 데이터 세트를 전파하는 것이 어려울 수 있다. 여기서 말하는 데이터 세트는 서비스 구성, 배치 작업 결과등의 모든 것을 의미 할 수 있다. 이러한 것들은 시간이 지남에 따라 종종 업데이트되어야 하기도 한다. 예를 들어서 Netflix에서는 수많은 A/B 테스트를 실행하고 있고 이런 테스트는 여러 서비스를 걸쳐서 수행되기에 테스트 담당자는 구성을 즉시 조정할 수 있어야 한다. 그리고 문제 발생시 이전 버전으로 롤백을 해야 한다. 다른 예는 머신 러닝 모델의 결과에 대한 배포이다. 머신 러닝 모델의 결과는 여러 팀에서 사용되지만, 모델을 담당하는 팀이 ...

더보기