일시 : 2012.10.20 1시

장소 : 신논현역 앞 교보타워

<자바 개발자를 위한 공감 세미나 / 출처 – Dragon>

자바 개발자를 위한 공감세미나가 열렸다. 벌써 9번째라고 하는데, 왜 이제서야 알았나 싶다. 세미나라면 꽤나 쫓아다녔다고 생각했는데…

오랜만에 참여하는 기술 세미나여서 기대가 컸는데, 길을 헤매는 바람에 일찍 도착해서 맨 앞에 앉으려는 바람과는 달리 시간을 딱 맞춰가는 바람에 구석퉁이에 앉게 되었다. ㅜㅜ

<자바 개발자를 위한 공감 세미나 일정 / 출처 – 공감 세미나 포스터>

두번째 세션 Java:The Good Parts

첫번째 세션은 자바 탄생 이야기였는데, 제임스 고슬링의 그린팀에 대한 이야기였다. 세미나장에는 필자와 함께간 4명의 초보개발자들을 제외하고는 대부분 3년 이상 경력자들로 보였는데, 그들에게 과연 이런 주제의 세션이 필요했을까 싶었다.

<공감 세미나 / 출처 – Dragon>

두번째 세션은 ‘Java:The Good Parts’ 라는 제목에 ‘자바 언의의 특징과 활용 방안의 주관적인 탐구’ 라는 부제로 박성철님이 강의를 했다. 두번째 세션에 대한 간략한 정리를 해보겠다.

자바의 설계 목표

1. 단순한, 객체중심, 친숙함

2. 견고하고 안전한

     견고성 = 정적static타입

     안전성 = 엄격한strong타입

3. 아키텍처 중립성과 이식성

4. 고성능

5. 인터프리터, 쓰레드, 동적

– 자바는 정적 타입 언어이기 때문에 IDE가 발달 되었다고 한다. (object-c는 동적타입)

– 좋은 디자인을 하려면 인터페이스를 잘 활용해야 한다.

– 자바에서 이름이 없어서 잊혀지는 존재가 있는데 바로 package-private( 또는 package-protected) 라고한다.

– public < protected < package-private < private

– 내부클래스(Inner Class) 는 Lisp에서 나온 개념으로 ‘클래스 = 파일’ 이라는 원칙에 위배되지만 자바 1.1에서 추가되었다고 한다. (패키지 > 클래스 > 내부클래스 > 매서드 > 블럭)

– 자바는 지금까지 4번 업그레이드 되었는데 .net이 많은 홍보를 통해 발전하자 자바 커뮤니티에서 우리도 업그레이드를 하자는 의견이 나와 ‘Enum, Generics’ 등이 추가되며 업그레이드 되었다.

– 자바는 인터프리터 언어로써 파이선과 유사한 실행구조를 갖는다.

– .java -> class -> jvm  자바 실행 순서

– .py -> .pyc(or .pyo) -> pvm 파이썬 실행 순서

– 메타프로그래밍 : 다른 프로그램을 생성하거나 조작하는 프로그램을 작성하는 행위 (마리오 네트 인형)

– Lombok : 생성자 등을 자동으로 생성해주는 좋은 컴파일러 확장의 예

– jvm 위에서 20여개의 언어가 실행될 수 있으며 byte code라면 원천을 따지지 않고 실행된다.

– 코드의 총량 = 상위구조재사용 + 실작성코드량 + 하위기능재사용

– 프레임워크는 설계가 아닌 경험을 기반으로 만들어져야 한다.

– 언어의 확장 : 라이브러리 (예 : OP4j)

– 자바는 언어적 한계를 설계로 해결하도록 합니다. 그래서 좀 수다스럽고 번거롭지만 지금까지는 21세기의 코볼 역할을 잘 하고 있어요. – 박성철

두번째 세션은 꽤나 많은 자료가 준비되어서 마지막 부분은 시간상 스킵하였다. 

<공감 세미나 / 출처 – Dragon>

개발자들의 세미나여서 자칫 칙칙할 위기를 모면하기 위함인지 (필자는 3명의 여성과 함께여서 칙칙하지 않았다. 훗.) 영어를 잘하는 여성이 사회를 보았다. (영어를 잘했다. 그래서 한국어는 어색?)

세번째 세션 챔피언이 사랑한 언어, Java

세번째 세션의 양수열님은 자바 챔피언이라고 하는데, 앞부분을 잘 못들어서인지 왜 챔피언지 몰라 집에와서 조사를 해봤더니 정말 챔피언이였다. (참조 – 네이버기사URL)

세번째 세션은 크게 자바가 발표된 1996년, 그리고 현재 2012년, 그리고 앞으로 우리의 포지션에 대한 이야기를 했다.

1996’s

– 자바는 새롭고 혁신적인 젊은언어.

– 웹과 같이한 언어

– 좋은 취지에 공감한 자바 개발자 커뮤니티의 젊고 혁신적인 개발자들이 자바의 발전을 이끌었다.

– 당시 자바를 개발하던 SUN에서 JVM을 만들때 탑클래스의 C개발자들이 투입되었다고 한다. 그리고 이때 탑클래스 개발자들 중 몇몇이 구글에서 크롬을 개발하고 있다.

2012’s

– Java라고 쓰고 Platform이라 읽는다.

– JVM에서 돌아가는 언어가 26개. (놀랍다…)

