2015년 9월 9일 수요일

주목해야 할 9가지 오픈소스 빅 데이터 기술

갈수록 많은 기업들이 더욱더 많은 데이터를 축적하며 경쟁력 향상을 위해 축적된 데이터의 레버리지 효과를 꾀합니다. 최근에 이런 빅 데이터 열풍의 중심에는 오픈소스 기술이 핵심요소로 자리 잡고 있음. 여기에서는 주목해야 할 아홉 개의 오픈소스 빅 데이터 기술을 소개합니다.

1. 아파치 하둡(Apache Hadoop)
데이터 집약적 분산형 애플리케이션(data-intensive distributed application)용 오픈소스 소프트웨어 프레임워크인 아파치 하둡1)은 더그 커팅(Doug Cutting)이 작업 중인 오픈소스 웹 검색 엔진인 넛치(Nutch)를 지원할 목적으로 개발한 것임
2. R
오픈소스 프로그래밍 언어이자 통계 계산과 가상화를 지원하는 소프트웨어 환경임
3. 캐스케이딩(Cascading)
하둡을 위한 오픈소스 소프트웨어 추상화 계층(abstraction layer)이며, 사용자들이 JVM 기반 언어를 사용하여 하둡 클러스터들에서 데이터 프로세싱 워크플로를 제작, 실행할 수 있도록 지원함
4. 스크라이브(Scribe)
스크라이브는 페이스북에서 개발한 서버로 2008년부터 릴리스 되어 사용됨
5. 엘라스틱서치(ElasticSearch)
셰이 바논(Shay Banon)이 아파치 루센(Apach Lucene)을 기반으로 개발한 엘라스틱서치는 분산형 레스트풀(RESTful) 오픈소스 검색 서버임
6. 아파치 H베이스(Apache HBase)
구글의 빅테이블을 모델로 하여 자바로 작성된 오픈소스 비 관계 열지향 분산형 데이터베이스(non-relational columnar distributed database)임
7. 아파치 카산드라(Apache Cassandra)
또 다른 NoSQL 데이터 스토어인 아파치 카산드라는 편지함 검색 기능을 강화할 목적으로 페이스북이 개발한 오픈소스 분산형 데이터베이스 관리 시스템임
8. 몽고DB(MongoDB)
더블클릭(DoubleClick)사의 설립자들이 개발한 몽고DB는 인기있는 또 다른 NoSQL 데이터 스토어로 몽고DB는 정형 데이터를 BSON(Binary JSON)이라고 하는 동적 스키마와JSON 같은 문서에 구조화된 데이터를 저장함
9. 아파치 카우치DB(Apache CouchDB)
아파치 카우치DB 또한 오픈소스 NoSQL 데이터 스토어 중 하나이므로 JSON을 이용해 데이터를 저장하고 있으며 자바스크립트를 질의 언어(query language)로, 맵리듀스와 HTTP를 API로 사용하고 있음

2015년 9월 8일 화요일

[SW공학 동영상 5화] 소프트웨어 아키텍처 개론

1. 아키텍처 필요성
  • 아키텍처 개념
  • SW아키텍트가 갖춰야 할 요건

2. 아키텍처 설계방법
  • SW아키텍처 결정요인 - 품질
  • 품질속성 - 종류, 시나리오
  • SW아키텍처 뷰


자세히 보기 →

안드로이드 애플리케이션 테스팅 Part 2

[앱 성능 테스트 : 엔드투엔드 방식과 테스트 ]

안드로이드 앱 성능 테스트에서 각 구성요소별 각기 다른 시나리오를 전부 테스트 하기 위해서는 엔드투엔드 앱 전송 모델이 필요합니다. 이를 통해 안드로이드 앱 개발자는 앱이 최종사용자들이 사용하는 기기에서 어떻게 작동하는지 제대로 이해할 수 있습니다.
이 글에서는 은행 앱을 예시로 활용하여 안드로이드 개발자들이 안드로이드 앱 성능 테스트하는 환경과 시나리오를 살펴보았습니다. 

안드로이드 앱 성능 테스트 구성요소
1. 안드로이드 애플케이션
2. 서버 구성요소
  • 운영체제: Windows Server 2000
  • JDK: 1.6
  • 웹 서버: Apache Tomcat
  • DB 서버: MySQL
3. 네트워크 에뮬레이터
4. Load Generator
5. 안드로이드 기기
6. 성능 모니터
7. 안드로이드 디버그 브릿지(adb: android debug bridge)
8. Dalvik 디버그 모니터 서버(DDMS: Dalvik Debug Monitor Server)

자세히 보기 →

SQL Azure 성능향상을 위한 아키텍쳐 관점에서 고려해야 할 3가지 요소

