2015년 11월 19일 목요일

모바일 애플리케이션 성능향상을 위한 품질관리적용 FAQ

현재 모바일 애플리케이션 사용자들은 과거 형편없던 시절을 뒤로 하고 데스크톱 애플리케이션에 준하는 성능을 기대하고 있습니다 . 모바일 애플리케이션 성능 보장을 위해서는 기능 (functionality), 성능 (performance), 사용성 (usability) 테스트 등의 전통적인 품질관리 프로세스를 적용해야하며 , 이의 적용을 위한 핵심이슈에 대한 질문과 답변을 FAQ 형태로 제공합니다 .

본 원고에서는 FAQ형식을 통해 기업 모바일 개발 프로젝트에 테스트 프로세스를 적용하고, 모바일 애플리케이션 개발에 있어서 흔히 저지를 수 있는 실수를 피하며, 모바일 전략을 세우는 것에 대해 조언합니다.

[품질관리적용 FAQ]
  1. 모바일 애플리케이션 개발 전략을 실행에서 기업들이 직면하게 되는 문제들은 무엇인가 ?
  2. 품질보증 설정측면에서 모바일의 상기 이슈를 해결할 수 있는 방법은 무엇인가 ?
  3. 모바일 애플리케이션 개발 과정에서 모바일 테스팅이 중요한 이유는 무엇인가 ?
  4. 모바일 전략을 개발하고 수립하는 핵심적인 단계들은 무엇인가 ?
  5. 기업 모바일 애플리케이션을 위한 최고의 ROI( 투자대비효과 ) 보장 방법은 무엇인가 ?
  6. 기업 모바일 애플리케이션을 위한 개발 프로젝트에서 발생되는 일반적인 실수들은 무엇인가 ?

2015년 11월 18일 수요일

디자인 패턴 자동화 Part 2

디자인패턴 자동화 프레임 워크

Ⅰ . 디자인 패턴을 자동화하고 강화하기 위한 포괄적 프레임워크

솔루션으로써 동적 언어 , 오픈 컴파일러 (Roslyn 와 같은 ), 혹은 재컴파일러 (Cecil 과 같은 ) 것들은 매우 상세한 구문 트리 (syntex tree) 를 노출하기 때문에 이들을 알기 위해 유혹을 받을 수 있습니다 .
그러나 이러한 기술들은 모든 변형을 이행하는 것을 매우 복잡하게 만들면서 과도한 추상화 수준으로 운영됩니다 .
우리가 필요로 하는 것은 다음과 같은 원칙에 기반을 둔 컴파일러 확장을 위한 상위 수준의 프레임워크입니다 .

1. 일련의 변형 기본 요소의 제공 , 예를 들면
  • 메소드 호출을 차단
  • 메소드 실행 이전 이후 실행 코드
  • 필드 , 속성 , 이벤트로의 접근 차단
  • 기존 클래스에 대한 인터페이스 , 속성 이벤트들의 소개
Ⅱ . 영역지향 프로그래밍
Ⅲ . AOP 의 불리한 면
Ⅳ . PostSharp 라이브러리로 기성품인 디자인 패턴 이행
Ⅴ . 요약

자세히 보기 →

품질관리 및 개발자를 위한 오픈소스 버그추적시스템 10선

버그추적시스템은 개발 중 발생하는 SW 오류 ( 버그 ) 를 추적 / 관리하는 품질관리 지원 시스템의 일종으로 버그추적시스템의 활용은 SW 개발시 매우 유용하며 , 오류와 이슈추적 시스템의 지속적 관리는 역량 있는 SW 개발팀이라는 증거가 될 수 있습니다 . 여기서 소개되는 열 가지 버그추적시스템은 PC 및 웹기반으로 활용될 수 있으며 오픈소스로 개발되어 접근성이 높습니다 .

  1. 버그질라 (Bugzilla)
  2. 맨티스 비티 (Mantis BT)
  3. 트랙 (Trac)
  4. 레드마인 (Redmine)
  5. 오티알에스 (OTRS)
  6. 리퀘스트 트렉커 (Request Tracker)
  7. 이븐툼 (Eventum)
  8. 버그지니 (BugGenie)
  9. 웹이슈스 (WebIssues)
  10. 파슬 (Fossil)

컨테이너 기술에 대한 이해

이제 세상에 나온 지 채 3년이 안 된 ‘컨테이너 기술’에 전세계 개발자들의 이목이 집중되고 있다.  구글을 비롯한 아마존 등의 클라우드 컴퓨팅 기업들이 컨테이너 서비스를 한다고 이미 소리 높여 외치고 있을 정도이다. 뿐만 아니라, 클라우드 운영플랫폼의 표준으로 자리 잡아 가고 있는 오픈소스 클라우드 프로젝트 ‘오픈스택’에서도 차세대 트렌드는 ‘컨테이너’임을 최근 밝힌 바 있다.  이미 알려진 대로, 컨테이너 기술은 소프트웨어 정의 데이터센터 구현을 위한 핵심 기술 중 하나로써 이와 관련해 다양한 기술과 솔루션이 속속 등장하고 있다.

