IT 도서 리뷰 39

[PART4] 클라우드/데브옵스 - TERMS 05

[ TERMS 05 ] 쿠버네티스1. 쿠버네티스(Kubernetes)의 정의 쿠버네티스는 구글에서 개발한 오픈 소스 기반의 컨테이너 오케스트레이션(Container Orchestration)이다. 'Kubernetes'는 그리스어로 '키잡이''를 뜻한다. 쿠버네티스는 현재 가장 널리 사용되고 있는 오케스트레이션 툴로서, '쿠베르네티스, K8s, 쿠베, 쿠버, 큐브' 등 여러 이름으로 불리고 있다. 2. 쿠버네티스는 어디에서 접하게 될까? 모놀리식(Monolithic)을 마이크로서비스로 나누거나 마이크로서비스 기반 시스템을 처음부터 구축할 때 수많은 서비스만큼 수많은 컨테이너가 생성된다. 이런 분산 시스템에서 정신없이 많은 컨테이넏릉르 능숙하게 관리하는 쿠버네티스를 만날 수 있다. 3. 쿠버네티스 알아..

[PART4] 클라우드/데브옵스 - TERMS 04

[ TERMS 04 ]  도커1. 도커(Docker)의 정의 도커는 컨테이너에서 다양한 서버의 자원들을 원하는 대로 묶어서 손쉽게 실행하고 배포하는 가상화 플랫폼이다.  2. 도커는 어디에서 접하게 될까? 도커는 엔지니어와 개발자들을 위해 사용된다. 예를 들어 A회사가 솔루션 프로그램을 개발하여 여러 회사에 납품하고 있을때 초창기에는 엔지니어가 솔류션에 3~4개의 소프트웨어를 설치해서 납품했다. 그런데 시간이 지날수록 솔루션이 업그레이드되고 지방까지 솔루션을 납품하는 일이 잦아졌다. 엔지니어는 매번 솔루션을 납품할 때마다 8개의 소프트웨어를 설치해야 하고, 납품하는 업체는 많아지는데 설치 시간은 길어진다. 이러한 상황에 도커를 활용한다. 도커는 컨테이너라는 독립된 공간에서 여러 개의 자원들을 원하는 대로..

[PART4] 클라우드/데브옵스 - TERMS 03

[ TERMS 03 ]  데브옵스 1. 데브옵스(DevOps)의 정의  DevOps : 개발(Development)과 운영(Operations)의 합성어 2. 데브옵스는 어디에서 접하게 될까? 클라우드로 인해 코드로 인프라 관리가 가능해 졌고, 운영의 많은 부분이 자동화 되었다. 데브옵스 엔지니어가 구축한 자동화 파이프라인을 통해 지속적인 통합, 배포, 테스팅, 모니터링을 접할 수 있다. 마이크로서비스 아키텍처(MicroService Architecture)에서도 데브옵스를 쉽게 접할 수 있다.  작은 서비스 단위로 구성된 마이크로서비스는 개발과 운영을 하나의 팀에 두고 유기적으로 협력한다. 3. 데브옵스 알아보기>  등장배경 요시바 류타로 외 3인은 변화된 소프트웨어 개발의 특징을 다음과 같이 정리했다..

[PART4] 클라우드/데브옵스 - TERMS 02

[ TERMS 02 ]  GIT1. GIT의 정의 GIT은 리눅스의 아버지라 불리는 리누즈 토발즈(Linus Torvalds)가 리눅스 커널 프로젝트 관리를 위해 개발한 분산 버전 관리 시스템 (DVCS)으로, 파일의 변경 이력을 추적하고 사용자 간의 효율적인 공동 작업을 도와주는 오픈 소스 소프트웨어이다. 여기서 의미하는 파일이란 개발자가 작성하는 프로그래밍 소스코드를 의미한다. 2. GIT은 어떻게 접하게 될까? 여러 개발자가 함께 프로그램을 만드는 프로젝트에서 협업을 할 때 필수적으로 사용되는 툴이다. GIT은 병렬적인 개발을 가능하게 하는 핵심 툴이다. 개인 프로젝트로 개발할 때도 GIT을 이용하면 효율적인 버전 관리가 가능하기 때문에 많은 개발자가 사용하고 있다. 3. GIT 알아보기 작업을 진..

[PART4] 클라우드/데브옵스 - TERMS 01

[ TERMS 01 ]  클라우드 1. 클라우드(Cloud)의 정의 클라우드의 정식 명칭은 'Cloud Computing'이며 인터넷을 통해서 CPU, 메모리, 데이터 스토리지, 네트워크 같은 서비스를 제공하기 위한 컴퓨팅 자원을 제공한다. 구름처럼 내부가 보이지 않고, 서비스 사용자는 복잡한 내부 구조를 알 필요 없이 구름 속의 자원을 사용할 수 있다는 의미를 담고 있다. 2. 클라우드는 어떻게 접하게 될까? 볼 수는 있지만 만질 수는 없는 구름을 가상환경이라 가정하자. 실제로 PC의 메모리, 데이터, 서버들(자원)이 가상환경 즉, 구름 안에 있는 형태가 바로 클라우드이다. 매일 100명의 사용자가 방문하는 작은 쇼핑몰이 존재한다. 이 쇼핑몰에서 공격적인 마케팅을 위해 과감한 세일 행사를  진행한다, ..

