최신 포스팅을 보시려면 여기를 클릭하세요.

로드맵: 조정(tailoring)과 활용

들어가며...SW 엔지니어를 위한 역할기반 로드맵(KR-SI-1401)을 공개한 이후로 3000여 다운로드와 다양한 의견이 있었습니다. 출발점 치고는 매우 요란하다는 느낌입니다. 용두사미가 안되었으면 하는 바램입니다.  지난 2월 25일, 국가인적자원개발 컨소시엄에서 주최한 소프트웨어 역량강화 세미나에서 “로드맵 조정(tailoring) 및 활용”이라는 주제로 여러 분들과 함께하는 시간을

JavaScript: 기분좋은 소스코드

JavaScript는 웹 기반의 스크립트 언어로 매우 동적인 특성을 가지고 있습니다. 그래서 JavaScript를 잘 모르고 사용하거나 다른 언어에서 사용하던 방법과 비슷하게 사용하여도 프로그램이 수행되는 경우가 많습니다. 이러한 점은 JavaScript를 매우 쉬운 언어라고 생각하기 쉽고 이름에서 오는 오해 때문에 Java와 비슷하게 생각할 수도 있습니다. 하지만 언어

또 하나의 크로스 플랫폼: Eclipse RAP

소프트웨어는 우리의 생활 속 구석구석까지 스며들어 늘 우리와 함께 하고 있습니다. 메일이나 메신저를 이용하여 친구나 가족들의 안부를 묻기도 하구요. 워드 프로세서나 스프레드 쉬트 같은 소프트웨어로 우리의 일상 업무를 처리하고 있습니다. 이것이 가능한 이유는 다양한 디바이스들이 우리 곁에 있기 때문입니다. 이러한 소프트웨어들은 서비스 또는 애플리케이션

AngularJS: 사용자정의 디렉티브(directive) 이야기

AngularJS에서는 이미 ngBind, ngModel등 built-in된 다양한 디렉티브를 다루고 있으며, 사용자가 AngularJS의 controller나 service를 새롭게 생성하는 것처럼 사용자정의 디렉티브를 마음껏 생성하고 확장 할 수 있습니다.  AngularJS는 템플릿으로 HTML을 지원하기 때문에 사용자정의 디렉티브를 HTML에서 매우 쉽게 적용할 수 있다는 매력을 가지고  있습니다. 이제부터 AngularJS의 디렉티브가 무엇인지,

Java Annotation: 인터페이스 강요로부터 자유를…

작년에 했던 프로젝트에서 Spring Annotation과 JAXB Annotation을 사용한 경험이 있습니다.  Annotation을 이용해서 객체의 속성을 매핑하는데 유용하게 사용했던 기억이 나네요. 하지만 최근에 Annotation에 대해 공부하면서, Java에서 제공하는 Annotation만으로도 효율적으로 사용할 수 있다는 점이 흥미로웠습니다. 그래서 지금부터 제가 공부한 Java Annotation을 효율적으로 활용할 수 있는 한

로드맵: 역할 기반 SW 엔지니어 분류

SW 엔지니어를 위한 로드맵(Roadmap)을 만들려면 SW 엔지니어의 활동 범위와 내용에 따른 분류체계가 필요합니다. 조직마다 서로 다른 분류체계를 가지고 있고, 정부에서 추진하는 분류체계와 현장에서 시행하는 분류체계가 서로 다릅니다. 로드맵을 만들려 할 때, 첫 걸음부터 좌절하는 이유가 바로 분류체계의 다양성 때문입니다. 로드맵을 위한 논의에서

Cross-functional Developer

의사소통의 중요성 1소프트웨어 개발에서 의사소통은 매우 중요합니다. 아래 그림은 개발자라면 한 번쯤은 보았을 것입니다. 개발에 참여하는 여러 이해관계자들이 어떤 의사소통을 하고 있는지를 재미있게 표현합니다. 고객의 요구(requirement)가 어쩌면 이렇게도 다르게 해석될까라고 의아해 할 수도 있습니다. 안타깝게도 소프트웨어 개발 현장에서 이것은 부인할 수 없는

아키텍처 설계: Logback을 활용한 Remote Logging

프로젝트를 진행하며 시스템에서 남기는 로그를 일반적으로 생각하는 로컬 디스크가 아닌 원격지 서버에 남기는 방식을 구현한 사례가 있어 이 경험을 공유하고자 글을 작성하였습니다. 우리가 만드는 소프트웨어는 다양한 로그를 남기고 있습니다. 아마도 99% 이상의 소프트웨어는 어딘가에 로그를 남기고 있을 것이라고 감히 추측해 봅니다. 우리는 눈으로 직접

