Wednesday, November 18, 2009

Eclipse-단축키-모음


Eclipse 단축키 모음

IT | 2008/12/30 16:24 | timeless



Eclipse 단축키 모음



ctrl + s: 저장 및 컴파일
ctrl + i: 소스 깔끔 정리(인덴트 중심의 자동구문정리)
ctrl + space : 어휘의 자동완성(Content Assistance)


ctrl + E : 열린파일 옮겨다니기


ctrl + shift + E : 열린파일 띄우기


ctrl + M : 에디터화면 넓게
ctrl + 1 : Quick Fix(Rename에 주로 사용)
ctrl + shift + M : 캐럿이 위치한 대상에 필요한 특정클래스 import
ctrl + shift + O : 소스에 필요한 패키지의 자동 임포트
ctrl + /: 한줄 또는 선택영역 주석처리/제거
ctrl + Q : 마지막 편집위치로 가기
ctrl + L : 특정줄번호로 가기
ctrl + D : 한줄삭제
ctrl + H : Find Replace
ctrl + K : 다음찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.)
ctrl + shift + K : 이전찾기(또는, 찾고자 하는 문자열을 블럭으로 설정한 후 역으로 찾고자 하는 문자열을 찾아감.)
alt + shift + j : 설정해 둔 기본주석 달기
Ctrl + 객체클릭(혹은 F3) : 클래스나 메소드 혹은 멤버를 정의한 곳으로 이동(Open Declaration)





ctrl + shift + f : 소스 깔끔 정리
ctrl + 2 + R : Rename(리팩토링)
ctrl + shift + / : 선택영역 block comment 설정
ctrl + shift + \ : 선택영역 block comment 제거
alt + shift + up: Enclosing Element 선택(괄호의 열고 닫기 확인에 유용함)
ctrl + O : Outline창열기


ctrl + T : 상속구조 보기, 한번더 누르면 수퍼타입/서브타입 구조가 토글된다


Alt + ->, Alt + <-: 이후, 이전
해당프로젝트에서 alt + enter : Project 속성
sysout > Ctrl + Space: System.out.println();
try > Ctrl + Space : 기본 try-catch문 완성
for > Ctrl + Space : 기본 for문 완성
템플릿을 수정,추가 : Preferences > java > editor > Templates


블럭 씌운상태에서 alt + shift + z : try/catch, do/while, if, for, runnable.... 등 블럭씌우기





ctrl + N : 새로운 파일 및 프로젝트 생성
ctrl + shift + s : 열려진 모든파일 저장 및 컴파일
alt + / : Word Completion
alt + shift + R : Rename
ctrl + shift + G : 특정 메써드나 필드를 참조하고 있는 곳을 찾는다.
ctrl + shift + B : 현재커서위치에 Break point설정/해제
ctrl + alt + R
ctrl + f11 : 실행
f11 : 디버깅 시작


f4 : 상속구조 클래스 보기(메소드, 멤버)
f5 : step into
f6 : step over
f8 : 디버깅 계속
ctrl + . : 다음오류부분으로 가기
ctrl + , : 이전오류부분으로 가기
f12 : 에디터로 커서이동
ALT + UP,DOWN : 현재 위치 이동
Ctrl + j : 검색할 단어를 입력하면서 실시간으로 검색
Ctrl + Shift + j : 검색할 단어를 입력하면서 실시간으로 거꾸로 검색
F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.
ctrl + alt + up/down : 한줄 duplicate
alt + shift + 방향 : 선택
ctrl + shift + g : 객체(변수)가 참조 되는 곳을 찾아 준다


alt + shift + m : 코드 중복 해결(중복부분을 블록선택한 다음 단축키를 누르면 이부분을 별도의 메서드로 뽑아내줌)


ctrl + alt + h : 메서드 호출구조 보기






단축키는 알아두면 은근히 편하죠...ㅎ









의견을 달아 주세요







  1. dinga 2009/05/12 13:09 답글수정삭제

    유용한 정보 감사드립니다.
    좋은 하루 되세요^^




트랙백 주소 :: http://dspark.textcube.com/11/trackback/

id="clipboardUtil-embed-11" name="clipboardUtil-11"
width="32" height="18"
type="application/x-shockwave-flash"
flashvars="targetString=http://dspark.textcube.com/11/trackback/&buttonType=white"
pluginspage="http://www.macromedia.com/go/getflashplayer"
scale="noScale" allowscriptaccess="always"
wmode="transparent"
src="http://rs.textcube.com/service/blog/script/clipboardUtil/clipboardUtil.swf" >

















