2013년 8월 23일 금요일

넣는 것 보다 빼는 것이 더 어렵다.

넣는 것 보다 빼는 것이 더 어렵다.

2013/05/14 23:29 by 전규현
 All of Software 블로그를 RSS Feed에 등록을 해 놓으시면 편리하게 받아보실 수 있습니다. rss RSS Feed 



초창기에 좋은 소프트웨어로 성공하는 업체들이 지속적으로 성장하지 못하고 고전을 면치 못하는 이유는 여러가지가 있다. 그중 하나가 제품이 점점 과도하게 비대해지는 것을 꼽을 수 있다.

성공하는 회사들의 초기 제품은 간략하고 핵심적인 기능으로 사용자들의 요구를 만족시켰다. 하지만 시간이 흐를 수록 경쟁상대가 많아지고 선두를 유지하거나 따라잡기 위해서 제품은 기능은 경쟁 제품들의 모든 기능을 다 포함하기 시작하곤 한다.

고객이 많아질수록 고객들의 요구사항도 다양해지고 하나의 고객도 놓치기 싫어서 가능하면 모든 요구사항을 신제품에 다 우겨 넣으려곤 하다.

이렇게 온갖 기능이 다 포함된 제품을 우리는 "Kitchen Sink"라고 한다. 설거지통에 닦아야 할 그릇들이 잔뜩 쌓여 있는 모습을 상상해보라.

기본적으로 영업은 한명의 고객도 놓치기 싫어서 무조건 고객의 요구사항을 다 들어달라고 요청을 한다.

이것을 조정해서 새로운 제품의 전략을 수립하는 부서는 마케팅부서이다. 하지만 내 경험에 의하면 우리나라의 많은 소프트웨어 회사들은 마케팅보다 영업에 가깝다. 소프트웨어 제품 전략에서 중요한 것은 많은 기능을 넣는 것보다 얼마나 적은 기능으로 최대한의 고객을 만족시키느냐이다. 경쟁제품을 모두 조사해서 슈퍼세트의 제품을 기획하는 일은 쉽다. 어려운 일은 기능을 빼는 것이다.

기능을 빼는 과정에서 기존의 고객을 잃을 수도 있다. 하지만 이것이 두려워서 "Kitchen Sink" Software를 만든다면 더 큰 것을 잃을 수도 있다. 

하지만 많은 사람들이 기능을 빼는데는 익숙하지 않다. 영업, 마케팅은 물론이고 마음씨 좋은 개발자들이 기능을 빼는 것을 주저하기도 한다. 그러면 제품의 아키텍처는 점점 복잡해지고 회생 불가능한 상태가 되곤한다.

스펙을 적을 때도 지원할 기능 외에 뺄 기능도 잘 기술해야 한다. 스펙에 지원하지 않을 기능을 적는 것은 지원할 기능을 적는것보다 더 중요할 때가 많다. 물론 모든 미지원 기능을 적는 것이 아니고 기존에 있던 기능을 빼거나 누구나 능히 포함될 것으로 생각하는 기능을 뺄때는 꼼꼼히 적어줘야 한다.

그래서 마케팅팀의 역할이 더욱 중요하다고 할 수 있다.

1%의 사용자도 쓰지 않는 수많은 기능을 개발하느라고 개발 비용은 훨씬 많이 들어가고 프로젝트가 망가져가는 것을 흔히 볼 수 있다. 중요한 것은 넣은 것이 아니고 빼는 것이다.

image by Kingfox




저작자 표시 비영리 변경 금지

2013년 2월 1일 금요일

이클립스 Subversion(SVN) 연동하는 법 : [스크랩]IT's a humanism

IT's a humanism: 이클립스 Subversion(SVN) 연동하는 법: *** Here we will learn how to install Subversion Eclipse Addon, connect to your Subversion repository and get the source code from Subvers...


이클립스 Subversion(SVN) 연동하는 법


*** Here we will learn how to install Subversion Eclipse Addon, connect to your Subversion repository
and get the source code from Subversion. ***

(여기서는 Eclipse에 Subversion Plugin을 설치하는 법, Subversion Server와 연결하는 법
그리고 Subversion에서 소스 내려받는법을 배울겁니다.)
1. Menu Help > Intall New Software
(메뉴에 Help > Install New Software 를 선택 )


