백엔드 24

Private Cloud 구축을 위한 DC/OS 설치

DC/OS 관련돼서 아티클을 연재하고 있습니다. 이번 글에서는 DC/OS 의 설치과정에 꼭 필요한 핵심 정보 및 설치과정에 대해 알려드리도록 하겠습니다.DC/OS는 설치방법은 크게 3가지가 있습니다. 개발용으로 개인PC에 설치하는 방법, Amazon,이나 Azure와 같은 Cloud 기반에 설치하는 방법, 그리고 마지막으로 사내 Private Cloud 환경 구축을 위한 On-premises 설치방법 입니다.현재 DC/OS 버전은 1.10 버전이 최신이며 이번 아티클은 사내 Private Cloud 환경을 구성하는 위한 방법으로 설치해 보도록 하겠습니다. 전체적인 상세 설치 매뉴얼은 아래 URL을 참조하면 됩니다.https://docs.mesosphere.com/1.10/installing/oss/이 아..

백엔드 2018.02.06

Apache Ignite에 대해 알아보자 - (2)설치 및 실행

이전 포스팅에서 개념에 대해 살펴봤으니, 이번 편에서는 실제로 로컬에서 테스트를 해보려고 합니다. Ignite 사이트에 Getting started라는 메뉴에서 Ignite를 돌려볼 수 있는 몇 가지 방법에 대해 설명을 해놓았습니다. 이 포스팅에서는 binary 배포판을 다운받아서 시작하는 방법과 Maven 프로젝트를 생성해 pom 파일에서 dependency를 추가하는 방법을 다루고 있습니다. 1. 설치하기 https://ignite.apache.org/download.cgi 에서 Apache Ignite ZIP 파일을 다운로드 받아 압축을 풀고, 그 경로를 IGNITE_HOME으로 등록합니다. 가이드에는 이 스텝은 선택적(optional)이라고 나와있습니다. 이 과정을 생략하고 진행해본 결과, 디폴트..

백엔드 2017.12.22

Apache Ignite에 대해 알아보자 - (1)개념 이해

Apache Ignite는 인메모리 컴퓨팅 플랫폼(in-memory computing platform)으로 데이터 레이어와 사용자 애플리케이션 레이어 사이에 완벽하게 들어갈 수 있습니다. 기존의 디스크 기반 저장소 레이어로부터 RAM으로 데이터를 로드하여, 최대 6자리수(백만배)까지 성능을 향상시킬 수 있습니다. 클러스터에 노드를 추가하기 만하면 인메모리 데이터 용량(in-memory data capacity)을 쉽게 확장하여 페타 바이트 단위의 데이터를 처리 할 수 있습니다. 또한 기존에 사용하는 데이터베이스를 전면 교체할 필요가 없으며, RDBMS, NoSQL, 하둡 데이터 저장소와 함께 잘 작동합니다. 따라서 대용량 데이터를 높은 성능으로 빠르게 처리해야 하는 시스템에 도입을 고려해볼 수 있습니다...

백엔드 2017.12.13

딥러닝에 대하여 2 - 파이썬 설치 및 기초 활용

딥러닝에 대하여 2 - 파이썬 설치 및 기초 활용 저번 딥러닝 포스트에서 다음화는 활성화 함수에 대해 쓸 것이라고 했는데, 대신 파이썬 설치 및 기초 활용에 대해 쓰려고 합니다. 앞으로 해 볼 예제들이 파이썬 코드이기 때문에 우선 파이썬을 설치하고 기초적 활용은 알아야할 시간이 필요하다고 생각했기 때문입니다. 파이썬을 설치하고 코드를 작성해보기 전에 파이썬이라는 언어에 대한 이야기를 잠깐 해보려합니다. - 파이썬(Python)에 대한 배경 지식 파이썬은 오픈 소스로 배우기 쉬우며 컴파일 과정이 없어 편리하고 빠른 것을 장점으로 내세우고 있습니다. 파이썬은 네덜란드인인 'Guido Van Rossum' 이란 프로그래머가 만든 언어로, Python 1.0이 1994년 1월에 릴리즈되었으니 벌써 20년이 훌쩍..

백엔드 2017.04.03

java Generics && Netty Bootstrap

1public abstract class AbstractBootstrap implements Cloneablecs이번에 Netty의 소스코드를 분석 하는중 만난 한줄의 class 선언부 입니다. 오늘은 이 한줄의 의미를 파악하기 위해 자바의 Generics 에 대해서 이야기 해보고자 합니다. 1. GenericsGenerics는 자바 1.5부터 지원되기 시작한 개념입니다. Generic을 적용하는 가장 큰 이유는 타입을 클래스, 인터페이스, 메소드를 정의할 때 파라미터화 할 수 있다는 것입니다. 메서드 선언에 사용되는 파라미터 형식처럼, 타입 파라미터는 다른 입력값에 대한 동일한 코드 재사용을 할 수 있는 방법을 제시합니다. 또한 Generic을 적용하면 다음과 같은 장점을 가질 수 있습니다.1. com..

백엔드 2017.03.20

딥러닝에 대하여 1 - 딥러닝과 머신러닝, 그리고 신경망 기초 개념