옵션



댓글 달기

자바스크립드 툴 집대성(Google Closure Tools)

자바스크립드 툴 집대성(Google Closure Tools)
11月5日,Google이자사서비스제품인Gmail,Google Maps,Google Docs등의 개발에서 사용한 JavaScript 어프리케이션 개발 툴「Google Closure Tools」을 일반 공개했다고 합니다.

http://code.google.com/closure/

Monday, November 16, 2009

30가지 아이디어 발상법

30가지 아이디어 발상법

Process | 2009/10/27 00:21 | 진영규

브레인스토밍이나 다른 아이디어 발상회의를 할 때 써 볼만한 방법들을 모아봤습니다. 여기에 있는 정보를 주로 참조 했고 회의중 혹은 혼자 사용해 보고 효과를 본 방법 중심으로 소개 드립니다. 위쪽부터 일반적인 Ideation 방법들을 적고, 그다음에는 발상법 위주로, 아래쪽은 확장 및 분석하는 툴 중심으로 나열했습니다.

1. Brainstorming

대표적인 Ideation 방법. 통상적으로 Ideation을 목적으로 하는 모든 미팅을 Brainstorming 이라고 부르기도 함. Brainstorming의 창시자인 Alex Osborn의 4가지 원칙은,
1. 아이디어의 양을 늘리는데 집중
2. 비판은 보류
3. 별난 아이디어 환영
4. 아이디어에 더하고 합한다.
일반적으로 진행자는 아이디어를 제안하는 것이 금지되며, 10~15분 후 휴식하는 사이클을 3번정도 수행.

브레인 스토밍을 할때 색깔이 다른 포스트잇을 한장씩 주어서 그곳에는 터무니없는 아이디어를 적도록 할수도 있다. 보통 포스트잇들의 분류를 마친뒤, 어처구니없는 아이디어들을 그럴듯한 아이디어로 정제하는 과정을 거친다.

2. Brainwriting

각 멤버는 종이에 아이디어를 적는다. 3분정도 시간이 지난뒤 종이를 옆사람에게 넘기면, 적혀있는 아이디어를 보충하거나 디딤돌로 삼아 새로운 아이디어를 적는다. 브레인스토밍 세션에서 말을 잘 안하는 사람들의 의견을 받는데 좋지만 너무 정적인 분위기로 진행되기 쉬움.

3. 6-3-5 method
Brainwriting의 한 방법. 6명의 사람이 각각 3장의 종이에 5분이내에 아이디어 하나씩을 적는다. 다 적은 종이는 옆사람에게 건네주고 옆사람은 적혀있는 아이디어를 힌트로 새로운 아이디어를 더해 적는다. 모든종이에 6개씩 적히게 되면 상황종료. 제대로 진행됬다면 5분x6명=30분 동안 모두 3장x6명x6개=108개의 아이디어가 생긴다. 물론 꼭 6명일 필요는 없음

4. Circular Response
해결하고자 하는 Problem을 그룹원들과 공유한다. 문제를 확실히 하여 종이에 적어두고, 자유롭게 토론하는 동안 종이를 돌려보며 자기 순서가 되면 코멘트를 하나 이상씩 적는다. 통상적으로 15~20분간 실시. 시간이 되거나 더이상 토론이 시들해지면, 종이를 회수.

5. Nominal Group Technique
아이디어를 적고 이를 보팅해서 선정하는 방법.
1. 5~10분정도 각자 조용히 주제에 대한 아이디어를 종이에 적는다.
2. 각자 처음 아이디어를 진행자에게 말하고, 진행자는 이를 칠판에 받아 적는다.
3. 각 아이디어를 명확히 하거나 서로 토의할 시간을 준다.
4. 멤버들은 몇개를 선정하여 순위와 해당 아이디어를 무기명으로 적는다.
5. 진행자는 이 순위 카드를 걷어서 하나씩 읽으며 결과를 공개하고 칠판에 적는다

6. Six Thinking Hat
아이디어회의중 "지금부터 모두 검정모자"와 같은 식으로 활용하거나 각자 다른 종류의 모자를 쓰고 생각하는등의 방법으로 활용한다.
1. White Hat: 객관적인 정보에 집중함. 데이터 중심으로 생각하고 어떻게 부족한 Information을 얻을 수 있는지도 생각해본다.
2. Red Hat: 직관, 감정, 본능에 충실한다. 이유는 필요없음
3. Black Hat: 왜 안되는지, 무엇이 약점인지 부정적인 면을 중심으로 본다.
4. Yellow Hat: 긍정적으로 생각함. 아이디어의 benefit 위주로 본다.
5. Green Hat: 창조적인 생각을 통한 아이디어 생성. 자유로운 사고. 크리틱금지
6. Blue Hat: 미팅을 주관하고 모더레이션한다. 어떤 모자를 써야하는지도 정하는사람