[PART3] 데이터베이스/자료구조 - TERMS 06

[ TERMS 06 ]  해시 1. 해시(Hash)의 정의 해시는 데이터를 저장하고 검색할 때 사용하는 자료 구조 중 하나이다. 정확하게는 특정한 함수를 사용하여 추출한 값을 활용하는 것이다. 해당 함수는 해시 함수라 불리며 해시 함수는 입력되는 데이터들끼리 충돌이 발생하지 않게 정리하는 알고리즘이다. 해시 함수의 구현 방법에 따라 사용 용도와 성능이 달라진다. 2. 해시는 어떻게 접하게 될까? 해시는 주로 양이 많은 데이터를 저장하거나 검색할 때, 해시를 암호처럼 활용해서 데이터를 보호할 때 접하게 된다. 메시지 인증 코드, 디지털 서명, 비밀번호 등 암호학, 검색 자료 구조를 다룰 때 접하는데 이는 소프트웨어의 변경을 검출할 때 활용되는 방법이다. 응용 소프트웨어를 배포할 때 파일이 변조되는 경우가 ..

[PART3] 데이터베이스/자료구조 - TERMS 05

[ TERMS 05 ]  스택/큐 1. 스택(Stack)/큐(Queue)의 정의 스택과 큐는 개발할 때 접하는 기본적인 자료 구조이다. 자료 구조는 컴퓨터에서 데이터(자료)를 구성하는 방법이다. 2. 스택/큐는 어디서 접하게 될까? 스택과 큐는 최근 개발자가 치르는 코딩 테스트를 준비할 때 꼭 알아야 하는 개념이다. 선형 자료 구조 유형에서 이 두 가지 개념을 활용한 문제를 많이 풀게 된다. 또한 프로그래밍 언어를 공부할 때 메모리 그림이 자주 나오는데 스택과 큐의 개념을 잘 알고 있어야 프로그래밍 언어의 특징을 이해할 수 있다. 3. 스택/큐 알아보기>  스택개념 위키백과에서는 스택을 '제한적으로 접근할 수 있는 나열 구조'라고 정의했다. 원론적인 개념이 아닌 실제 현실에서의 사례를 활용하여 설명하자면..

[PART3] 데이터베이스/자료구조 - TERMS 04

[ TERMS 04 ]  데이터 마이닝1. 데이터 마이닝(Data mining)의 정의 'mining'은 채굴, 채광이라는 뜻으로 데이터 마이닝은 많은 양의 데이터 중에서 의미가 있거나 유용한 정보를 추출하는 과정을 의미한다. 데이터 마이닝은 전통적인 데이터 분석 방식으로는 찾기 어려운 데이터 내부의 패턴, 연관성, 변화와 규칙 같은 중요한 정보를 발견하고 활용하기 위해 사용한다. 2. 데이터 마이닝은 어디서 접하게 될까? 구글의 '독감 트렌드'서비스, 미국 국세청에서 활용하는 '탈세 방지 시스템', 센서 데이터를 활용한 '지능형 교통 안내 시스템'과 같이 여러 분야의 연구 결과나 다양한 플랫폼에서 데이터 마이닝을 통해 도출한 결과물이나 그에 기반한 서비스를 접할 수 있다. 3. 데이터 마이닝 알아보기>..

[PART3] 데이터베이스/자료구조 - TERMS 03

[ TERMS 03 ]  ERD / UML1. ERD(Entity Relationship Diagram) / UML(Unified Modeling Language)의 정의  ERD는 개체(Entity)들의 관계를 시각적으로 보기 편하게 해 놓은 것이다. 데이터베이스에서 테이블들의 관계를 도식화하여 보여준다. UML은 시각적으로 보여주는 설계 다이어그램이다. 시각적인 모델을 만들어서 서비스의 흐름, 실제 코드에 사용되는 객체들의 구조, 일부 로직을 처리하는 과정등을 보여준다. 2. ERD / UML은 어디서 접하게 될까?  ERD나 UML은 개발할 때 설계도 역할을 하여 개발자들의 이해를 돕는 용도로 사용한다. ERD는 데이터베이스를 설계할 때 각 테이블의 관계를 도식화해서 보여준다. 데이터베이스 내의 테..

[PART3] 데이터베이스/자료구조 - TERMS 02

[ TERMS 02 ]  샤딩1. 샤딩(Sharding)의 정의 샤딩은 데이터베이스 테이블을 조각(조각난 데이터를 샤드라 부름) 내어 각각 새로운 노드에 저장하는 데이터 관리 방법이다. 데이터의 양이 많아 하나의 데이터베이스로는 힘들때 여러 노드에 데이터를 나누어 처리 속도를 향상할 수 있다. 2. 샤딩은 어떻게 접하게 될까? 앱의 유저가 급격히 늘어난다면, 앱에서 서버 용량 문제가 대두될 것이며 이는 결국 사용자들의 경험이 떨어질 것이다. 이러한 상황에서 샤딩은 훌룡한 대안이다. 샤딩은 데이터를 여러 노드에 분산해 두기 때문에 한 장소로 트래픽이 몰리는 것을 방지할 뿐만 아니라 더 많은 양의 정보를 수요할 수 있다. 3. 샤딩 알아보기 샤딩은 수평적 분할(Horizontal partitioning)이라..