딥러닝에 대하여 1 - 딥러닝과 머신러닝, 그리고 신경망 기초 개념 2017년에 들어서면서, 올 한해 동안 지속적으로 공부하고 알고 싶은 주제를 선택하여 블로그에 연재를 해보자는 계획을 갖게 되었습니다. 계획을 실천하기 위해 고심하여 선택한 주제는 바로 '딥 러닝(deep learning)'입니다. 평소에 업무를 보면서 자연스레 접하기는 힘든 분야이지만, 작년에 뜨거운 관심을 받았던 알파고와 이세돌의 대결 덕분에 머신 러닝과 딥 러닝에 호기심을 갖게 되었습니다. 그렇게까지 알파고가 압승을 하리라고는 생각지도 못해서 저에게는 꽤나 충격이었습니다. 올해는 개인적인 공부와 블로그 연재를 통해 단순한 호기심을 벗어나 이해하고, 딥러닝 기술을 활용한 작은 프로젝트를 하나 만들어 보는 것이 목표입니다. 과연 저는 ..

백엔드 2017.03.06

[JAVA]Composite 패턴과 재귀호출로 파일탐색기 만들기 - 1

[JAVA]Composite 패턴과 재귀호출로 파일탐색기 만들기 - 1 요즘 날씨가 너무 덥습니다. 밤에 잠이 오지 않을 정도인데요, 그래서 저는 요즘 밤마다 책을 보고 있습니다.(!) (책을 읽으면 잠이 잘 온다지요ㅎㅎ) 몇 권 돌려가면서 그날그날 기분에 따라 읽고 싶은 책을 읽고 있는데, 그 중 한 권이 바로 'Java 언어로 배우는 디자인 패턴 입문'입니다. 이 책은 입문용이라서 그런지 디자인 패턴 이해를 돕기위해 예제 코드가 아주 단순화되어있습니다. 그래서 꽤나 술술 읽히는 책입니다. 그 중에 'Composite 패턴'이라는 디자인 패턴을 읽다가 문득 예제 코드를 좀 더 응용시켜보고 싶어졌습니다. 예제 코드는 '컴퓨터 파일 시스템' 구조를 패턴에 적용시킨 것인데, 실제로 java.io 패키지의 F..

백엔드 2016.08.01

Git merge, rebase 이해하기

Git merge, rebase 이해하기. 지난번 포스팅에서 git workspace가 어떤 구조로 이루어져있는지 살펴보았습니다. 또, 서로 다른 branch끼리의 병합에 대해서 살짝 다루었습니다. 다른 형상관리툴들과는 달리 git은 branch를 생성할 때 파일을 복사하는 것이 아니라 파일의 스냅샷만 가지고 생성하기 때문에 자원의 부담없이 branch를 만들어 사용할 수 있습니다. 이러한 장점때문에 git으로 작업을 할 때에는 다양한 용도의 branch를 만들어 사용하는데, 이번 포스팅에서는 이러한 작업에서 필수적인 branch를 병합하는 2가지 방법의 원리와 차이에 대해서 살펴보겠습니다. Merge branch를 병합할 때 가장 많이 쓰이는 기능입니다. 사실 merge와 rebase를 구분하지 않고(..

백엔드 2016.07.29

JAVA exception 처리하기

JAVA exception 처리하기 안녕하세요, cx 사업본부 박토끼입니다. 요즘 일을 하면서 계속 머리속에서 드는 의문이 하나 있었습니다. "예외 처리를 어떻게 해야 잘 처리하는 것일까?" 사실 Java를 처음 배울 때는 exception에 그다지 민감하지 않았습니다. 단순히 '잘못되어서 에러가 나는구나.' 정도의 생각만 했습니다. 그리고 throw 키워드나 try~catch 블럭을 사용하면서도, IDE 툴에서 빨간색 표시로 잘못되었다고 에러가 뜨고 컴파일 자체가 안되니까 해줘야된다는 생각뿐이었습니다. 그리고 일을 시작한 후에도 exception 처리가 왜 필요한지 느끼지 못했습니다. '에러가 나는 것 자체가 문제이니, 에러가 안나게 로직을 완벽히 수정하는 것이 옳다. 그러면 exception 처리는 ..

백엔드 2016.07.01

Git의 내부구조

우리는 협업을 위해 여러지 형상관리 툴들을 사용합니다. 특히 Git은 최근 개발자들 사이에서는 모르는 사람이 없을 정도로 보편화되고 성능이 좋은 협업/형상관리 툴일것입니다. 본 포스팅에서는 이렇게 많이 사용되는 Git이 어떤 내부구조와 모델을 가지고 작동되는지 개략적으로 살펴보도록 하겠습니다.다른 형상관리시스템과 비교한 Git의 특징과 장점은 정리된 많은 글 들이 있으니 이 포스팅에서는 다루지 않고 오직 Git의 내부적 구조에 대해서만 집중하도록 하겠습니다. 따라서 Git의 사용법에 대해 알기를 원하시는 분들에게는 약간 불친절한 글이 될 수 있다는 점 먼저 양해부탁드립니다. 진행하기에 앞서 데모를 위한 Git repository를 임의로 생성하도록 하겠습니다.위와 같이 저장소를 init한 후 README..

백엔드 2016.05.20