7. Alternative Words
간단하지만 의외로 유용한 방법. 아이디에이션 주제의 동의어 혹은 반대말 리스트를 작성해서 새로운 시각으로 생각을 해본다. 영어단어라면 리스트는 http://www.thesaurus.com/ 를 사용해 작성하면 좋음

8. Backward Mapping
Problem solving을 위한 Ideation을 할 때, 지금 고민중인 문제가 이미 해결되어 사라져버린 미래를 상상한다. 그리고 가상의 타임라인을 그리면서 현재까지 거꾸로 내려오면서 생각하는 방법.

9. Break the Rules
주제와 관련되어 널리 알려진 정설, 학설, 표준, 규범, 법칙 등을 적어두고 이를 제거했을 때 새로운 아이디어의 가능성을 찾아본다

10. Bunch of Bananas
미팅중에 갑자기 "신제품 고민하는 것 그만두고 마술사나 고용할까?"와 같은 엉뚱한 말을 던짐으로써 고의적으로 혼란하게 만든다. 참석자들의 생각이 그냥 흘러가는 대로 가게 두지 않고 뒤흔들어 새로운 돌파구를 찾는 방법. 심리학자들이 말하는 Pattern interruption. 번 시도해 봤는데 적절하게 사용하기 어려우며 분위기만 썰렁하게 만든 경우가 많음.

11. Change the Setting
해변, 산, 인기 있는 카페, 갤러리 등 활기차고 영감을 불러 일으키는 장소를 찾아간다. 장소를 바꾸는 것만으로도 영감을 얻을 수 있음. Fresh insights을 얻기 위한 다양한 기법
- Street Excursion: 길을 걸으며 보이는 모든 것들을 Trigger로 삼는다.
- Example Excursion: 지역, 기후 등이 다른 환경을 고려해본다.
- Career Excursion : 우주비행사, 간호사 등등 자신과는 전혀 다른 직업의 입장에서 생각해본다.
- Imaging Excursion : 임의의 단어를 고른 뒤 편안한 자세와 마음으로 명상을 하면서 이미지를 떠올린다. 몇 분간의 명상 뒤 떠오른 이미지들을 아이디어와 연결 시킨다

12. Force Field Analysis
사회과학에서 사용되는 방법. 목표에 도달하기 위한 순방향의 영향을 주는 Driving force와 목표도달을 방해하는 Restraining force이 만나는 지점을 현재 상태로 정의하고, 원하는 목표에 도달하기 위해 Driving force를 강화하기 보다는 Restraining force는 약하게 하는 방법을 사용한다.
1. 먼저 Driving force를 나열한다 팀의 생산성 증가가 목표라면 이에 대한 Driving force의 예는 인센티브 제공, 팀원간 경쟁, 팀장의 압력 등이 될 수 있다.
2. 다음으로 Restraining force를 나열한다. 예를 들어 무관심, 갈등, 지원부족 등이 될 수 있다.
3. Critical Restraining force를 선정하고 제거한다.

13. Force Fit
1. 문제를 가장 잘 표현하는 단어를 선정한다. 예를 들어 누군가 마음에 안드는 사람이 있다면 '대립'을 선택
2. 다음에는 그 단어의 반대의미를 선정한다. '대립'과 반대되는 '조화'.
3. 두개의 단어를 합쳐본다. '대립적 조화' 나 '조화로운 대립'
4. 합친 문구에 해당하는 예를 생각해본다.

14. 이미지 검색
아이디어와 관련된 키워드로 구글 이미지 검색 해본다. 검색되어 나오는 이미지들을 보면서 영감을 받는다. 결과로 나오는 썸네일 이미지들을 클릭해 키워 보기가 귀찮다면 묻지마 이미지 검색 을 사용, 스크롤 하기가 귀찮으면 Bing 추천.

15. Po
불가능하고 정신 나간듯한 아이디어로부터 출발해 현실적인 아이디어를 뽑아내는 방법. 금기를 깨는 것이 유용한데, 비논리적이고 불법이거나 사회적으로 수용되기 힘든 아이디어들을 내보는 것. 이러한 아이디어를 "Po"(Provocative Operation)라고 한다. 새로운 커피잔에 대한 Po의 예를 들면 바닥이 없는 컵, 손잡이가 안쪽으로 달린 컵, 잡기에 너무 뜨거운 컵등이 될 수 있음.