이러한 컨테이너 기술의 개념과 컨테이너 기술을 리드하고 있는 Docker, 다양한 에코시스템들, 그리고 클라우드 서비스 환경에서의 적용 사례들에 대해 한국 레드햇의 김호중 부장으로부터 자세한 설명을 들을 수 있었다.


1. 컨테이너 주요기술 설명
    2. Docker, 에코시스템
      3. 적용 사례 및 방안


      도커  아키텍처


      2015년 11월 17일 화요일

      소프트웨어 생산성 향상 - 원격개발센터 편

      SW개발에서 많은 비용과 노력이 필요함에도 '소프트웨어 개발 프로세스'를 적용하는 이유 중에는 산출물과 코드의 재활용, 품질관리를 통한 개발 생산성 향상이라는 점이 있기 때문이다. 개발 생산성은 다양한 형태로 해석할 수 있는데 인건비 대비 개발 결과물의 규모를 나타내는 것이 일반적이다. 우리나라 소프트웨어 개발자의 인건비가 상승하는 추세이고 개발 기간이 짧아지면서 생산성을 고민하지 않을 수 없다.  

      생산성 향상과 관련하여 우선 원격개발센터에 대해 살펴보자. 최근 들어, 많은 기업에서 도입하고 있는 원격개발센터는 단순 개발 부분에 대해 인건비가 낮은 해외 거주 개발자에게 위탁함으로써 비용 절감과 함께 야간(새벽) 지원도 가능하게 한다. 또한, 핵심 개발자들을 한 곳에 모아 다양한 개발 사이트를 지원하는 것도 원격개발센터의 목적으로 볼 수 있다. 초기에는 일부 대기업에서만 운영되었으나 최근에는 중견 기업에도 확대되는 추세다.
      • 원격개발센터의 배경과 목적
      • 원격개발센터의 구성
      • 원격개발센터에서 필요한 소프트웨어공학적 요소
      • 원격개발센터 사례
      Eyefax에서 제시하는 원격개발센터의 장단점

      구분
      내용
      장점
      - 기존 개발에 비해 40~60%의 비용 절감 효과를 제공
      - 다른 프로젝트 수행 모델에 비해 30%의 비용 절감
      - 매월 고정 비용 지출
      - 지적 재산권 보호
      - 개발 과정을 통합 관리
      - 저 위험, 고수익
      - 일관된 절차에 따라 개발팀을 관리
      단점
      - 1년 365일 지속적인 운영
      - 최소 2명 이상의 팀 멤버 필요

      원포인트 클리닉 Round Table 안내(12/3(목)~4(금)

      중소기업의 SW개발 생산성, 품질향상을 위한 SW공학센터의 원포인트 클리닉 Round Table행사와 다양한 오퍼링 서비스에 여러분을 모십니다.

      본 행사는 국내외 SW전문가를 초빙하여 SW개발 관련 최신 기술 동향을 파악하고, 기업이 직면한 SW품질개선, 생산성제고를 위한 이슈에 대하여, 함께 토의하고, SW공학적용의 해결 방향을 제시하는 국내 최초의 SW공학 전문 Counseling 무료 행사입니다.


      • 일정: 2015.12.03(목)~12.04(금)/2일간
      • 시간: 09:30~17:00(세션별 1시간 30분 이내 진행)
      • 장소: 베스트웨스턴 프리미어 구로호텔 지하 1층 로즈홀
      • 신청: 국내기업(신청방법: 접수처를 통한 일정협의 및 신청서 접수/선착순)


      SDN 분야 소프트웨어 개발 동향

      ‘소프트웨어 정의 네트워크’로 알려진 SDN(Software Defined Networking)이 등장한 지 10년 정도 된다. SDN은 기존 네트워크 장비에서 하드웨어 기능과 소프트웨어 기능을 분리하여 직접 프로그래밍을 지원하는 새로운 네트워크 아키텍처 개념이다. 

      데스크탑과 같은 컴퓨터는 칩이나 운영체제가 바뀌어도 다른 부품을 사용할 수 있지만, 네트워크 장비는 프로토콜이 바뀌면 해당 장비를 모두 바꿔야 한다. 하지만, SDN을  통해 이제 기업은 자신들의 구미에 맞는 네트워크 인프라를 구성할 수 있게 되었다. 

      SDN and the Future of Service Provider Networks,
      Fujitsu network communications Inc., 2013
      SDN 적용시 비용절감과 관리의 편리, 그리고 확장성 등 기존 네트워크 구조에서는 누릴 수 없는 다양한 혜택을 기대할 수 있다.

      • 애플리케이션과 네트워크 인프라 사이의 성능을 높이는 제어 가능
      • 좀 더 신속한 프로비져닝과 정책 기반의 중앙화 
      • 프로그램이 가능한 네트워크 구조 변경과 관리
      • 다른 데이터센터 인프라를 관리하는 오케스트레이션 시스템과 호환
      • 네트워크 운영유지보수 비용과 설비투자비용 절감