한 2~3년 전에 C++에서 Java로 이동을 했어요


안녕하세요, 젬선배님,

저희는 한 2~3년 전부터 C++에서 Java로 이동을 했어요.
지금은 30명 정도가 개발을 하고 있는데
한국, 미국, 인도 그리고 러시아에 연구소가 있죠.
시간 맞추어 회의하는 게 아주 어려워요. 한 번에 모이는 건 꿈도 못꾸고요.
아침에는 미국이랑하고, 점심에는 인도, 저녁에는 러시아하고 화상회의를 하죠.

멀리 있고, 여러 사람이 함께 일을 하다 보니, Communication이 상당히 중요해요.
MS의 SharePoint를 사용하는데, SVN 같이 CheckIn, CheckOut해서 사용을 하죠.
요즘에는 이거 없이는 일을 못할 것 같아요. 일정관리는 MS Project로 하는데
Item이 400개 정도 되다 보니, 매주 update하는 것도 일이죠.
SharePoint에 올려서 미국 쪽은 너희가 update해라 하는 식으로 일하고 있죠.

문서는 엄청나게 많이 만들어요.
Requirement, Specification, 상위 Design, 하위 Design 문서 모두 만들죠.
언제 한번 문서 수를 세보니까 SRS만 42개 더라고요. 페이지로 하면 1000페이지가 훌쩍 넘죠.
이걸 매번 Review를 해야 되는데, 한번 하는 데만 3개월이 걸렸어요.
문서만 검토하는데 말이죠. 좀 낭비스럽기는 하죠.

그나저나, Java로 이동하면서 가장 큰 변화는 Open Source를 많이 사용하게 된 것 같아요.
지금 한 50% 정도는 open source를 사용하는 것 같아요.
시장에서 많은 기능을 빠른 시간내에 개발하기를 원하다 보니 어쩔 수 없는 것 같아요.
인도 엔지니어들이 Quality가 별로인 친구들이 가끔씩 있지만,
Open Source들을 굉장히 잘 사용하는 분위기 인 것 같아요.
그래서 인도가 소프트웨어에서 성공하지 않았다 생각이 들고요.

그래도, 제일 똑똑한 애들은 러시아 친구들이죠.
Open Source는 대부분 미국애들이 만든 건데, 러시아 친구들이 그거에 대해서 더 잘 알고, 잘 쓰죠.
깊이도 있으면서, 넓게 알다 보니까, Architecture는 러시아 친구들한테 맡기게 되더라고요.
Spring Framework을 적용하는데, 그 틀은 이 친구들이 잡은 거예요.
Framework을 사용하면 좀 무거운 감이 있는데,
이 친구들이 뭘 빼고 뭘 넣어야 할지 척척 이더라고요.

그래도, 나라별이나 개인별로 품질차이가 있다 보니, Unit Test를 강화하고 있죠.
JUnit으로 돌려서 Coverage가 70% 이상 나오도록 하고 있거든요.
Eclipse에 연결해서 사용하면 되니까 편하기는 한데, Code 작성하랴, Test Case 제공하랴
게다가 요즘은 Code Review도 하고 있으니, 엔지니어들이 불만이 좀 있죠.
그래도 그렇게 하니까 전체 Quality는 좋아지는 것 같아요.
Unit Test 끝나면, 자동 통합시험도 하는데, JUnit에서 개발된 Case를 연결해서 사용하기도 해요.
argument의 값을 변경해서 random 시험도 하고 그러죠.
아, 그리고 Prevent도 사용을 하는데, 이거 돌리면 code의 이 부분 봐라 하고 쭈욱 표시가 되죠.
보다 보면 버그도 있고, 아닌 것도 있고 그래요.