2.Click on "Add..." button unless you already have Subclipse on your "Work with:" select box.
(Subclipse가 이미 설치되어 있지 않다면, "Add...' 버튼을 누릅니다.)

3. Add as below ( this is for Eclipse 3.2 +, if you are using lower version than 3.2, please check out at http://subclipse.tigris.org/ )
(아래와 같이 타이핑하고 Add를 누릅니다. Eclipse 버젼 3.2+은 아래와 같이 쓰면 되고 그 이전 버젼은 http://subclipse.tigris.org/ 를 참고 하세요.)

http://subclipse.tigris.org/update_1.6.x

4.After you add "Subclipse" you will see the added item appears on "Work with:" select box.
(Subclipse가 추가되면 "Work with:"에서 Subclipse를 선택할수 있습니다.)

5.Check on "Subclipse" checkbox and click "Next"
(Subclipse를 체크한후 "Next"를 클릭합니다.)

6.It shows the item that will be installed. click "Finish"
(설치될 아이템을 보여줍니다. "Finish"를 누릅니다.

7. Depends on your Eclipse version, you might see this screen. then select "I accept the term ... " then click "Finish"
(Eclipse 버젼에 따라서 이 화면을 보는 경우가 생깁니다. "I accepted the term..."이라고 되있는것을 선택후 "Finish"를 누릅니다.
8.then you should see the progress window.
(그리고 나면 설치 진행상황을 나타내는 윈도를 보시게 됩니다.)

9.This window might popup then just answer positively then everything will be ok :)  - click "OK"
When downloading and installation are done, Eclipse will recommend you to restart Eclipse.
Say "Yes" :)
( 아래와 같은 팝업이 뜨는걸 볼수 있습니다. 그런 언제나 그랬듯이 긍정적인 대답을... "OK"를 누릅니다.
다운로드와 설치가 끝나면 Eclipse를 재 시작할것을 권장합니다. 그역시 긍정적인 대답을 ^^ )

10.When Eclipse came back this window will show up. Why don't you help Subclipse team
by only check the check box and click "OK"
( Eclipse가 재시작되면 아래의 팝업이 뜨게 됩니다. Subclipse를 만드는 사람들을 돕는 차원에서
체크를 한 상태로 "OK" 눌러주세요. )

11.Now go to Menu Window > Open Perspective > Other...
( 이제 메뉴에서 Window > Open Perspective > Other... 를 선택합니다.)

12.Select "SVN Repository Exploring" and click "OK"
( "SVN Repository Exploring"를 선택하고 "OK"를 클릭합니다.)

13.then you should have "SVN Repositories" view.
Right click on black space then select "New > Repository Location..."
( 바뀌화면에서 "SVN Repositories" 뷰에서 빈공간에 오른쪽 버튼을 누른후
"New > Repository Location..."를 누릅니다. )

14.Enter your repository URL. (it can be svn protocol or http protocol depends on your provider)
then It will ask User ID and Password if your SVN has security on.
( URL에 당신의 저장소 주소를 입력합니다. 이것은 svn 프로토콜을 쓸수도 있고 http 프로토콜을 
쓸수도 있습니다.  보안이 걸려있다면 사용자 아이디와 패쓰워드를 묻는 창이 뜹니다. )

15. If you were successfully logged into SVN, your SVN repository will appear on "SVN Repositories" View.
( SVN으로 성공적으로 접속되었다면 "SVN Repositories"에 당신의 저장소가 나타나 있을 겁니다.)

16. Right click on your repository and select "Checkout..." menu
( 그 저장소위에서 오른쪽 버튼을 누른후 "Checkout..."을 선택합니다. )

17.Normally SVN suggest you to use "Check out as a project in the workspace" so just go with it.
Unless you have better idea of SVN. then click "Finish"
( SVN은 일반적으로 내려받는 프로젝트의 이름을 그대로 Workspace에 저장하기를 권장합니다.
Subversion을 잘 사용하지 못하는 분이라면 그냥 "Check out as a project in the workspace"를 
선택하시고 "Finish"를 클릭하세요.)

18. Select where you want to put your project from SVN then click "Finish"
( 선택한 프로젝트를 로컬 디렉토리 어디에 저장할지를 결정후 "Finish"를 클릭 )

19. Now you should see your new project in "Project Explorer" or "Package Explorer".
(이제 당신의 프로젝트를 "Project Explorer"나 "Package Explorer"에 생긴것을 보실수 있습니다.)
\

There you go. You have a project on your local machine that is connected to your Subversion Server.
Enjoy and collaborate with your friends or co-workers and make some awesome software !!!
( 다 됬습니다. 당신의 로컬 프로젝트가 Subversion Server와 연결되었습니다. 
친구들 또는 직장동료들과 함께 작업하며 멋진 소프트웨어를 만들어 보세요. )

You may need JavaHl installed depends on your OS.
Go the link below and set it up :)
http://subclipse.tigris.org/wiki/JavaHL#head-bb1dd50f9ec2f0d8c32246430c00e237d27a04fe

크롬 에서 번역 옵션 뜨는 거 막는 방법

버그 같은게 아니고 저 옵션의 기본 값이 제공으로 바뀐듯... 번역 옵션 제공을 비활성화하면 안 뜸. Chrome에서 웹페이지 번역 모르는 언어로 작성된 페이지를 방문할 때 다음 단계에 따라 Chrome이 페이지를 번역하도록 할 수 있습...