CyberImagination BLOG 217

Three.js를 이용한 3D 그래픽 입문기

Three.js 란? The aim of the project is to create an easy to use, lightweight, 3D library. 웹기반의 3D그래픽 표현작업을 간소화 해주는 라이브러리인 Three.js입니다. 주요 브라우저 업체들이 지원하는 웹기반 3D표현기술인 WebGL을 lightweight한 가벼움과 간단한 코드 작성만으로 멋있는 3D 그래픽을 만들 수 있습니다. API 구조의 인터페이스로 구성되어 있어 자바스크립트를 다루시는 분들이라면 익히기 쉽고, 외국에서도 이미 많이 사용하고 있습니다. 물론, IE나 모바일기기 브라우저에서 WebGL이 호환되지 않지만, Three.js에는 WebGL의 결과물을 캔버스나 SVG로 변환하실 수 있어 동일한 모양의 결과물을 확인할 수 ..

프론트엔드 2018.02.08

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

클라우드 환경을 손쉽게 구축하기위한 DC/OS 알아보기

현대 웹개발은 모노리틱(Monolithic) 방식을 넘어 마이크로서비스(Microservice)를 지향하는 방식으로 넘어가고 있습니다. 단일 웹 어플리케이션이 아닌 여러가지의 서비스가 조합된, 어떻게 보면 더 복잡한 아키텍처일 수 있지만 이러한 문제점을 단순화하여 해결하려는 노력들이 있습니다. 다수의 장비 및 다수의 솔루션들이 복잡하고 다양한 커뮤니케이션에 의해 서비스되는 웹서비스의 아키텍처는 기존의 시스템 아키텍처로 커버하기는 어려운 점이 많은 상황입니다. 일반적인 서비스에서 사용되는 모노리틱 어플리케이션의 특징을 우선 알아보도록 하겠습니다. 모노리틱 어플리케이션 특징 - 하나의 ear 또는 war안에 모든 내용이 들어가 있음. - 재사용 가능한 부분은 sharing.jar와 같이 jar영역에 대해서만..

빅데이터 2018.01.12

Node.js 기초부터 튼튼히 (3) 이벤트

Node.js 를 공부하고 있다면 비동기, 이벤트 루프, 단일 Thread 에 대해 많이 들어보셨을겁니다. Node.js 는 기존의 웹 모델의 multi-thread 방식의 문제점을 보완해주는 이벤트 기반의 비동기 방식 프레임워크로 API 실행시, 하나의 Thread로 데이터 반환까지 기다리지 않고 다음 API를 실행시켜주는 뛰어난 처리 성능을 자랑하죠. 기존의 웹 모델이 서버에 요청이 오면 Thread를 생성하여 작업하는 멀티-Thread 방식이지만, 단일한 Thread로 짧은시간에 많은 요청을 처리하기 위해서 Event Callback 방식을 사용합니다. 어떻게 돌아간다는 것이죠? 하나의 Thread에서 이벤트 루프를 돌려, 이벤트가 발생하면 해당 되는 함수를 실행시키기 때문에 단일한 Thread로 ..

프론트엔드 2018.01.08

간략하게 알아보는 추천시스템

이번에는 추천시스템에 대해 간략하게 알아보겠습니다. 추천시스템은 Content-based와 Collaborative Filtering으로 크게 두 가지로 나뉠 수 있습니다.Content-based는 말 그대로 추천하고자 하는 아이템에 대한 정보를 기반으로 추천하는 알고리즘입니다. 영화를 예로 들면 특정 배우 혹은 장르와 같은 아이템의 정보들을 기준으로 추천을 합니다. 많은 사용자의 이용 정보 없이도 충분히 추천이 가능하지만 모델링 방식에 따라 정확도가 많이 달라지고, 비슷한 아이템끼리만 추천이 가능하여 추천 범위가 제한되는 단점이 있습니다.Collaborative Filtering는 위와 같이 영화를 예로 들면 해리포터를 좋아하는 A와 성향이 비슷한 B역시 해리포터를 좋아 할 것이라는 것을 활용한 기법으..

빅데이터 2017.12.29

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

웹 보안, 웹 취약점을 간단한 설정으로 막아보자

이번 주제는 웹 보안에 관련된 내용입니다. 홈페이지에 웹 취약성점검 툴을 돌려 테스트 해본 결과 나온 몇 가지 점들에 대해서 이야기 해볼까 합니다. 지금 여기서 이야기하지 않은 내용들도 많이 있겠지만 간단한 설정만으로 큰 효과를 볼 수 있는 사항에 대해서 진행해 보도록 하겠습니다. 1. 불필요한 Method 지원 첫 번째 목록은 불필요한 Method지원에 관한 내용입니다. HTTP method는 다음과 같은 Method를 지원하고 있습니다. GET 일반적인 요청으로 요청 URI에 모든 요청정보를 포함 하여 전송합니다. POST GET이 URI에모든 요청정보를 포함하였다면 POST는 BODY에 요청정보를 숨겨 전송합니다. PUT POST와 같은 방식으로 전달되지만 BODY의 내용이 실제 URI에 저장됩니다..

유용한 정보 2017.12.15

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

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

백엔드 2017.12.13

[Spark] Streaming에서 DataFrame Tip

이번 시간에는 Spark Streaming을 사용할 때 데이터를 처리하고 모으는 부분에서의 팁을 공개하려고 합니다. Spark Streaming으로 프로그램을 하면 보통 sql을 사용하기 위하여 DataFrame에 많이 넣으실 텐데요. 오늘은 그 부분에 대한 Tip을 공개합니다. 한줄로 팁을 요약하면, "DataFrame에 테이블의 데이터를 유지시키고, 추가 시키자!" 입니다. 보통 Dataframe의 createOrReplaceTempView 함수를 쓰면, 기존의 내용은 날라가고, 현재의 내용만 남게 됩니다. 그걸 방지하고자 다음과 같은 함수를 미리 선언합니다. 사실상 이 함수가 첫번째 핵심입니다. 2개의 DataFrame을 하나로 합쳐줍니다. 그리고 또 하나의 변수가 있습니다. "Broadcast"라..

빅데이터 2017.11.30

Apache Phoenix 활용

Apache Phoenix 활용 Apache Phoenix는 NoSQL의 한 종류인 HBase 위에 관계형 데이터베이스에서 사용하는 SQL layer를 구현한 오픈 소스의 개발 도구입니다. 이번 포스팅에서는 Apache Phoenix의 주요 특징과 Phoenix를 웹서비스 어플리케이션에 적용해 보면서 느꼈던 장점 및 한계점과 활용방안에 대해 알아보겠습니다. 1.1 Apache Phoenix의 특징Phoenix는 우리에게 익숙한 SQL 문법을 사용하여 HBase 데이터에 접근한다는 것과 HBase의 Java 클라이언트 API 대신 표준 JDBC API를 사용한다는 특징을 갖고 있습니다. 이를 통해 테이블 생성, 데이터 삽입, 데이터 쿼리 등의 모든 CRUD 및 DDL 작업을 수행할 수 있습니다. SQL과 ..

빅데이터 2017.11.28