– 어떤 언어든지 일반적인 용도로 다 쓸 수 있는 언어는 없다.

– 목적과 용도에 따라 쓰는 언어가 달라진다. 완벽한 언어는 없다.

– Cloud, Big Data, Mobile + java + other

– 이제는 Server Level을 개발을 하더라도 모바일까지 고려를 해야한다.

Pinterest 등 Startup 에게서 배울 점이 많다. Startup은 적은 인원으로 모든 서비스를 만들어야 하기 때문에 사용하는 기술 등 보고 배울점이 많으니 관심을 갖는 것도 좋다.

– 다른 언어와 플랫폼으로 도전하는 용기가 정말 중요하다.

A Whole New World

– Developer = Creator

– 컨텐츠를 만들어 낼 수 있는 사람이 많지 않다. 작가, 작곡가 정도랄까? 우리는 자부심을 가져야한다.

– Global Market을 공략해라. 한국시장은 1%도 안된다.

– HW -> SW 이슈의 전환

결국은 끊임없이 도전하라는 자바 챔피언의 메시지.

네번째 세션 Useful tools for Java developer

꽤나 지루해질만한 네번째 세션에는 참여했던 필자의 동료들 모두가 세미나 최고의 강연으로 꼽은 이상민님의 강의가 기다리고 있었다.

대답을 잘하면 책을 주겠다며 시작했고 혹시나 자신을 보러 온 사람이 있느냐는 터무니 없는 질문에 손을 든 사람은 책을 받아갔다… ㅋ 가벼운 농담과 함께 분위기를 사로잡은 9회 공감세미나 최고의 연사의 세션이 시작되었다.

이상민님은 ‘자바 성능을 결정짓는 코딩 습관과 튜닝 이야기’ 등 몇권의 책을 쓴 저자였는데, 지금까지 개발을 하면서 많은 도움을 받고 있는 툴들을 소개해주었다.

– IDE 

– IDE가 이클립스만 있는 것이 아니다.

– Netbeans : 많은 외국 개발자들이 이클립스 만큼 사용한다. 특히, 오라클의 개발자들은 이클립스를 안쓴다.

– Intellij : 한번 써보면 빠져나오지 못하는 굉장히 편한 툴이라고 한다. (꼭 써봐야겠다.)

– JDK

– jps : java process 목록을 제공하는 툴

– jstat : JVM의 상태를 모니터링 하는 프로그램

– gcutil : GC 상태 모니터링

– gccappacity : JVM의 메모리 점유 상황 모니터링

– javap : 자바 클래스 파일 분석

– jstack : 쓰레드 덤프 발생, 사용하지 않는 것이 좋음

– jmap : 힙 덤프 발생

– Test tools

– Unit test tools

– UI test tool

– Acceptance test tool

– Performance test tool

– Profiling Tools

<공감 세미나 / 출처 – Dragon>

그저 툴들만 소개하는데 뭐가 대단하냐고 물을수도 있겠지만 이상민님은 Prezi 를 사용해서 화려한 애니메이션과 밝은 디자인으로 그리고 입담으로 지루하지 세션을 진행했다. 대부분의 참가자들이 집중했다.

또한 툴을 소개만 하는 것이 아니라 실제 사용 화면을 보여주며 사용 노하우도 알려주었다.

<공감 세미나 / 출처 – Dragon>

툴이라면 Eclipse와 json파일을 구조화 하여 볼 수 있는 툴이 고작이였던 내게 눈앞에 펼쳐진 수많은 툴들은 마치 다른 세상 같았다. 

저 툴들을 언제쯤 내가 사용할 수 있을까… 내가 저걸 전부 다 사용하는 실력 있는 개발자가 되려면 어떻게 할까? 라는 고민을 하던 중 세션은 임팩트 있는 화면으로 마무리 되었다.

<공감 세미나 / 출처 – Dragon>

툴을 많이 사용한다고 잘하는게 아니다. 상황에 맞게, 용도에 맞게 사용하는게 가장 중요하다고 했다. 굉장히 많은 정보를 얻어서 쉴틈 없이 카메라 셔터를 눌렀지만 공유는 이정도로 마무리 하는걸로… ㅎ

아쉬움… 그리고 기대되는 10회.

아쉬움이 남는 세미나였다. 좋은 장소를 빌렸고, 아주 쾌적했다. 쉬는시간에는 쿠키와 음료가 제공되었고, 여러권의 책들로 많은 이들에게 기회를 준 점은 칭찬할만 하다.

하지만, 사회자의 어색함 그리고 정작 기대했던 강의 컨텐츠의 질에는 아쉬움이 남았다. 특히, 첫번째 세션과 다섯번째 세션은 분기별로 진행되는 공감세미나를 위해서 비판한다. 다음 세미나에는 세미나의 본질에 대해서 생각하고 가장 중요한 강의 컨텐츠에 신경을 썼으면 좋겠다.

그럼에도 200명에 달하는 개발자들을 이렇게 모을 수 있는 파워에 놀랐고, 숨어있는 열정적인 개발자들이 이토록 많음에 감동하였고, 더욱 분발해야겠다는 동기부여가 되었다.

9회 공감세미나에는 별3개를 주었다. 10회 세미나에는 별4개를 기대한다.

<공감 세미나 / 삼총사와 함께 / 출처 – Dragon>

<공감 세미나 / 꽃밭에서 / 출처 – Dragon>