16. Other People’s Shoes
화성인, 5살짜리 아이, 심슨, 람보, 박애주의자, 제임스본드, 회장님등의 다양한 캐릭터를 설정하고 그 사람이 되어본다. 문제를 어떻게 해결하고 목적을 달성하는지 상상해봄.

17. 속담과 명언
여러 가지 속담이나 상용구를 적어서 상자에 채워두고 뽑는다. 해당 문구와 현재 다루고 있는 주제가 어떻게 연관되는지 생각해 본다.

18. 문장 만들기
일단 임의의 단어를 선택한다. 그리고 10분간 그 단어를 사용한 문장들을 최대한 길게 작성해본다. 시간이 지나면, 그 문장들을 트리거로 얼토당토않은 아이디어를 뽑아내고 그 아이디어를 바탕으로 feasible한 솔루션을 생각본다.

19. Free the genie
Idea Champions 이라는 컨설팅 회사에서 제공하는 툴. attend, intend, ,suspend, extend, connect의 다섯가지 카테고리로 모두 55개의 영감을 제공한다. 온라인에서 무료로 게임을 하면 20장밖에 나오지 않지만 카드 이미지 번호가 일렬번호라서 직접 주소 입력을 하면 다른 이미지들도 볼 수 있음.

20. 아트 갤러리
텍스트대신 사진이나 이미지를 그려서 갤러리처럼 벽에 붙여둔다. 그룹작업을 해도 됨. 갤러리를 둘러보면서 새로운 아이디어나 문제해결을 위한 시작지점을 찾아본다. Ice braking용으로 사용해도 좋으며, 우뇌를 자극하는데 유용하다고 함.

21. 5W1H
누가(who)? 무엇을(what)? 언제(when)? 어디서(where)? 왜(why)? 어떻게(how)?에 대한 대답을 찾아봄으로써 영감과 아이디어를 얻는다. 단, Why 라는 질문은 조심해서 사용할 것. 가장 자주 묻는 질문이기도 하지만 제일 쓸모 없는 질문이기도 하다.

22. Five Whys
풀려는 문제의 근본 원인을 찾기 위해서 해당 문제의 원인에 대해서 꼬리에 꼬리를 계속 물어가는 방법이다. 예를 들어 최초의 문제가 '매출이 감소하고 있다' 였다면 > Why? > 가게에 오는 손님이 적어서 > Why? >우리 제품 가격이 높아서 > Why? > 이윤 마진을 높게 잡아서 > Why? > 오버헤드가 많아서 > Why? > 스텝들이 삥땅 쳐서 와 같이 근본적인 원인을 발견하면서 아이디어를 확장한다.
다른 Five Whys 는, 최초 제기된 문제에 대해서만 Why 의 대답 5가지를 찾는 방법이다. 아까의 '매출이 감소하고 있다' 에 대한 Five Whys의 예를 다시 들면 이번에는 손님이 줄어서, 경쟁업소가 생겨서, 광고를 멈춰서, 서비스할 직원이 부족해서, 물품이 제한적이라 의 독립적인 5가지 이유를 생각해 볼 있다.

23. How-How Diagram
목표를 이루는 방법에 대한 아이디어를 Hierarchy 구조로 늘려 나간다. 목표에 도달하기 위한 처음 how에 대한 방법을 2가지 적고, 각각의 방법에 또 2가지씩 How를 생각하여 늘린다. 질문을 3번하면 23=8가지의 방법이 나온다.

24. Laddering
어떤 아이디어에 대해 이것의 예로 무엇이 있을까? 또는 이것은 무엇의 예가 될수 있을까? 라는 질문을 통해 사다리를 오르내리듯이 단계별 정의를 한다. 교통수단 > 자가운전 > 렌터카 > 컴팩트카 > 푸조 370 등. 그밖에 Input / Output을 정의하거나, Why? How? 등의 질문을 통해 Laddering이 가능

25. Morphological Analysis
가능한 모든 조합을 고려해보는 방법. 마치 슬롯머신처럼 각 열에 다른 항목들을 나열하고 돌려보는 방법도 있다. Wired 매거진 2006년 9월호에 소개된 Build a Web2.0 Startup이 한 예.

