한국리눅스유저그룹 - LUG KOREA 토크박스/가입인사 | SW/HW 사용기 | LUG 위키 | wiki 영어공부 | 사이트맵 | 즐겨찾기 | Home
[메일링리스트] - Slashdot | Kernel News | GNOME | KDE | linux.kernel | C++ | wxWidgets | Java | Python | Android
구인/서버,개발자 | 장터 | 리눅스 QA | JSP & JAVA 입문 | 쉘 스크립트 입문 [오타]| gcc/C++ 입문 | CentOS 리눅스구축관리실무 [오타], [찾아보기]
공지 사항 : 유익한 문서/글 자료실 : 보안 : 임베디드 : 안드로이드 : 회원 랭킹 : 한국LUG 소개
2024년 3월 29일 금요일
현재접속자 : 75 (0)
보안 LOGIN :  자동 [ID/PASS 찾기]
총 회원: 20,028명
Today Join: 0명
지역 모임 게시판 : [대구지역] , [서울지역]

[보안로그인 인증서설치]
[회원 이메일 재인증하기]

MY IP : 34.203.221.104





[사이트내 검색]
  ◆ Translation
[ Foreigner Join ]

[ Korean to English ]

[ Korean to Japanese ]

  ◆ 유용한 문서 읽기
  • 리눅스 관련문서
  • 리눅스 맨페이지 검색
  • 리눅스 커널 소스
  • C/C++ Reference
  • C Programing
  • C Socket Programing
  • UNIX IPC
  • Automake/Autotools
  • Python Document
  • wxWidgets Document
  • PHP Document
  • JDK5 API Document
  • JDK6 API Document
  • J2EE API Document
  • JSTL 1.1 Reference
  • MySQL Reference
  • Iptables Tutorial
  • Bash Scripting Guide
  • Android Reference
  • Web Programming
  • JQuery Tutorials
  • node.js guide
  • node.js docs
  •   ◆ LUG 세미나 자료
      ◆ 개발자 게시판 링크
      ◆ 전체 최근게시물
    [ 100일 베스트 100 게시물 ]
    [ 전체 베스트 100 게시물 ]
    * [코][CentOS 리눅스 …
    * [코][CentOS 리눅스 …
    * 가입인사요
    * bacula 백업 서비…
    * 안녕하세요
    * [코]가입인사 드립…
    * [코]debian 원격 CPU …
    * [코]debian 원격 CPU …
    * [코]debian 원격 CPU …
    * [코]debian 원격 CPU …
    * [코]debian 원격 CPU …
    * [코]debian 원격 CPU …
    * debian 원격 CPU …
    * 가입인사 드립…
    * [초대] 아시아 …
      ◆ LUG 회원 동지분들

  • 총회원 : 20,028명

  • 최근 7일간 가입자 : 0명

  • 박원진[경기][10-08]
    권수혁[서울][10-06]
    임호진[서울][10-02]
    손주민[KR][10-01]
    Elliot[KR][09-30]
    김태욱[충남][09-28]
    최선길[서울][09-26]
    조규선[서울][09-26]
    임형규[경북][09-25]
    윤태준[서울][09-24]
      ◆ Recommend Book
    리눅스 입문, 서버운영, 개발입문을 하실분들은 아래 도서를 탐독하시기 바랍니다.

    [ 저자 : 김태용 ]
    1. CentOS 리눅스구축관리실무[출간]
  • [관련자료 링크]
  • [찾아보기(색인)]

    2. 김태용의 gcc와 C++ 기초 입문::gcc로 공부하는 C++ programming과 wxWidgets GUI 개발[출간]
    3. 김태용의 쉘 스크립트 프로그래밍 입문[출간]
    4. 김태용의 JSP 웹 프로그래밍 입문[출간. 2011.01]

  •   ◆ Sponsor
    DNS Powered by DNSEver.com
      ◆ OS, Office 다운로드
    [Download - x86, 32bit]
    CentOS 5.0 커널 업데이트
    * Android Platform
    Linux + Dalvik vm
    * CentOS 5.6
    DVD 넷인스톨시디
    * Fedora 8
    DVD, 라이브시디
    * Fedora 12
    DVD, 라이브시디
    * Fedora 이전버전
    * Ubuntu 9.10 CD
    CD, Kubuntu 9.10
    * VirtualBox
    All Platform
    * 오픈오피스 3.X
    다운로드 사이트
    * Code::Blocks(GCC)
    Code::Blocks 다운로드
    * CodeLite(GCC)
    CodeLite 다운로드
    * 이클립스
    이클립스 다운로드
    * Windows Text Editor
    PsPad
    notepad++
    Komodo Editor, AcroEditor
    * 윈도우용 한글 Putty
    한글 Putty 0.60.h

    [ 한국LUG 소개 ]
    [ Administrator Contact ]
    리눅스용 네이트온 다운로드
      ◆ LUG 접속자 수(IP 수)

    최근 방문자 IP수

    272
    905
    850
    556
    568
    612
    24 25 26 27 28 29
    최대 : 15,320
    전체 : 4,216,583




    Will be Prosumer's Revolution and Technical Revolution in the Future!
    Linux User/Developer is also Windows User/Developer... Cross Platform Engineer...

    "21C 공학인을 대통령, 국회의원으로 만들자!"
    "더욱 더 많은 동지분들이 공학제국 건설에 동참할 수 있도록 널리 알려주세요~" [ F = m * a ]
    과학기술/공학인이 대한민국 국회 의석의 50% 이상을 확보하는 그날을 위하여~ ^___^

  • 한국리눅스유저그룹은 공학인들의 커뮤니티입니다.(http://www.lug.or.kr)
  • 로그인하면 100포인트씩 추가됩니다(1일 1회).
  • 질문을 하기전에 먼저 문서를 검색해서 읽어봅시다! (RTFM : Read The Fine Manual)
  • LUG 동지 여러분께서는 자신이 알고 있는 작은 지식이라도 주저하지 말고 지금 당장 포스팅하시기 바랍니다.
  • 개인게시판 Home ▶ [우성창] 개인 게시판
    [본문 프린트하기]
      [스크랩] 강은성-좋은 소프트웨어를 개발하기 위하여(1)
      글쓴이 : 우성창     날짜 : 08-05-10 13:20     조회 : 5163    
      태그 : 태그 없음
    한두 명의 뛰어난 개발자가 제품 개발에서 결정적인 역할을 해 내는 하드웨어 개발과는 달리 소프트웨어 제품(패키지)이나 소프트웨어 서비스, 웹 기반 서비스, 소프트웨어가 제품의 핵심 요소인 보안 어플라이언스, 휴대폰과 같은 각종 임베디드 시스템 등의 소프트웨어 개발에서 많은 인력이 협업을 통해 높은 품질의 소프트웨어를 개발하는 것은 결코 쉬운 일이 아니다.

    특히 지식 산업의 특성을 갖고 있는 소프트웨어 산업은, 독특한 개성을 가진 여러 개발자들이 함께 일해서 훌륭한 성과를 내기 위해서는 개발 회사가 무엇보다도 개발 프로세스와 개발 시스템, 개발 문화를 갖춰야 한다.

    먼저 개발 프로세스부터 살펴 보자. 소프트웨어 개발 프로세스란 용어를 들으면 우리는 쉽사리 카네기멜론대학에서 개발한 CMMI(Capability Maturity Model Integration, 능력성숙통합모델)나 ISO에서 제정한 SPICE(Software Process Improvement and Capability dEtermination, 프로세스 개선과 능력 결정)를 떠 올리게 된다. 그러한 프로세스들이 좋긴 하지만, 해당 인증이 필요한 회사가 아니라면 굳이 꼭 그런 방식을 고집할 필요는 없다.

    각 회사들이 나름대로 개발 프로세스를 수립할 수 있고, 이미 몇몇 회사에서 훌륭한 사례를 갖고 있다. 소프트웨어 패키지 회사로는 마이크로소프트의 것이 많이 알려져 있고, 임베디드 시스템 분야에서는 삼성전자나 엘지전자가 잘 갖추고 있는 것으로 알고 있다. 안철수연구소도 자체 개발 프로세스를 확립하여 운영한 지 4년이 넘었다.

    개발 프로세스를 갖추는 장점은 무엇보다도 몇몇 개인의 뛰어난 역량에 전적으로 의존하지 않으면서 제품을 개발할 수 있다는 점이다. 담당 개발자가 퇴직해서 제품이 업그레이드 하기 어렵다고 한다면 그것은 제품을 개발하는 회사로서는 치명적인 일이다.

    실제로 벤처기업들이 이러한 경험을 하는 경우가 종종 있다. 개발 프로세스에 따라 개발을 하면, 요구명세서나 설계서, 코딩 규약과 코드 리뷰에 따라 문서와 소스 코드가 작성되고 공유되면서 개발이 진행되기 때문에 특정인에 대한 제품의 의존도를 크게 줄일 수 있고, 전사적인 역량으로 제품을 개발할 수 있게 된다.

    개발 단계별로 품질을 관리하면서 발생할 수 있는 버그를 크게 줄일 수 있다는 점도 큰 장점이다. 코딩이 끝난 뒤에 테스트를 통해 버그를 발견, 수정하거나 출시된 뒤에 버그를 고치려면 많은 시간과 노력이 드는 데 비해, 요구 분석 단계나 설계 단계에서 올바로 분석, 설계를 하면 버그를 발생시키지 않을 수 있고, 문제를 사전에 발견하기 때문에 고치는 비용이 크게 줄어든다. 요구분석 단계에서부터 품질 관리(QA) 엔지니어들이나 UI 디자이너, 기술문서 작성자(Technical Writer) 등이 개발자들과 함께 작업을 하면, 제품의 품질도 상당히 높일 수 있다.
    또한 개발 프로세스가 있으면 제품기획을 할 때부터 제품의 출시 때까지 해야 할 일들을 미리 알 수 있고, 각 프로세스 별로 걸리는 대체적인 일정이나 인력 규모를 산정할 수 있어서 제품 개발 과정 전체와 인력을 적절하게 관리할 수 있다. 또한 개발자 역시 자신이 지금 할 일과 다음에 할 일들을 충분히 인지하면서 개발을 진행할 수 있는 것도 좋은 점이다.

    개발 프로세스가 있을 때 단점으로 흔히 지적되는 것은 그것이 없을 때보다 개발 기간이나 인력이 많이 든다는 점이다. 프로세스를 수립하는 것은 분업을 바탕으로 협업을 하기 위한 것인데, 해당 프로세스 담당자들은 자신의 전문 분야별로 계속 하고 있는 일이 있기 때문에 특정한 일로 인해 일정 변경이 쉽지 않고, 연관된 프로세스 담당자들 사이에 의사소통이 필요하기 때문에 한두 명의 뛰어난 엔지니어들이 자신의 전 생활을 바쳐 전체 프로세스를 담당할 때보다 일정이 늦어진다. 하지만 일정을 어느 정도 앞당기는 것보다 더욱 중요한 것이 제품의 품질이라고 본다면, 사전 준비와 체계적인 개발을 통해 극복해야 할 점으로 보는 것이 타당할 것이다.

    한 가지 유의해야 할 점은 개발 프로세스는 구축하는 것도 매우 중요하지만, 회사나 제품의 변화를 반영하여 지속적으로 개선되어야 한다는 점이다. 기술 개발을 위해 파일럿 프로젝트를 하거나 제품의 유지보수를 위해 핫픽스를 낼 때와 같이 품질보다 속도가 더 중요한 프로젝트가 있다면 좀더 간단한 프로세스를 만들어 적용하는 등 유연성을 갖출 필요도 있겠다.

    ◆개발 문화로 발전해야

    둘째로 이러한 프로세스를 잘 구축하는 것과 함께 시스템을 갖추는 일이 필요하다. 프로세스가 아무리 잘 수립되어 있다 하더라도 시스템으로 구축되어 있지 않으면 개발자들이 실제로 적용하기가 힘들기 때문이다. 개발자들은 손쉽게 사용할 수 있는 도구를 통해 요구분석, 설계 등 각 프로세스를 수행할 수 있고, 프로젝트 관리자는 전체 프로젝트 일정과 인력을 쉽게 관리하고, 프로세스팀은 프로세스 진행 현황을 점검하기 쉬운 체계를 구축해야 한다.

    또한 버그(이슈) 트래킹 시스템이나 빌드 시스템, 소스 관리 시스템은 개발을 위한 없어서는 안 될 시스템이다. 버그(이슈) 트래킹 시스템은 버그(이슈)의 등록과 수정, 확인, 제품 패치까지 버그의 일생뿐 아니라 해당 버그나 추가 기능 요구가 다음 패치나 업그레이드 제품에 적용되는지까지 관리할 수 있는 도구다. 빌드 시스템은 소스 관리 시스템에서 소스들을 받아서 최종 바이너리를 만드는 시스템이다.

    특히 일일 빌드 체계를 갖춰야만 계속 변경되는 소스들 중 누가 등록한 소스에서 버그가 생겼는지 알 수 있기 때문에 대규모로 협업을 할 때에는 반드시 필요한 도구다. 소프트웨어 개발 회사에서 소스 관리 시스템의 중요성은 아무리 강조해도 결코 지나치지 않다. 이러한 시스템들은 굳이 돈을 들이지 않더라도 쓸 수 있는 공개 소스들이 많이 있어서 개발팀이나 개발 관리자들이 의욕만 있다면 충분히 구축할 수 있을 것이다.

    개발이 한 차원 더 높게 발전하기 위해서는 개발 프로세스와 개발 시스템이 ‘개발 문화’로 정착되어야 한다. 보통 프로세스란 것이 프로세스팀의 점검이나 각 프로세스 담당 팀의 상호 검증을 통해 강제해야 제대로 수행되는 것이 보통이다. 하지만 그것들이 각 개발 담당자들의 몸에 배어 있고, 개발이나 마케팅, 영업, 기술지원 등 모든 부서에서 문화로 확립되어 있다면, 모든 프로세스나 시스템이 자연스럽게 수행되고, 제품 개발에 관련된 시장의 요구사항이 물 흐르듯 제품 출시까지 이어질 수 있을 것이다. 이는 모든 소프트웨어 개발 회사에서 바라는 일이 아닐 수 없다.

    ◆좋은 소프트웨어를 개발하기 위해서

    한 걸음 더 나아가면, 제품에 대한 로드맵을 만들고 유지해야 좋은 소프트웨어를 만들 수 있다. 당장 출시할 제품에 대한 기능을 작성하기도 급급한데, 뜬금없는 소리로 들릴 수도 있을 것 같다. 하지만 최소 1년, 좀더 고민해서 2년 정도의 제품 로드맵이나 기술 로드맵을 만들어 놓고, 1년에 2번 정도 갱신하게 되면, 고객사의 기능 추가 요구에 대해 제품 로드맵을 갖고 설득할 수 있고, 개발 측면에서는 필요한 기술이나 제품 요소, 인력을 사전에 준비할 수 있으며, 경쟁사의 제품이나 기술도 미리 들여다볼 수 있어서 좋은 제품을 개발하는 데에 크게 도움이 된다.

    위에서 설명한 것들이 모두 없다 하더라도 좋은 소프트웨어를 개발할 수 있다. 하지만 그러기 위해서 몇몇 개발자들이 열정과 헌신, 엄청난 초과 노동시간을 쏟아 붓는 것에 기대는 경우이다. 이는 소프트웨어 엔지니어들이 소프트웨어 업계를 떠나는 이유가 되고 있고, 해당 제품 역시 지속적인 발전을 이루지 못하고, 중도 하차하는 주요 원인이 된다.

    요즘 정보통신부, 언론, 업계 등 여러 곳에서 소프트웨어 인력 양성이나 수급에 대한 논의가 이뤄지고 있다. 학교나 정부에서 할 일이 있지만, 소프트웨어를 개발하는 업계에서 할 일도 매우 중요하다. 아무리 고급 개발자들이 있다 하더라도 개발 프로세스와 시스템, 문화가 갖춰 있지 않은 곳에서 일하면, 그들은 ‘소모’된다고 느끼다가 대기업으로 자리를 옮기거나 아예 업계를 옮기기도 한다. 좋은 소프트웨어를 만들기 위해서는 시장도 있어야 하고, 좋은 인력도 있어야 한다. 하지만 좋은 개발 문화를 갖추지 않고서는 중장기적으로 소프트웨어 개발 업체에 희망이 없다.
    /강은성 안철수연구소 상무


  • 눈팅만으로는 전체글을 볼 수 없습니다. 로그인하셔야 합니다.

    He can do, She can do, why not me?

    [한국리눅스유저그룹]의 글을 퍼가실때에는 반드시 [출처]를 표시해 주시는 센스가 필요합니다!
    지금 이시간, 공부하고 있는 당신은 머지않아 최고가 될 것입니다. 즐겁게 공부하시고, 힘내십시오!
    포스팅 글이 유용하셨다면 RSS를 구독하시면 됩니다.
    유용하고, 좋은글 포스팅 바랍니다. 포스팅된 글은 (전세계)? 대부분의 소셜 사이트에 포스팅됩니다.




  • [본문 프린트하기]

    [포인트 정책] :: 글읽기 : -2점(글쓴이는 포인트 받음), 글쓰기 : +20점, 코멘트 : +10점, 다운로드 : -200점
    총조회수 : 280,135회 | 전체글 : 44건 | 게시글 : 38건 | 코멘트 : 6건
    [ 날짜순 / 조회순 ]
    번호 제목
    18
    우성창 작성일 : 02-25 / 조회 : 6975

    No Image
    우분투 설치시 가장먼저 해야 하는것들 이랄까요? (2)

    저두 인터넷 여기저기서 검색하여쉽게? 찾아낸것들이라 적는것두 뭐하지만 ㅎㅎ..설치후 첫 로그인시 루트(root) 암호설정 방법 $sudo passwd root 지금로그인 사용자 pw:root가 사용할 암호 : 한번더 :  우분투 …
    17
    우성창 작성일 : 12-23 / 조회 : 22273

    No Image
    [퍼옴^^]우분투에서 DHCP 사용 시 DNS 서버 고정하기

    저는 인터넷 공유기를 사용합니다. 그런데 언제부턴가 인터넷에 연결할 때마다 /etc/resolv.conf 를 보면 nameserver 192.168.123.1 라는 이상한 DNS 서버가 잡혀있습니다. 공유기 자체 DNS 서버인가 했지만, 실제로 동작하는 …
    16
    우성창 작성일 : 09-29 / 조회 : 8649
    Eclipse 기본적인 설명 정도랄까요?

    1. Eclipse 개요     Eclipse(이클립스)는 Eclipse.org라는 컨소시엄(http://www.eclipse.org/)에 속해 있는 ‘Eclipse 프로젝트’가 개발한 오픈 플랫폼의 통합개발환경(IDE) 이름이다.Eclipse.org 컨소시엄은 Eclipse의 개발을 …
    15
    우성창 작성일 : 09-12 / 조회 : 4797

    No Image
    오늘부터 한가위네여 모두 풍성한 한가위 되세요!![냉무ㅠㅠ]

    .
    14
    우성창 작성일 : 06-03 / 조회 : 5837

    No Image
    촛불집회 동영상을 보고..

    나라가 점점 어수선해지네요..직장인이라 광화문에 나가지는 못하였지만주변분들중에 몇분이 광화문에 나가셨었어요.경찰진압이 과잉보도된것도 있지만보도가 안난 더 심한일도 있었다고 합니다.국민이 이토…
    13
    우성창 작성일 : 05-14 / 조회 : 6160

    No Image
    [developer 와 programer의 차이]는 무엇일까?

    [developer 와 programer의 차이]는 무엇일까?de·vel·op·er〔divlp〕 n.1 개발자2 택지 개발[조성]업자3【사진】 현상제[액]4 근력 트레이닝 기구5【조선】 원도공(原圖工)pro·gram·(m)er〔, │〕 n.1 《미》 【라디오·TV…
    12
    우성창 작성일 : 05-10 / 조회 : 6885

    No Image
    [스크랩]한국에서 SW 개발자가 성공하지 못하는 세가지 이유

    소프트웨어 개발자 직종에 대한 회의론적인 얘기가 여기저기에서 들린다. 한때 IT 붐이 일었을 때는 많은 사람들이 개발자를 지망하기도 했다. 하지만 최근 상황을 보면, 신규 유입되는 인력이 아주 적은 편이다. …
    11
    우성창 작성일 : 05-10 / 조회 : 5424

    No Image
    [스크랩]SW 개발자의 길, 아니다 싶으면 포기하라!

    20일 오전에 MS가 주관하는 ‘2007 데브데이’ 행사에 참석했다. IT업계에 종사하는 사람이라면, 아마도 한번쯤은 MS의 독점성과 라이선스 정책 등에 대해 불만을 품어봤을 만하다. 그럼에도 불구하고 SW 개발자들의,…
    10
    우성창 작성일 : 05-10 / 조회 : 5164

    No Image
    [스크랩] 강은성-좋은 소프트웨어를 개발하기 위하여(1)

    한두 명의 뛰어난 개발자가 제품 개발에서 결정적인 역할을 해 내는 하드웨어 개발과는 달리 소프트웨어 제품(패키지)이나 소프트웨어 서비스, 웹 기반 서비스, 소프트웨어가 제품의 핵심 요소인 보안 어플라이…
    9
    우성창 작성일 : 05-10 / 조회 : 7245

    No Image
    [스크랩]Vi Editor Using Manual (1)

    1. 시작vi filevi를 시작하여 지정한 파일 편집vi -R file읽기 전용 편집기로서 vi를 시작하여 지정한 파일 편집view file읽기 전용 편집기로서 vi를 시작하여 지정한 파일 편집2. 종료 :wq데이터를 저장하고 종료:q!데이…
     1  2  3  4  
    [게시판 맨위로]
    한국LUG는 대한민국의 리눅스 지식인[사용자/개발자]들의 커뮤니티입니다. [매년 1~2회의 공개세미나 개최]
    한국LUG : 울산 - 광주 - 전북 - 인천 - 대전 - LUG 위키

    [Linux Distribution] : CentOS | Ubuntu | Fedora | WhiteBox | Debian | Slackware | Gentoo | openSuSE

    "Linux" is a registered trademark of Linus Torvalds. "Linux is Kernel"
    - 리눅스는 공짜가 아니라 자유[Free & Effort]입니다 -
    [인터넷 서점/출판사 링크] : 강컴 | 알라딘 | 인터파크 | 예스24 | 교보문고 | 수퍼유저코리아 | 제이펍
    한국LUG 사이트는 1024 x 768 해상도(운영자 노트북:14")에 최적화 되어 있습니다. : LINUX FANSITE
    WWW.LUG.OR.KR Server is made by CentOS Linux, P4 1.8G, Memory 512MB, Main HDD 160GB, Backup HDD 40GB and LAMP, qmail MTA.
    CentOS Linux & Mozilla Firefox UTF-8 Base Created.
    visitor stats
    1998-2024 www.lug.or.kr   Directed By Great Dragon, Kim.   Top
    LUG 포인트 정책 : [회원가입 : +100점] [로그인(하루한번) : +100점] [글쓰기 : +20점] [코멘트 : +10점] [다운로드 : -200점] [질문 포인트 : 최소 200점]
    데스크탑 프로그래밍(gcc, g++, wxGTK[wxWidgets] 등)은 "Fedora"를 사용하고, 서버 운영(WEB, FTP 등)은 "CentOS"를 사용하시길 권장합니다.
    도전하는자, 자신을 투자하는자만이 뜻하는바를 이룰 수 있다.
    Information should be Exchanged with Interactive, not One Way Direction.
    준회원, 정회원, 우수회원, VIP회원, 기업회원, 관리자
    Be Maker!
    인생에서, 100% 순이익을 보장하는건 없다. 1%의 지식을 나눔으로써, 가끔씩 손해볼 필요도 있다.
    그대가 가진 1%의 지식만이라도 공공을 위해 포스팅하라. 손해본다는 생각이 앞선다면 그대의 인생은 힘들어질것이다.
    자신이 가진 지식의 1%도 투자하지 않고, 오로지 자신의 이익만 탐하는자와는 동지가 되지마라.
    만나서 대화하면 모두 좋은 사람들이지만, 유독 인터넷에서만 자신을 밝히지 않고, 좀비로 서식하는 사람들이 많다.
    부지불식간[不知不識間], 좀비(하류) 인생이 될지도 모르니, 항상 자신을 경계하도록 하라.
    홈으로~
    [도서 안내]
    1. CentOS Linux
    2. gcc로 공부하는 C++
    베스트셀러 입성^^

    3. 쉘 스크립트 입문
    4. JSP 입문

    아래 배너들은 LUG 세미나 모임에 도움을 주신(실) 멋진 기업들입니다. ^^