메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

이아스님이 제공하는 자바 헤드라인

한빛미디어

|

2001-12-18

|

by HANBIT

6,173

지난주에는 자바원 컨퍼런스 특집 관계로 다른 소식을 전하지 못해 내용이 조금 밀렸습니다. 우선 사이트 몇개를 소개할까 합니다. 먼저 "자바 플랫폼 퍼포먼스 전략과 전술(Java Platform Performance Strategies and Tactics)"라는 거창한(?) 제목의 책의 사이트입니다. 지난번 자바원 컨퍼런스에서도 다수의 J2SE관련 세션을 맡았던 스티브 윌슨(Steve Wilson)씨가 쓴 책으로, 크게 전략 파트와 전술 파트로 나누어 "도대체 퍼포먼스란 무엇인가"부터 시작하여 자바 특유의 성능 향상법까지 자세하게 알리고 있습니다. 부록으로는 자바 핫스팟 VM(이하 JHVM) 제작팀의 수장답게 JHVM의 전모를 아주 소상히 밝히며 앞으로의 JHVM의 나아갈 길도 얼핏 제시하고 있습니다. 시중에 이미 지바 퍼포먼스 (튜닝)에 관련된 책들이 상당수 나와있는 지점에서, J2SE, 특히 심장에 해당하는 JHVM의 제작자가 밝히는 전략전술은 과연 어떤 의미가 있은 것일지요. 성능 향상의 전술에는 크게 두가지가 있다고 봅니다.
하나는 자바 소스 코드 작성상의 향상, (Coding) 또하나는 자바 바이트 코드 운영상의 최적화 (Running)
전자는 "이렇게 저렇게 짜면 더 빨라지고 메모리도 적게 쓴다"는 개발자 실천적 과제라면, 후자는 "이렇게 저렇게 구동 조건을 조정하면 더 빨라지고 메모리도 적게 쓰며 안정적이 되고 따라서 서비스 품질이 높아진다"는 운영자-대소비자적 과제라고 여겨지는군요. 여기서 중요한 점은 "기존에는 자바의 후자적 상황이 무척 열악했다"는 것입니다. 즉 JVM자체의 성능도 극악하고, 그 JVM을 쓰는 사람의 마인드도 부족했었다는 뜻이죠. 따라서 결국 공은 코드를 짜는 개발자에게 넘어왔고, 기상천외한 코딩 기법으로 성능 최적화의 과제를 수행해왔던 것입니다. 그런데, 이런 상황은 "비즈니스"라는 특수한 환경에서 또한번 비틀립니다. 일명 "공기 납품 최우선"을 지향하다보니 "품질 개판 인정"이 공공연하게 인정되어 "시간 맞출래, 품질 맞출래"하면 당연히 "품질은 무슨 개 풀뜯어먹는 소리... 기간 맞춰야 돈을 받지"하는 사업지향적 사고가 어느덧 개발자에게 까지 몸에 베인 셈입니다. (비단 한국만의 이야기는 아니겠지요. 미국이나 일본이나 다들 마찬가지인가봅니다. 개발자 하소연란이 그런 얘기 없는 곳이 없으니까요.) 결국 개발자에게 넘어온 공마저 어디로 차버렸는지 행방불명되버리고, 최종 평가는 "자바(프로그램)는 느리고 메모리를 많이 잡아먹고 심지어 불안(!)하기까지 하다."는 오명을 뒤집어쓰게 되는 것입니다. 그래서 가장 끝에 돌아는 욕은 썬이 먹고 말지요. 공동책임은 무책임이라고 하지만, 분명 이러한 악순환은 모두에게 책임이 있습니다. 가장 근본적으로 자바 기술을 만들고 관리하는 썬의 지나친 낙관주의도 이제는 지양되어야겠지요. 그리고 그런 변화는 사실로 나타나고 있고, 많은 시간과 돈(결국 인력)을 투입하여 무료 제품이나 다름없는 J2SE+JHVM의 개발에 매달리고 있습니다. 또한 단순히 개발에만 그치는 것이 아니라 결과물의 존재와 이점을 알리는 홍보-마케팅 작업도 최근 눈에 띄게 늘어가고 있는 추세입니다. 썬이 일찍부터(?) 정신을 차렸다면, 가장 경직된 축은 기술 사용자, 즉 사업가-경영진입니다. 인터넷 사업은 곧 시간 싸움이라는 인식이 팽배해져있는 가운데, 누구도 그분들의 행동양식에 손가락질하기는 쉽지 않을지도 모르겠습니다만, 결과적으로 인터넷 사업은 언제나 100% "선착순"은 아니라는 것도 드러난 사실입니다. 먼저 시작하고도, 빨리 해내고도 쓰러지고 자빠지는 경우는 널렸습니다. 후발주자로서의 이점은 역시 "반면교사", 즉 선발주자의 단점, 결점을 보고 보완, 향상시킨다는 것이겠죠. 이렇다보니 오히려 "죽쒀서 개주는" 꼴이 벌어지기도 합니다. 가장 힘 없다고 하는 개발자의 사정은 제 자신의 그것이기도 하기 때문에 혹독하게 나무랄 수 없을 것 같지만, 자신에게 엄해야하기에 인정사정 볼 것 없이 말한다면, "가장 결정적인 불안요소"입니다. 자바가 엉망진창이든, 사장이 무식하든, 꿋꿋히 자신의 만드는 무언가에 모든 걸 쏟고는 싶지만... 시간이 흐를수록 불안해지는 자신의 자리-경제적 불안감, 사회적 정체감-는 물론이고, 직장, 가정에서의 인간 관계등... 그 무언가에 집중하기에는 참으로 강력한 방해물(?)들이 폭주합니다. (이럴 때 에바를 탄다고 해서 싱크로율이 높을 리가 없죠.) 혹시 이 글을 읽고 계실 지 모르는 썬 관계자나 사용자(사장-이사급)분들께 귀뜸해드리고 싶은 개발자의 심정은, "일은 자기들이 저질러놓고 뒷감당은 다 나한테 떠넘긴다"입니다. 마치 동전의 양면과 같은 이 어려운 문제-개발자의 사업 참여, 어디까지 이루어져야하는가-는 앞으로도 두고두고 모든 업계에서 논의되어야 마땅하지만, 당장 시급한 것은 "다 같이 근본에 합의하고 있는가", 즉 최고의 품질을 고객에게 선사할 것인지, 아니면 빨랑 내놓고 나중에 더덕더덕 기울지, 아니면 아주 싼 값에 팔 것인지와 같은 아주 기본적인 회사의 방침과 전략전술에 동의하고 있는가입니다. 동의해나가기위해 설득-이해-양보의 과정이 필요한 것은 사실이지만, 어떤가요? 아예 그럴 마음이 없다면? 마음이 떠났다면? 도저히 안되겠다면? 왜 그런 지경까지 이르렀는지 모두 머리를 맞대고 고민조차 안하고 "바이바이"를 외치는 것이 작금의 현실이라 더욱 안타깝습니다. (그리고도 그런 상황은 잘도 악순환이 되구요. 종국에는 엉뚱한 고객이 돈쓰고 상처받는 상황 연출? 역시 이것도 나몰라라일까...) 정리하면 사이트 구축-서비스 제공-애플리케이션 개발은 누가 먼저라고 할 것도 없이 서로 대화를 피하지 않는 성실과 적극의 과정이 절실하며, 늘 변화와 요구에 부응할 수 있는 탄탄한 기초와 유연한 구조위에 서서, "시작이 반 운영도 반"이라는 자세로 부단히 임하는 일이 아닐까요? 결국 선택받는 이는 "빨리 나오고 허벌레 해지는" 것이 아니라 "빨리 나왔으면서도 꾸준히 나아지는" 제품이라는 것을 깨닫는 데 그리 오랜 시간은 걸리지 않겠지요. 최근 전세계 자바인들의 최고 화제로 이미 완전히 떠오른 디자인 패턴이 설계적인 측면의 향상안이라면, 자바 퍼포먼스 튜닝-성능 조율은 운영상의 방안이라는 점도 주목해야할 것입니다. ***** 다음 사이트는 자바 인 더 박스(Java in the box)라는 무척 센스있는 이름을 가진 곳입니다. 자바 스터디 네트웍의 소식란에서 J2SE 1.4 멀린에 대한 좋은 내용을 많이 담고 있는 사이트라고 해서 가보았더니, 바로 자바 인 더 박스의 부속 페이지였습니다. 아무래도 저도 멀린 기준 자바 입문서를 쓰고 있다보니 무척 관심이 갔는데, 일분이 운영하시는 곳인지라 일본어가 곤혹스러우신 분은 번역기로 보시면 되겠고, 지니 클럽이라는 스터디 사이트에서 매끄럽게 다듬어 제공하고 있습니다.(J2SE1.4쪽 링크로 가시길) 사이트 운영자이신 사쿠라바 유이치님의 최근 관심사는 역시 멀린이지만, 사이트에 가보시면 아주 흥미로운 진행방법이 돋보이는 "The Second Step of Java"(UML로 설계도를 그리면서 실생활적인 설명 듬뿍에 예제 게임 개발), 온도 감시 시스템 개발에 자바를 도입하는 과정이 나오는 "FA를 위한 자바 프로그래밍 강좌"도 무척 신선합니다. 일본에 자바 고수가 많다라...는 말에는 사실 동의하지 않을 수가 없군요. 자바 월드라는 월간지, 자바 익스프레스라는 비정기 간행물, 그리고 C매거진, DB월드를 비롯한 타분야 잡지에서의 자바 기고문을 보노라면 이 글들을 다 누가 쓰나 싶을 정도이고, 그 내용들도 도표나 이해의 수준, 팁등이 정말 "제대로 알고 자세히 알지 않으면" 나올 수 없는 것들이 대부분입니다. 흥미로운 것은 일본 자바 인력 자체는 부족하다는 것입니다. 그리고도 J2EE쪽은 훨씬 극심한 중-고급 인력 가뭄에 시달리고 있습니다. 아니, 고수들이 많다며, 다 먹물들인가... 싶겠지만, 묘하게도 일본에는 J2ME, J2SE쪽은 고수가 우리나라나 미국에 비해 고수가 많은 반면, J2EE는 그에 비해 많다고 할 수 없습니다. 오히려 일본 현지 수요에도 못쫓아가는 실정이기까지 하니까요. 왜 이런 현상이 벌어졌을까... 자바 인 더 박스 사이트만 보아도 감을 잡을 수 있는 것이, 자바에 관심 있고 열심히 하는 사람들이 아이러니하게도 비전산 전공자인 경우, 그리고 순수 자바만 처음부터 했다기 보다는 C나 C++, 스몰토크등에 능수능란한 사람들이 자바로 이전(migration)해온 경우가 많습니다. 엔지니어를 위한 리쿠르팅 전문 잡지등을 보아도 일본에 상당히 두터운 베테랑 개발자군이 포진하고 있음을 느낄 수 있구요. 문제는 타분야의 젊은 피건 자분야의 노련미이건 자바 자체를 보는 관점이 "자바 중심적-자바 지향적"이라기 보다는 "자기 중심적-이용 지향적"이라는 것입니다. 자바에 대한 사랑은 누구못지 않으면서도, 철저하게 자바를 자기화시키는 힘, 즉 외국의 문화를 받아들임에 있어도 결국 본질은 자신을 것을 지키는 일본 특유의 소화문화가 자바에게도 적용되는 셈이지요. 사랑은 상대와 하나가 된다는 점에서 상대를 자신과 혼동하는 것이 아니라, 상대의 존재를 알고 자신에게 맞춘다는(혹은 자신이 맞춰나간다는) 자세는 최근 일본 젊은이 세대들에게서 점점 사라져가는 일본적 미덕이 아닌가 생각합니다. 지독한 봉사정신에는 진저리가 났는지, 이제는 세대 가릴 것 없이 막나가는 상황이 비일비재함을 이웃 중국요리집 아주머니도 한탄하시던데, 그래서 일본의 젊은, 그리고 순수 자바 개발자는 참으로 진귀한 존재들중 하나입니다. 혹시 일본에 와서 자바 개발자로 성공하고 싶으시다는 분(이미 시작하신 분도 계시겠지만)은 어떤 면에서는 한국보다, 혹은 본고장 미국보다도 좋은 환경일지 모릅니다. 아직도 기성세대는 장인 정신을 숭상하고, 한분야에서 최고인 이를 존경하고 제대로 대접합니다. 앞서도 지적했듯이 나이가 들어 코딩의 순발력은 떨어질 지 몰라도, 경험과 세월이 아니면 볼 수 없는 것을 볼 수 있는 눈을 가졌다는 것만으로도 결코 헛산 인생은 아닐 것입니다. 중요한 것은 노련한 자바 개발자-설계자-운영자가 절대절명으로 필요하며, 앞으로는 더 필요합니다. 지금 만들고 있는 수많은 사이트들과 애플리케이션들, 철인 28호가 아닌 이상에야 언제고 고치고 바꾸고 이끌어야할 판입니다. 코볼이 객체지향의 은혜를 입고 부활하고 있는 여기 일본에서, 가장 필요한 마음은 느긋하되 은근한 평안입니다. 그나저나, 운영자는 할 일도 많을 텐데 어째서 저런(?) 사이트를 운영하고 있을까... 제가 감히 미루어 짐작해본 것이라면(광고 배너도 없는데)... 기본적으로 "자신이 사회로부터 배운 만큼 사회에 환원한다"는 바탕위에, "다음에 자신과 같은 일을 하는 사람이 애먹지 않게 하기 위해"라는 배려, 그리고 "자신이 발견한 것을 함께 하려는" 기쁨이 한 데 어우러진 것이 아닐까... 물론 자기 PR도 있겠지만요.(그러기엔 자신의 프로필 페이지조차 없다는 것이 오히려 숙연해질 정도.) ***** 마지막 소식은 지난 자바원 컨퍼런스에서 어떤 분이 소개해주신 "운영중인 JVM을 교체하는 솔루션"에 대한 소문(?)입니다. 정확히 컨퍼런스 이틀째의 BOF-45에서 등장한 이야기로, 코그니티브 연구소(Cognitive Research Labs, Inc.)에서
"예를 들어 현재 서비스 운영준인 JVM이 1.3.1인데 이걸 1.4로 업그레이드 하면서 동시에 서비스는 안죽이는"
작업이 가능하다고 했답니다. (수시로 장시간 점검과 업그레이드를 일삼는 일부 사이트를 보면) 얼핏 상상이 잘 안가는데 아무튼 더 구체적으로 예를 들어 JVM이 1.3.1인데 이걸 기반으로 웹 애플리케이션 서버를 돌리고 있다가 아주 자연스럽게 JVM을 1.4로 업그레이드하면서 서버-서비스 자체에는 전혀 지장이 없게 할 수 있다... 이론적으로만 본다면 아주 불가능한 것은 아니겠지만, 다소 시스템적인 요소가 들어가고, 실제로 얼마나 솔루션적인 해결이 가능한지는 미지수가 되겠습니다. 더불어 "그냥 좀 죽였다 살리면 되지. 미리 공지 좀 때리고" 하시는 분들에게는 전혀 필요없는 "헛짓"으로 보일 수도 있겠네요. 하지만 365일 24시간 뺑뺑 돌며 절대 죽어서는 안되는 사이트(아마존을 예로 들었다는데, 아마존은 정기 정검일이 없나...)정도면 상당히 어필하는 솔루션이 아닐까... 아마 컨설팅비가 더 비쌀지도... 아무튼 이런 것이 있기는 있답니다. 혹 필요하신 분은 위의 사이트로 가셔서 상당을 받아보세요.
진정(?) 다사다난했던 2001년도 서서히 그 대미를 장식하고 있습니다. 요몇시간전 IT교육중 J2ME 코스에 대한 문제점을 지적한 글을 읽었는데, 강사의 질을 논하는 부분이 있더군요. 실력이 있다고 해서 다 잘 가르치는 것은 아닙니다. 훌륭한 학자가 훌륭한 선생님과 일치하지 않는 경우는 오히려 흔합니다. 뉴튼은 20대에 대학 강단에 섰지만, 수강생은 10명 미만에, 그마저도 겨우겨우 수업을 끝낼 수 있는 정도여서 그 이후로 뉴튼에게 강좌를 강제(?)하지 않았다고 합니다. 최근 우리땅에 "선생님"에서 자꾸 "님"자가 빠져나가버리는 현상은 그냥 웃어넘어갈만큼 가벼운 시류만은 아니지 않을까 싶습니다. 무척 죄송스러운 말씀이지만, 선생님들 스스로가 강호에서 물러나(혹은 밀려나) 그나마 먹고 살기 위해 교편을 잡고 있다는 듯한 그늘진 모습을 보여주었던 것이 학생들로 하여금 "선생님은 사회의 주류세력이 아니며, 고로 무능하며, 따라서 배울 것이 없다"는 식의 영특한 판단을 내리게 이끌었던 이유가 아니었을까... 요새처럼 성공의 질주가 모두를 휩쓸고가는 상황이라면 그리 극단적인 추론도 아니겠지요. 언제부턴가, 우리 업무 현장에 사수-부사수의 시스템이 점점 희석되어가고 있다는 소리가 들려오기 시작했습니다. 모르는 것이 있으면 책을 보던가 교육을 받던가 하라는 모 대기업의 캐치 프레이즈는, 사원 각각의 경쟁력 강화와 냉정한 현실에 적응시키는 데에는 도움이 될 지 모르겠지만, 마치 "가장 큰 나무만 보고 그 뒤에 합치면 그 나무보다 몇천배 몇만배 큰 작은 나무들-숲"을 보지 못한 기분입니다. 우리네 따뜻한 인정과 서로 돕는 마음을 활용할 곳에서는 활용하지 않고, 거꾸로 "체계적인 교육"이라는 미명아래 기계화되고 천편일률적인 체제만을 강요한다고 보면 지나친 억측일까요? 지금 당장은 잘 굴러갈 지 모르지만, "각각으로 흥한 자, 각각으로 망할" 수도 있겠죠. 그래서 모두들 가르치는 일을 두려워하고 기피합니다. 자신의 기술이 새어나간다는 것, 자신의 경쟁력 약화와 동시에 타인의 경쟁력 강화를 의미합니다. 자기 할 일도 바쁜 데 그럴 틈이 어딨냐고 본인도, 회사도 다그치겠죠. 이런 상황에서 시너지 효과니 어쩌니 해봤자 아무도 마음을 열지 않습니다. 이런 현장이 학교를 향해 "왜 실무 교육이 형편없냐"고 할 자격이나 있을까요? 아무리 프로젝트 스타일 교육을 하고 실무 강력한 선생님한테서 배웠어도 그것은 어디까지나 "학교"안에서의 학습일뿐입니다. 훈련소의 사격과 전장에서의 사격이 다르듯이요. IT분야의 선생님은 무척 독특한 입장에 처해있음이 분명합니다. 무엇보다 학생들의 요구가 엄청나게 큽니다. 그리고 그 학생들을 요구할 현장의 요구는 더 큽니다. 무엇을 어떻게 가르쳐도 부족하다는 말 듣기 딱 쉽습니다. 저는 IT분야의 선생님들이 현업의 상황을 체험할 수 있는 교환 시스템이 필요하다고 봅니다. 당장 강사가 부족하다고 아우성에 안놔줄려고 하겠지만, 그러면 그럴 수록 코스의 질과 학생-현장의 불만은 고조되며 결국 교육 자체가 흔들리게 될 뿐입니다. 산학 협동이 무슨 고상한 대학과 대기업 연구소 사이에서만 벌어져야한다는 것만은 아니지 않을까요? 정말 사생활 다 포기하며 낮에는 강의, 밤에는 현업을 하시는 선생님이 계시다면, 안타깝지만 그것은 둘 다 제대로 못할 수도 있다는 것 또한 현실 아닐까요? 의욕있고 제대로 하고 싶어하는 우리의 "선생님"들에게 어쩌면 재충전이 될 수 있고, 그리고 현장에서 얻은 것을 고스란히, 아니 몇배 더 학생들에게 전하리라는 결코 이상론적 제안만은 아닐 것입니다. 더우기 교환 시스템의 반대편으로 현업에서 활약하시는 분들에게 강단을 통한 언로를 열어 줄 수도 있어 일거양득이죠. 또한 기술을 가르치는 선생님이 "전문 기술"만 아시고 "가르치는 기술"은 모르신다는 것도 지적받곤 합니다. 사범대학을 나온 것도 아니고, 딱히 특별한 교육학적 과정을 경험하기 어려운 것 또한 많이들 이야기합니다. 최근 이러한 문제를 해결코자 많은 IT전문교육 기관들에 "강사를 가르치는" 코스까지 등장했는데, 이 또한 아직 "선생님"으로서의 자질을 함양시키기에는 턱없이 부족한 실정입니다. IT분야의 선생님들은 방학 때가 피크인지라 따로 어떤 기간동안 연수를 받을 기회조차 난망하지요. 그러나 더 필요한 분들이 바로 그분들입니다. 오히려 방학 때가 아닌 기간에 IT분야 선생님들의 "선생님 만들기"가 이루어져야 하며, 하루이틀 초빙강사한테 좋은 말 듣는다고 해결될 일이 아니라, 일선 학습 현장에서 벌어지는 다양한 문제와 해결방안, 학생들의 심리와 불안감의 근원, 성인 교육의 난맥상과 세계각국의 접근 방식등 그야말로 여지것 "기술만 넘겨주면 땡"이라는 발상에서 벗어나 "기술인을 양성하는 사명감"을 심어주어야겠습니다. 오직 선생님 개인의 타고난 교수 기법과 대인 태도에만 의지한다면, 좋은 선생님 구하기란 바늘 구멍에는 점점 더 통과할 낙타가 없어지지 않겠습니까? 다른 분야 선생님한테는 그렇게까지 요구하지 않으면서, 그래서 IT분야 선생님들에게는 보이지 않게 들리지 않게 근원적인 중압감이 깊습니다. IT분야 학교의 특수성도 마찬가지이기는 합니다. 뭘 가르치건 학교는 학교입니다. 아무리 실제 현장 기술 분야라고 해도, 기초와 원리를 배워야하는 곳이 학교입니다. 당연히 그런 딱딱하고 지루한 것은 재미도 없고 멀게만 느껴지지요. 그러나 중요한 것은 바로 그 "기초와 원리"를 현장에서는 배울 수 없다는 것입니다. 그리고 현장도 마찬가지입니다. 경력자가 아닌 이상에야 이제 겨우 특정 과정만 마친 사람에게 만물상적 기능성을 요구하는 것도 지나친 기대이자 불합리입니다. 서로서로 "가르치는 일"을 떠넘기지 말고, 책임있게 제대로 학교는 기초와 원리, 현장은 실제와 응용을 가르쳐야합니다. 기초와 원리는 바쁘고 복잡한 업무속에서 진듯하고 집중적으로 익히지 못합니다. 실제와 응용은 상황과 경우를 맞닥뜨리지 않고는 전혀 와닿지 않습니다. 선생님은 분명 존경받아야할 직업입니다. 다만, 21세기의 오늘을 살아가고 있는 모두가 그 존재 의미에 대해 서로 제각각의 생각을 해왔던 것 뿐입니다. 선생님은 수퍼맨이 아닙니다. 반드시 해당 분야의 최고 전문가도 아닙니다. 도덕적으로 한 점의 먹구름도 없고, 늘 웃는 얼굴을 하는 성인군자도 아닙니다. 우리가 선생님을 존경해야하는 이유는, 남들이 안하려고 하는 일을 기꺼히 하려고 마커를 잡았다는 용기입니다. 할 일이 없어서 그렇다는 둥 능력이 없어서 그렇다는 둥의 폄하는 부디 지우시길 빕니다. 선생님으로서 가장 보람찬 일은, 제자들이 시쳇말로 "잘나가는" 것이 아닙니다. 나중에 자신이 가르쳤던 학생이 어디선가 또 누구를 가르치고 있다는 소식을 들을 때입니다. 한편으로는 "그녀석 싹은 보였는데 음..." 하며 탐탁치 않게 여길 지 모르지만, 퇴근길에 대포한잔 걸치며 시나브로 미소를 짓게 됩니다. "힘든 일인데... 잘 가르쳤으면... 내가 그녀석한테 잘 가르쳤던가..." 우리의 선생님, 사회의 냉대와 학생들의 은근한 비웃음으로 손가락질을 받고 있어오지는 않았나요? 오늘도 묵묵히 "어떻게 하면 좀 더 학생들에게 도움이 될 수 있을까"하며 교실 문을 여는 그분들께 박수와 격려, 그리고 현실적인 처우 혁신의 축복이 쏟아졌으면 좋겠습니다.

오늘은 여러분의 마지막 불어 수업입니다. -알퐁스 도테(1840-1897), "마지막 수업"

TAG :
댓글 입력
자료실

최근 본 책0