위 항목들을 조합하면 다음과 같은 사이트가 나올 수 있음.
Music - Ajax & Streaming - Recommendations - Social Network : LAST.FM
Photo - Tagging & RSS - Search - Community : Flickr.com
Productivity - Ajax & Ruby on Rails - Publishing - Wiki : Basecamp
주사위를 만들어서 굴리면서 아이디어를 내볼 수 있음.

26. SCAMPER
대체(Substitute), 결합(Combine), 개조(Adapt), 수정/확대/축소(Modify/Magnify/Minify), Put to other uses, Eliminate, Reverse/Rearrage 의 약자.
- Substitute: 사람, 장소, 시간이나 상황들을 다른 것으로 대체해본다.
- Combine: 여러 가지 다른 요소들을 더하고 섞고 통합해본다.
- Adapt: 기능을 변경하거나 다른 요소를 사용하는 등 아이디어를 개조해봄
- Modify: 스케일을 줄이거나 늘려보고, 모양을 바꾸어보거나 색깔 등의 특성을 수정
- Put to other uses: 일부분의 사용법을 대체해봄
- Eliminate: 일부 기능이나 요소를 제거해본다
- Rearrage/Reverse: 요소들의 순서를 바꾸거나 앞뒤, 위아래를 바꾸어본다.

27. 메타포 활용하기
아이디어와 연관 없어 보이는 것들로 은유적 생각을 해본다. 예를 들어 냉장고와 고양이의 공통점? 이라면 둘 다 생선을 속에 넣고, 둘 다 꼬리가 있고, 둘 다 그르렁 거리고 둘 다 다양한 색이 있으며, 다 수명이 15년 정도... 공통점을 찾는 방법으로 생각을 확장시킬 수 있다. 우리는 낯선 것들을 이해할 때 이미 알고 있는 것들과 비교한다. 최초의 자동차는 '말없는 마차 (horseless carriages)'라고 불렸고 초기 기차들은 '철마 (iron horses)'라고 불렸다. 은유(Metaphor)는 여러 문제나 상황에 새로운 영감을 줄 수 있다. 현재 이슈에 대해 어떤 metaphor를 만들 수 있을까? 라는 질문을 해보자.

28. ALO (Advantages, Limitations and Way of Overcoming Them)
해당 아이디어가 사용자에게 주는 이득(Advantages)이 무엇인지, 그 아이디어의 부족한 점이나 단점(Limitations)이 무엇인지, 그 결점을 극복하기 위한 방법(Overcoming)은 무엇이 있는지를 생각해본다

29. Concept Sheet
A4나 A3용지에 아이디어 별로 일정한 Form을 만들어 채우는 방법. 양식에는 다음과 같은 내용을 채울 수 있다.
1. Title
2. Description
3. Benefit (for Whom?)
4. Sketch
5. 평가 항목들

30. Creative Whack Pack

64장의 카드로 이루어진 Ideation 툴. Exploer, Artist, Judge, Warrior카드가 각각 16장씩 있으며 각각의 카드는 서로 다른 기능을기능을 한다. 더 자세한 내용은 여기 http://blog.favorite.kr/298
1. Explorer: idea를 만들기 위한 재료를 탐색. 새로운 정보를 찾는 방법 제안
2. Artist: Resouce를 new idea로 만든다. 아이디어 발상법을 제공.
3. Judge: 아이디어를 평가하고 그걸로 뭐할지 결정함. 의사결정 도와줌
4. Warrior : Idea의 Implementing 담당. idea를 action으로 바꾸어 준다.

이외에도 방법은 무수하게 많습니다. 하지만 너무도 당연한, 간과해서는 안 되는 일은 툴은 단지 툴일 뿐이고 툴을 사용해서 아이디어를 내는 것은 사람이라는 사실이죠. 툴이 아이디어를 만들어 주지는 않습니다. Steve Jobs는 “Creativity is just having enough dots to connect.” 라는 말을 했습니다. Kent Beck은 “Design is beneficially relating elements”라고 정의 했고요. 디자인마인드로 무장한 CEO와 Guru 개발자가 각각 한 말에서 ‘연결하다’라는 공통적인 키워드가 보였습니다. 회의실에 앉아서 시간을 아무리 보낸다고 해도 애초에 연결한 dot들이 없으면 Creativity는 나오지 않습니다. 일상 생활에서도 개개인이 다양한 경험과 꾸준한 학습을 통해 새로운 점들을 계속 생성해 가야만 새로운 아이디어도 떠오를 것입니다.