UI 같은 경우에는 JSP를 사용하고 있었는데, Browser마다 JavaScript를 다르게 작성을 하다 보니
좀 힘들었죠. 그래서 이번에는 Flex를 적용하고 있는데 괜찮은 것 같아요.
Flex test는 IBM rational function tester를 사용해서 하고 있는데,
이렇게 시험해라라고 찍어서 test case를 만들어주면, 그 다음 부터는 자동으로 시험을 하죠.
public으로 되어 있는 버튼은 잘 잡는데 private은 못 잡아서 애를 먹고 있죠.
UI Test는 아직 까지도 초기 단계 인 것 같아요.
요즘은 인건비가 워낙 비싸니까, 여러 가지 측면에서 자동화를 하려고 노력을 하고 있죠.
아참, Flex 붙일 때도 MVC 구조로 가는 것은 러시아 친구들이 작업을 했어요. 대단한 친구들이죠.

DB는 PostgreSQL을 사용하는데 시장에서 요구가 다양하더라고요.
지금 MySQL깔려있는데, 또 PostgreSQL을 설치하라고 하면 말이 나온다고 그냥 아무거나 쓰면
안되냐는 식으로요. 그래서 사용하려는 게 Hibernate인데 이것 쓰면 아무 DB나 쓸 수 있더라고요.
그냥 되는 건 아니고요. 사용하는 DB schema format을 거기에 맞추어야 하니까
좀 작업이 필요하긴해요.

그리고 요즘에는 Cloud Computing에 해달라고 요구가 있어서 보고 있는데,
Smart Phone OS 전쟁이랑 비슷해요.
Google것, MS것, Amazon것 다들 규격이 달라서 아주 힘들어요.
Framework도 손을 봐주어야 하고, DB 사용하는 것도 상당히 달라지고 하니까
계속 적응하면서 나가는 수 밖에 없는 것 같아요.

다음에 놀러 올 때는, 러시아 친구하고 함께 올게요.
밥 한번 사주세요.

안녕히 계세요~ 젬선배님!




'도데체, 무슨 소리를 하는거야?' 하며 한번 찾아 보았습니다.

Microsoft SharePoint
SVN = Subversion
Microsotf Project
SRS = Software Requirement Specification
Spring Framework
JUnit (Unit Testing Framework)
Coverity Prevent = Lint 같은 Stactic Checking Tool
JSP = JavaServer Page
Adobe Flex
IBM rational function tester
MVC = Model-View-Controller
PostgreSQL
MySQL
Hibernate = JAVA ORM Library (DB용)
Cloud Computing

멀리 앞서가는 후배 덕분에 공부 많이 했습니다.
참으로 멋진 후배입니다. 하하

고맙습니다.


by 제임스 | 2010/05/16 23:06 | 메인스토리 | 트랙백 | 덧글(8)

트랙백 주소 : http://jamestic.egloos.com/tb/2604799
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 푸른나무 at 2010/05/16 23:45
클라우드 컴퓨팅을 이용한 개발도 점점 많아지고 있는것 같네요.
아무튼 정말 대단한 후배를 두셨군요.
저도 무슨 말인가 했는데, 아래 찾아두신 단어들 보면서 조금이나마
'아하' 했습니다. ㅎㅎ
Commented by 제임스 at 2010/05/18 14:24
아 그런거군요.
Cloud computing이 저에게는 가장 생소한 부분인데,
좀 더 열심히 공부해야겠네요.
시간은 부족하고, 하고 싶은 것은 많고. 하하
Commented by 푸른나무 at 2010/05/18 14:26
'클라우드의 충격'이라는 책을 살짝 추천해봅니다. ㅎ
Commented by 제임스 at 2010/05/19 09:09
책 추천까지… 대단히 고맙습니다. ^^
푸른나무님 새내기이신 것 같은데
새로운 기술에 관심이 많으시군요. 훌륭합니다.
오늘도 기분 좋은 하루 되시구요.
Commented at 2010/05/19 22:28
비공개 덧글입니다.
Commented by 제임스 at 2010/05/20 08:51
수정하였습니다. ^^
Commented by 이상훈 at 2010/05/19 22:28
저희 회사와는 좀 다르군요;;; 시장적기 출시라는 사명 아래 오늘도 보고 싶은 드라마를 못 보네요.
Commented by 제임스 at 2010/05/20 08:53
어느 회사나 시장의 요구가 최우선인것 같아요.
그 외중에 사원들도 함께 즐거울 수 있을면 제일 좋을 것 같고요.
그나저나 상훈님, 오랜만이네요. ^^

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