Ajax를 품은 jQuery

개발자의 길을 선택하면서 Web Page를 드나들 때 남들과는 다른 시선으로 화면을 살펴보는 습관이 생겼습니다. 화면의 내용보다는 신기한 기능을 발견하면 어떻게 동작하는지 예측해보고, 때로는 Source도 열어보기도 하면서 구동하는 원리를 살펴보는 경우가 많아졌습니다. 심지어 화면의 이동 시 화면이 깜빡일 때 Server에서 Data를 조회해서 다시 화면으로 출력하는

정규표현식(Regular Expression)을 소개합니다.

날이 갈수록 개인정보 보호에 관련하여 보안정책을 점진적으로 강화하고 있습니다. 이에 따라 Web에서 회원가입 시 Password 설정을 복잡해진 보안정책에 맞추다 보니 복잡하게 조합해야만 정상적으로 가입을 할 수 있습니다. 이러한 강화된 보안정책 때문에 기존에 사용하던 자신만의 Password를 인위적으로 보안정책에 맞추는 경우가 많을 것입니다. 그러다 보니, 종종

아키텍처 설계: 분산캐시-EhCache+Terracotta Server Array

캐시(Cache)는 미리 만들어진 데이터를 임시로 저장하는 공간입니다. 하드웨어(CPU, 메모리, 디스크 등)부터 운영체제, 응용프로그램에 이르기 까지 다양한 IT 분야에서 캐시 매커니즘을 이용하여 한정된 자원을 효율적으로 관리하고, 성능향상을 목적으로 사용하고 있습니다. 웹 애플리케이션의 Long Tail일반적으로 웹 애플리케이션이 제공하는 기능의 20%가 80%

프로젝트이야기 2: 빅데이터를 이용한 경로탐색정보 분석

산행준비고객사의 글로벌 경로탐색 프로젝트를 마무리 하던 시점에 업무 담당 매니저에게서 새로운 프로젝트를 제안 받았다. 현재 서비스 중인 LBS시스템의 경로탐색 결과정보를 분석하여 통계를 내는 새로운 업무시스템 구축이었다. 경로탐색 품질을 확인하기 위하여 실사 검증팀이 전국을 순회하며 경로탐색을 수행하며 품질 검증을 하던 수작업 업무에서 하루 평균 600백만건이

Javascript : 함수(function) 다시 보기

자바스크립트는 한동안 개발자들의 많은 오해와 편견으로 toy language 취급을 받아 왔습니다. 누구든지 쉽게 배워 간단히 적용할 수 있다는 생각에 깊이 있는 학습이 이뤄지지 않았습니다. 하지만, 현대의 웹 애플리케이션이 시대적 요구와 사용자의 기대로 인해 점점 더 복잡한 대규모 시스템으로 발전해 나가면서 자바스크립트에 대한 관심이 크게

Java reflection과 객체구조탐색

복잡한 구조를 가진 객체에서 문자열을 찾아 치환해야 하는 문제상황을 Java에서 제공하는 리플랙션(reflection) API를 이용하여 해결해 보았습니다. 문제상황고객사인 OO보험은 소프트웨어 품질과 관련된 활동이 비교적 엄격한 편인데, 품질 기준을 통과해야만 운영서버로의 이관이 허용됩니다. 시스템 개발이 마무리 단계에 이를 무렵 시스템의 보안심의를 통과하라는 요청이 왔는데, 지적된

Continuous Delivery를 향한 첫 걸음

소프트웨어 인도의 어려움지난 1년간 대법원의 각 시스템에 대한 유지보수 프로세스를 관리하는 ‘통합운영관리시스템’을 개발하는 프로젝트에 참여하게 되었다. 우리회사의 Vizend 제품을 이용하여 대법원의 유지보수 프로세스를 지원하도록 커스터마이징하는 업무를 진행하였는데 어려움 중 하나는 바로 소프트웨어의 지속적인 인도를 할 수 있도록 지원하는 것이었다. 일반적인 프로젝트에서라면 폭포수와 같은

설계경험: WAS에서 트랜잭션 처리

이번 프로젝트는 대부분의 Process Layer Component에서 다양한 DB 접근하여 데이터를 조회하고, 조회된 DATA을 요구사항에 따라 조합하여 화면에 보여주는 형태의 프로세스 개발이 많은 프로젝트였다. 다양한 DB을 사용하면서, WAS에서의 Transaction은 One Phase Commit만 지원하도록 설정되어 있었다. 따라서 GLOBAL TRANSACTION을 안됨에 SERVICE/PROVIDER LOGIC 중간 중간에 Transaction을

TOP