Creative Commons License
  1. 작은아이의 생각

    Tracked from agiletalk's me2DAY 2009/10/27 00:52

    30가지 아이디어 발상법 (via UXlog)

  2. 펌] 30가지 아이디어 발상법

    Tracked from 폴군의 만지작 만지작 2009/10/27 01:42

    30 가지 아이디어 발상법 : http://uxlog.net/69 아이디어 발상이라는 게 참 중요하면서도 어렵다. brain storming 만 있는 줄 알았는데 이렇게 다양한 것들이 존재할 줄이야. 물론, 방법이 중요한 게 아니라 그걸 어떻게 활용하느냐도 중요하다. 어쨋든 다양한 방법을 알면 다양하게 활용해 볼 기회가 생기는 것이니^^ ...

  3. 차라의 생각

    Tracked from tzara's me2DAY 2009/10/27 08:28

    30가지 아이디어 발상법 http://ow.ly/wIJd

  4. 도로시 2009/10/27 13:49 답글수정삭제

    아이디어가 잘 떠오르지 않을땐..요리조리 방법을 써봐야겠네요 ㅎㅎ 잘 읽고 갑니다 감사합니다^^

  5. 우엉의 생각

    Tracked from oldtype's me2DAY 2009/10/27 14:24

    30가지 아이디어 발상법

  6. 블로고스피어 IT 리포트 132호 - 20091029

    Tracked from GOODgle.kr 2009/10/29 11:57

    블 로고스피어 IT 리포트 132호 - 20091029IT 관련 블로그 동향을 정리하는 블로고스피어 IT 리포트를 RSS 피드 http://goodgle.kr/rss 를 통해 간편하게 구독하세요. 트위터 @goodgle 에서도 굿글 블로그를 만나실 수 있습니다.주요 블로깅▷ 소셜 미디어와 CRM의 결합http://health20.kr/1229소셜 미디어의 작동방식을 이해하고 이를 기존의 CRM에 결합해서 잘 활용하는 기업은 고객들과의 관계를 보다 시...

  7. 침구임상석사논문의 주제를 결정했다!! ^^

    Tracked from Simple Life 2009/10/30 00:51

    [ 뜸기구 특허를 신청했다! ^^ ] 위의 글은 지난달에 썼던 글이다. 말 그대로 중국( 사천성 성도 )에서 뜸기구 특허를 신청했다. 그리고, 이 내용으로 지도교수님과 논문주제가 될 지에 대해서 상담을 했다. Luke의 지도교수 대만족을 하신다!! ^^ ''야 ~ Luke야! 너가 만약에 박사과정에서 이런 뜸기구를 주제로 논문을 써도 아마 아무 문제없이 논문통과를 할 것이다!! 석사과정이란게 좀 아쉽다!! ^^'' '아 .... 그정도 인가요?? ^..

  8. 소셜로그 2009/10/30 14:46 답글수정삭제

    30가지나 정리를 해주셔서. 앞으로 차차 요긴하게 쓸것 같네요 .. 메타포 발상법이 맘에 드네요 전

트랙백 주소 :: http://uxlog.net/69/trackback/

오늘 문득 떠오른 생각..

오늘 문득 떠오른 생각...

소위 엔터프라이즈 어플리케이션을 만든다고 하면 개발환경에 대해서 한마디씩 하지 않는 개발자는 없다.
한다는 말이야 다 비슷비슷하다. 엔터프라이즈 어플리케이션 개발에 사용할 수 있을 만큼 "검증"되어 있느냐?
"검증"이란 표현이 참 의미심정하긴 한데, 대강 아래의 사항을 만족하면 검증되었다고 하는것 같다.
1. 저렴하고 풍부한 개발자 집단의 존재(제일 중요하다 -_-)
2. 신뢰성
3. 안정성
4. 지속적인 기술 지원
5. 그래서 레퍼런스

참 신기한 것은 서버측 개발환경에 대해서는 방금 언급한 요소들을 꼬치꼬치 따지고 드는 반면에
클라이언트측 개발환경에 대해서 검증 여부를 따지고 드는 프로젝트를 본 적이 없는거 같다.
한물간 트렌드이긴 하지만, 여전히 많이 쓰는 클라이언트측 개발 환경, 즉 WEB 개발 환경이란게
"IE + J(ava)script + HTML"에 NCRM이나 FLEX 같은 X-internet 또는 RIA 플랫폼을 추가하는거다.
X-internet 솔루션 내지 RIA 플랫폼은 난 잘 모르겠으니 논외로 치고 "IE + javascript + HTML"에 대해서 이야기를 해보자.

