JavaScript 최적화: DOM 핸들링 속도 개선 들어가기 전에 자바스크립트는 오늘날 웹 서비스 개발에서 뗄레야 뗄 수 없는 언어이다. 자바스크립트를 통하여 누구나 손쉽게 문서 객체 모델 *(Document Object Model, 이하 DOM)*을 자유롭게 조작하여 역동적인 웹 페이지를
Hadoop: Maven-assembly로 oozie 배포 구조 만들기 요즘 하둡을 이용하여 대량의 로그 분석을 수행하는 작업을 하고 있다. 최종 목표는 20대 이상의 서버에 발생하는 로그를 실시간으로 수집하여 분석하는 것인데 이를 위해 하둡과 하둡 생태계 내의 다양한 기술 요소들을
경로 탐색과 좌표영역분할 경로 탐색 서비스는 특정 위치의 정보를 제공함으로써 길안내와 같은 여러 가지 실시간 서비스를 제공하는데 이러한 정보를 제공하기 위해서 해당하는 위치의 좌표를 내려 받는다. 이때, 내려 받은 좌표를 가지고 해당 지역을 검색 하기 위해서는 해당하는 지역을 찾아야 한다. 하지만, 일정 범위가 아닌 전 세계를 범위로
Spring Security와 보안, 첫번째 이야기 보안은 설계 요소 중 가장 중요한 부분 중 하나이다. 이러한 보안의 개념을 스프링 시큐리티와 함께 알아보자. 1. 보안의 핵심개념 - "인증과 역할부여" 본격적인 스프링 시큐리티에 대하여 알아보기에 앞서 보안의 개념에 대하여 알아보자. 보안을 이해하는데 중요한 핵심 개념은 두 가지가 있다. 인증이란? 애플리케이션의
LBS에 객체를 입혀보자 LBS(Location Based Service) 기반 데이터란 무엇인가요? LBS(Location Based Service) 기반데이터란 LBS를 고객에게 제공하기 위해서 필요로 하는 데이터를 말합니다. 이 데이터는 모든 LBS의 기초가 되며 어떻게 구성되는지에 따라서 제공할 수 있는 서비스방법과 서비스 품질이 크게 좌우되게 됩니다. 따라서 노하우가 많은 회사일수록 기반데이터를 잘
UI프로토타입: Axure RP로 만드는 스토리보드 Axure RP를 이용한 스토리보드 화면 설계 2013년 뜨거운 여름에 시작한 뜨거운 프로젝트 A를 통해 요구사항 수집부터 개발 단계까지 전체적으로 참여하며 프로젝트라는 것이 어떻게 진행이 되어 나가는지 큰 그림을 알게 되는 좋은 계기가 되었습니다. 그 중 요구사항을 수집, 분석하여 화면 스토리보드를 작성할 때 대부분 사용되는
설계 노하우: UI 컴포넌트 들어가며... UI를 개발해 본 모든 개발자들이 느끼겠지만 UI 개발은 다른 분야의 개발보다 복잡하고 까다롭습니다. 수년간 여러 어플리케이션을 개발하며 이러한 문제를 접하였고 많은 생각을 가지게 되었습니다. UI 분야의 개발이 왜 까다로운지 또한 그 해결방안은 무엇인지에 대해 논하고자 합니다. 이 문제는 최근에 참여한 프로젝트의 예를 들어
아키텍처 설계: 서비스 접근 제어 서비스 접근 제어는 권한을 가진 사용자가 서비스를 사용할 수 있도록 마련한 장치를 말합니다. 이번 글에서는 진행했던 프로젝트에서 이러한 것을 설계하고 구현한 내용을 이야기 해볼까 합니다. 먼저 이 글에서 서비스라 함은 잘~ 정의된 웹 상에서 유일하게 식별되는 자원, 웹 서비스를 말합니다. 프로젝트에서 개발한 시스템은 수십~
Pacemaker를 통한 Clustering (서버 이중화) Clustering이란 두대 이상의 서버가 하나의 서버가 처리하는 것처럼 보이도록 서버들 간의 확립된 연결(Establishing Connectivity) 입니다. 이 클러스터링은 장애 대응 시스템(fail-over), 부하분산(load balance) 시스템 혹은 병렬처리 프로세싱에 사용될 수 있는 기술입니다. 한 예로, 장애 대응 시스템의 클러스터링은 응용프로그램과 서비스의 고가용성(High-Availability)을
Infrastructure as code (AWS CloudFormation) 클라우드 서비스 유형으로 몇가지가 있습니다. IaaS(Infrastructure as a service)는 인프라를 인터넷 서비스로 제공하며 플랫폼을 제공하는 PaaS(Platform as a service)와 소프트웨어를 제공하는 SaaS(Software as a service) 3가지 유형이 대표적입니다. 요즘은 LXC(Linux Container) 기반의 Docker Container 호스팅 서비스를 하는 DaaS(
시작은 부담없이 클라우드(AWS)로... Start-up 인프라를 클라우드로 구성하면 장점이 많습니다. 사업성이 보장되지 않는 상태에서 장비 구매비용(혹은 연단위 임대비용)과 장비 delivery에 대한 시간투자, 장비 관리 시간투자 등의 비용을 많이 절약할 수 있습니다. 이런 이점은 Start-up 기업들이 우선적으로 고려하는 인프라 환경을, 클라우드라는 가상의 환경으로 고려하는 이유이기도 합니다. 그러나
버추얼 머신을 통한 개발 환경 설정 스마트폰이 처음 등장했을 때, 내가 원하는 기능을 제공하는 앱을 검색해서 설치해 사용하고, 더이상 필요가 없으면 바로 없앨 수 있는 기능을 보고, 개발환경도 설치나 설정에 있어서 앱 스토어와 같은 곳에서 필요한 도구나 프로그램을 가져와 사용하도록 갖추어진다면, 정말 편리하고 간편할 것 같다는 생각을 했었습니다. 이러한 상상을
서버룸이 아니라 서버가든(garden)입니다. 서버룸(Server Room)에서 나오는 소음이 신경쓰인다. 그렇다고 서버룸의문을 닫을 수도 없다. 내부 열기가 대단하다. 주말에 혼자 사무실에 있을 때는 서버룸을 닫았다 열었다를 반복하기도 한다. 거대한 랙과 요란한 팬소리는 언뜻 서버의 위엄을 보여주는 듯 하지만, 요즘 시대에는 어울리지 않는 느낌일 뿐이다. 소음, 에너지 낭비,
알고보면 쉬운 웹서비스 웹 서비스를 적용한 애플리케이션을 구축하는 것은 쉽지 않습니다. 그러나 웹서비스의 개념과 구성을 큰 그림으로 이해한다면, 웹서비스를 구축하는 과정이 다르게 느껴질 수 있습니다. 오늘은 그동안 웹서비스를 공부하면서 개운치 않았던 부분들을 긁어드리려 합니다. 알고보면 쉬운 웹서비스에 대해 함께 살펴봅니다. 왜 웹 서비스를 선택할까요? 먼저 왜 웹서비스를
CI (Continuous Integration) 이란? 소프트웨어 개발에서 유지보수로 연결되는 지점은 소스관리/빌드/배포의 활동이 됩니다. 물론, 소스코드 수정이 발생되기는 하지만, 소스관리/빌드/배포의 활동이 주로 발생하기 마련이며, 이는 유지보수 시점에 확실한 절차와 방법을 필요로 합니다. 개발 시점에 이러한 활동을 지원하는 기법 중에 CI (Continuous Integration)가 있으며, 이는 오래
Java: enum의 뿌리를 찾아서... 이번 글에서는 자바 1.5버전부터 새롭게 추가된 열거형 상수인 enum(enumeration)에 대해 알아보겠습니다. 열거형은 서로 연관된 상수들의 집합입니다. 이번 글은 enum 정의와 enum 사용방법, 그리고 enum 활용법을 살펴 봅니다.
헷갈리기 쉬운 “동등비교” 와 “정렬” 입사하여 처음으로 참여하게 된 프로젝트는 보험회사 직원들의 업무 관리 프로그램을 구축하는 것이었습니다. 자바로 개발하는 프로젝트는 처음이여서 어떻게 구현해야하는지에 대한 걱정이 제일 컸습니다. 특히, 새로 구현하는 부분보다 구현되어 있는 부분을 보완하여 만드는 부분이 어려웠습니다. 기존에 구현 되어있는 코드를 보면서 기존 업무를 정확히 분석해야하기 때문입니다. 직접
Spring으로 SOAP기반 CXF 웹서비스 구축하기 오늘은 스프링프레임워크에서 CXF를 이용하여 SOAP기반의 웹서비스를 만드는 과정에 대해 소개합니다. 웹서비스의 전반적인 개요는 포스팅 SOAP 기반 웹서비스 구축하기 [https://www.nextree.co.kr/p2010/] 을 참고하시면 좋습니다. 이 글은 웹서비스 구축에 초점을 맞추었습니다. 웹서비스는 서비스를 처리하는 부분(Service Provider)과 서비스를 요청하고 처리 결과를
SpringMVC에서 Ajax와 JSON 이전에 포스팅한 글에서 언급했듯이 Ajax는 서버와 비동기식으로 (동기식으로도 가능 함) 통신 하는 방법중에 하나입니다. 이번 글에서는 기존 글들과는 조금 다르게 접근하여 통신시 서버에서의 Data 셋팅방법에 대해 알아봅니다. JavaScript(jQuery) 관점의 Ajax는 넥스트리 블로그 JavaScript, jQuery 그리고 Ajax [https://www.nextree.co.kr/p9521/]를
세 가지 DI 컨테이너로 향하는 저녁 산책 애플리케이션 코드를 작성할 때, 특정기능이 필요하면 라이브러리를 호출하여 사용하곤 합니다. 프로그램의 흐름을 제어하는 주체가 애플리케이션 코드인 셈이지요. 하지만 프레임워크(Framework) 기반의 개발에서는 프레임워크 자신이 흐름을 제어하는 주체가 되어, 필요할 때마다 애플리케이션 코드를 호출하여 사용합니다. 프레임워크에서 이 제어권을 가지는 것이 바로 컨테이너(Container)입니다. 객체에
GitHub 시작하기 1. 환경 세팅 1-1. JAVA : 1.7 1-2. Eclipse : Kepler - Eclipse EGit 플러그인 설치 : EGit 플러그인은 이클립스와 Git을 연동시켜줍니다. 이클립스에 EGit플러그인을 설치하는 방법에는 두 가지 방법이 있는데 첫 번째 방법은 Eclipse Marketplace를 이용하는 방법과 다른 방법은 Install New Software를 이용하여 설치하는 방법입니다. [방법1]
새내기 개발자의 JUnit 여행기 이번 글에서는 JUnit 단위 테스트 Framework에 대해 알아봅니다. JUnit은 Java의 단위 테스트에서 빼놓고 이야기하기 어려울 정도로 절대적인 위치를 차지하고 있습니다. 그래서 높은 수준은 아니어도 기본적인 내용은 누구나 알고 있어야 합니다. 이번 글에서는 Eclipse에서 JUnit을 설치하는 방법과 간단한 예제를 통해 JUnit 사용법을 알아봅니다. 1. JUnit이란?
꼭 필요한 리눅스 명령어 여러 프로젝트를 진행하다보면, 리눅스 또는 유닉스를 다룰수 밖에 없는 상황이 오게 마련입니다. 그러한 상황에 직면했을때 매번 웹 검색을 하거나 그나마 몇가지 알고 있는 명령어만 가지고 반복작업을 통해 해결하곤 합니다. 그 간의 경험을 바탕으로 알고나면 단순한 반복 작업을 간단하게 해결 할 수 있는 몇가지 팁을
jQuery: datepicker 사용 사례 datepicker 는 날자 처리를 위하여 많이 사용되고 있습니다. 기존 포스트에 한번 소개된적이 있습니다. 이전에 datepicker 의 여러가지 사용방법을 설명하였다면 이번 포스트에서는 실제 프로젝트에 사용한 방법과 datepicker 와 직접 입력시 사용되는
jQuery : selector를 활용한 그룹표현 표(table)는 데이터를 좀 더 이해하기 쉽고, 보기 좋게 해 주는 역할을 합니다. 하지만, 수십개의 데이터를 보게 된다면, 눈도 아프고, 복잡해 보이게 될 수도 있습니다. 그래서 '동적으로 데이터를