SQL Azure 애플리케이션이 최상의 성능을 발휘하는 방법을 아키텍쳐 관점에서 살펴봅니다. 샤딩(Sharding)으로 데이터를 작은 단위로 나누어 분산 관리하고, 인덱싱(Indexing)으로 데이터에 색인을 달아 검색 및 읽는 시간을 빠르게 하고, 네트워크 지연시간(Network Latency)을 최소화하기 위해 한번 접속으로 여러 DB 작업을 배치처리, 접속통계를 활용하여 빠른 데이터센터 접속 등의 방법을 제시합니다.

애플리케이션이 최상의 성능을 발휘하기 위해 SQL Azure 개발자가 아키텍쳐 관점에서 고려해야할 다음  사항에 대해 살펴봄.
  • 샤딩 (Sharding)
  • 인덱싱 (Indexing)
  • 지연시간 (Latency) 감소

데이터베이스가 SQL Azure 플랫폼에서 호스트 되면 관리 이슈가 줄고 유지비용도 절감됨.
  • 이용가능성 , 신뢰도 , 확장성이 높아짐
  • 인터넷을 이용하여 어디에서든지 접속할 수 있음
  • Pay-as-you-go( 사용한 만큼 지불 ) 와 bulk pricing( 대량구입가격 ) 이 모두 가능하여 가격 정책이 유연함

2015년 9월 5일 토요일

안드로이드 애플리케이션 테스팅 Part 1

[ SW 품질보증을 위한 테스팅 Overview ]


모바일 앱 개발에서 품질보증 (QA) 의 중요성

모바일 개발팀은 전통적인 소프트웨어 개발팀보다 규모가 훨씬 작아서 테스트를 세심하게 수행하기가 어렵거나 아예 테스팅 자체가 존재하지도 않을 수 있습니다 . 모바일 앱은 기존의 소프트웨어 패키지보다 매우 간단한 기능과 구조를 가지고 있다고 여겨지고 있습니다 . 전형적인 모바일 소프트웨어 개발자의 이미지는 골방에서 편안한 차림에 , 쉬는 시간에는 게임을 하고 있는 것입니다 . 물론 그런 사람들도 일부 있겠지만 요즘 대부분의 안드로이드 개발자는 다른 기술자와 같이 개발실에서 일을 합니다 .

아쉽게도 이러한 선입견 때문에 많은 회사나 개인들이 성공적이 애플리케이션을 시장에 런칭하기 위해 필요한 많은 리소스들을 과소평가하여 쉽게 앱 개발에 뛰어듭니다 . 스마트폰의 처리능력은 불과 몇 년 전의 데스크탑 컴퓨터과 비슷합니다 . 스마트폰 개발자가 ‘ 리소스 제한적인 ’ 환경에서 성공적인 앱을 개발하기 위해서는 리소스를 효율적으로 사용해야 합니다 . 앱은 보호해야할 많은 개인정보에 접근가능하고 네트워크화되어 있습니다 . 그리고 앱이 구동되는 스마트폰 화면은 작지만 터치패드 , 키보드 , 목소리 제어 등 다양한 정보 입력방식을 가지고 있습니다 . 스마트폰은 앱을 실행할 뿐 아니라 전화 , 문자메시지교환 등의 주목적으로도 사용되어서 앱의 실행은 자주 중단되기도 합니다 . 마지막으로 스마트폰의 화면이 작다고 해서 좋은 UI(User Interface) 를 디자인하기 쉽다고 말할 수는 없습니다 . 사실 멋지고 성능 좋은 UI 는 진짜 도전할 과제이며 쉽게 만들 수 있는 것이 아닙니다 .

안드로이드 애플리케이션 테스팅 개요
  • 안드로이드 앱 테스트 방식
  • 안드로이드 앱의 자동화 테스팅
  • 안드로이드 앱의 화이트박스 테스팅을 위한 기본적 셋업
  • 안드로이드 앱의 블랙박스 테스팅을 위한 기본적 셋업
  • 특정 안드로이드 목표기기에 접속할 수 없다면?
  • 알아야 할 기타 다른 테스팅 옵션들

SW프로슈머 평가 대상 3차 모집안내

창업 초기기업들의 SW개발 제품을 사전에 사용 및 평가하여 개선방향을 제시함으로써 제품의 완성도와 고객만족도를 높이고, 나아가 시장에서의 성공적인 연착륙을 지원합니다.


MS 윈도10 관련 SW개발자 유의사항

MS는 최신 윈도 버전인 ‘윈도10’을 출시하고 기존 윈도 사용자 대상으로 윈도10 무료 업그레이드를 7월 29일부터 1년간 실시 중입니다.

* SW동작 중 모든 시스템 메모리와 CPU 명령어에 접근이 허가되는 상태로 커널모드에서 동작 중인 SW에 문제가 생길 경우 시스템 전체가 다운됩니다.

윈도10 인증 관련 유의사항
모든 커널모드를 활용하는 SW들은 반드시 “Windows Hardware Developer Center Dashboard Portal”을 통해 인증을 받아야 사용 가능합니다.
- 윈도10이 출시된 7월 29일로부터 90일이 지난 10월 26일부터 인증을 받은 드라이버만 사용가능하도록 변경될 예정.