1. 저렴하고 풍부한 javascript와 HTML 개발자 집단이 존재하는가?
=>존재한 적도 없고 존재할 리도 없다. 하지만 못하는 개발자는 없으니 저렴하고 풍부하긴 한다.
=>화면개발과 서버개발을 분리하는 프로젝트가 없기도 하거니와
=>설계자와 개발자의 역할/책임 분리조차 똑부러지게 못 하는 실정이니 하려고 해도 되지도 않는다.
=>모 프로젝트는 N*솔루션을 사용해서 화면개발과 서버개발을 분리한다더니, 서버 개발자보고 화면 정의서 쓰라고 하더라.
=>하지만 이거 잘 하는 개발자는 SI 안 하더라 ㅋ

2. 신뢰성
=>애시당초 클라이언트 사이드는 믿지 말라는게 공리이니 넘어가자.
=>하지만 고객은 IE에 무한한 신뢰를 보내지. IE가 자기대신 일할 수 있도록 인공지능을 구현해달래.

3. 안정성
=>IE의 안정성이 검증되었다는 말은 들어본적이 없다.
=>특히 IE를 플랫폼으로 돌아가는 J(ava)script는 과연 안정적일까?
=>보안과 편리한 에디팅과 쉬운 파일 업로드를 제공하기 위해 설치되는 무수한 ActiveX들 간의 경쟁 속에
=>어느순간 뻗어버리거나 "메모리가 부족해!"라는 비명조차 지르지도 않고 창이 닫혀버리는 IE7를 접하는 나는 뭘까? ㅋ
=>하지만 고객은 IE가 뻗어도 개발자에게 달려가지!

4. 기술지원
=>IE에 대한 기술지원을 MS와 체결했다는 소식을 들어본적이 없다.
=>MS에서 IE에 대한 기술지원료를 받고 있다는 소식을 들어본적도 없다.
=>하기사 테이블로 뭐든지 그려내는데, CSS 버그 따위에 대한 기술 지원을 받을 필요는 없지! 안그래도 프로젝트는 적자

5. 레퍼런스
=>많다. 정말로 많다. 그런데 웹기반이라는 말을 하지 IE기반이라고 레퍼런스 이야기를 하는걸 들어본적은 없다.
=>충격!!! IE가 곧 웹이었던것이다.

뭐, 이런식으로 따지기 시작하면... WINDOWS XP도 클라이언트 환경으로 적합한지 검증해야 하는건가 ㅋ

그런데 고객은 보는 것만 가지고 평가하고, 보는것이라곤 클라이언트 단에서 제공하는 화면이 90% 이상이니

클라이언트 환경에 대한 검증은 프로젝트의 원할한 진행과 성공에 있어 중요한 요소라고 보아야 한다.

하지만 검증하는 사람은 없고, 그렇다고 클라이언트 환경에서 발생한 오류의 원인을 정확히 구분해낼 능력도 없으니...

(얼른 여기를 떠야...ㅌㅌㅌ)

퍼옴!!동감내용

Sunday, November 15, 2009

Eclipse 3.4 (CDT)와 Cygwin으로 C/C++ 개발환경 설정하기

Eclipse 3.4 (CDT)와 Cygwin으로 C/C++ 개발환경 설정하기

|
최근 정말 재미있는 책을 하나 읽고 있습니다. 바로 Short Coding이란 책입니다. 천천히 읽고 있는 관계로 독서평은 나중에 올리구요~
Short Coding을 하기 위한 환경을 Eclipse 3.4 CDT와 Cygwin으로 설정하였습니다.

아시다시피 Eclipse는 C/C++에도 막강한 기능을 발휘하는 툴이라고 생각합니다. 특히 gcc 컴파일러가 여러모로 추천되더군요~ 제가 특정한 플랫폼을 타켓으로한 C/C++ 어플리케이션을 개발하려는 것이 아니고 Short Coding 에 나오는 예제들을 중심으로 확인하려는 것이 가장 큰 목적이므로 별다른 고민없이 구축하였습니다.

특히 GCC를 사용할 수 있다는 큰 장점이 있습니다.

Step by Step으로 확인해 보겠습니다.


1. Cygwin 설치
첫번째로 Cygwin(http://cygwin.com/)에 접속하여 Cygwin을 다운로드 받아서 설치하여야 합니다. Cygwin(http://cygwin.com/) 사이트의 첫 페이지의 중간에 "Install or update now! (using setup.exe)"를 클릭하면 Windows OS용 설치 파일을 다운로드 받을 수 있습니다.


다운로드 받은 setup.exe 파일을 더블클릭하면 아래와 같은 Cygwin Setup Programe이 나타납니다.


Choose Installation Type을 "Install from Internet"을 선택하면 인터넷에서 필요한 설치 파일을 다운로드 받아 설치하게 됩니다. 당근 "Install from Internet" 를 선택하시면 됩니다.


설치 경로는 기본적으로 C:\cygwin 입니다.


그냥 패키지 디렉토리인데 따라 갑니다.


Connection Type을 선택하면 됩니다. Direct Connection을 선택합니다.


http://ftp.daum.net을 선택합니다. 우리나라에 있는 Server이기 때문에 빠른 속도로 설치할 수 있습니다. 참고로 ftp://ftp.daum.net을 선택하시면 ini 파일이 없다는 에러가 발생합니다.


기본적인 설치 패키지를 다운로드 받습니다.


패키지를 선택하는 화면입니다. 여기서 gcc를 설치하기 위하여 Devel을 클릭합니다.


Devel Category에는 여러가지 개발 관련된 Package들이 존재합니다. 반드시 gcc-g++gdb make 관련된 패키지를 선택하시기 바랍니다. 아울러 추가적으로 관심있는 여러가지 패키지를 선택하셔서 설치하시면 좋습니다. 생각보다 정말 많은 패키지들이 지원됩니다. :-)


이후 다음 버튼을 눌러서 본격적으로 설치하시면 Cygwin의 설치가 완료됩니다.



2. Cygwin 관련 환경변수 설정하기
Cygwin 을 모두 설치하시면 Windows OS의 경우 다음과 같이 환경변수를 설정해주시는것이 좋습니다.

CYGWIN_HOME이라는 변수명을 설정하시고 설치하신 Cygwin의 경로를 넣습니다.

그 후 PATH에 ;%CYGWIN_HOME%\bin;%CYGWIN_HOME%\usr\bin; 와 같은 환경 변수를 더 추가해 주시기 바랍니다. 이렇게 환경 변수를 설정해주셔야 Eclipse CDT에서 별다른 문제 없이 gcc로 개발을 하실 수 있습니다.

이렇게 환경 변수를 잘 설정하셨다면 gcc-3이나 gdb를 cmd 창에서 치시면 다음과 같이 나타납니다.



3. Eclipse CDT 설치하기

Eclipse 사이트(http://www.eclipse.org/)로 가셔서 Eclipse IDE for C/C++ Developers (79 MB)를 클릭합니다.


만약 기존에 사용하고 있는 Eclipse IDE에서 CDT 기능을 활용하시려면, CDT관련 Plugin 설치를 하시면 됩니다. 다만 Eclipse IDE for C/C++ Developers가 C/C++를 개발하기 편하도록 모든 설정이 되어 있으므로 Eclipse IDE for C/C++ Developers를 사용하겠습니다.


당근 Eclipse는 JVM 기반하에서 돌아갑니다. 따라서 JVM을 설치하여야 합니다. 만약 JVM 설치 방법을 알고 싶으시다면http://blog.java2game.com/345 를 참고하시기 바랍니다. 자 적당한 디렉토리에 eclipse를 압축해제 하시고 eclipse.exe를 더블 클릭하시면 다음과 같이 Eclipse CDT가 나타납니다. 참고로 본 예제는 Eclipse Galileo 3.4 버전입니다.


자 Hello World를 찍어봐야겠죠 ;-) 다음과 같이 C++ 프로젝트를 생성합니다.


Project Name을 HelloWorld로 하겠습니다. 주의하셔야 할 것은 Toolchains에 Cygwin GCC가 나타나지 않는다면 환경변수 설정이 잘못된 것이니 확인하시기 바랍니다. Hello World C++ Project를 선택하시면 쉽게 C++ Project를 구성하실 수 있습니다.


Basic Settings를 설정합니다.


그러면 다음과 같이 기본적인 템플릿을 바탕으로 HelloWorld.cpp 파일이 자동 생성됩니다.


Ctrl + F11이나 다음과 같이 실행하시면 Console View에서 Hello World!!!를 확인하실 수 있습니다. :-)




Eclipse라는 강력한 IDE를 Java 말고 C/C++를 개발하시거나 테스트하시는데도 활용하시면 참 좋을 것 같습니다. gcc의 강력함도 함께 즐길 수 있는 Cygwin과 함께 말이죠 ;-)

더 자세한 내용은 http://www.eclipse.org/callisto/c-dev.php 를 참고하세요~