페이지

2017년 10월 17일 화요일

만화로 새로운 것 설명하기



최근 Mozilla Hacks Blog에 올라온 글이 화제가 되고 있는데, 그림으로 Mozilla WebRender를 잘 설명했다.


보통 소프트웨어 기술을 설명하면,  위와 같이 블록 다이어그램에 몇가지 화살표를 이용해서 개념적으로 설명하는데, 기반 기술을 이미 알고 있는 사람만 이해하 가능하다. 참고로 ChromeOS에 적용된 zero-copy texture upload를 설명하는 그림이다.


그래서 때로는 위와 같이 실물 사진으로 동작을 표현하기도 하는데, 이렇게 하면 좀 더 많은 사람들이 이해할 수 있다. 하지만, 이런 그림을 일반 개발자가 표현하는데는 한계가 있다. 직접 없는 사진을 만들어 낼 수 없기 때문이다. 게다가 이러한 개념적 표현은 어떤 표준도 없기 때문에 때로는 서로 다른 표기법으로 혼란을 줄 수 도 있다.

이 Mozilla blog글은 이러한 한계를 극복하고 만화 캐릭터로 브라우저 동작을 잘 표현했다. 물론 저자의 캐릭터와 스타일은 이미 있는 xkcd라는  캐릭터을 참고한 듯 보인다.
구글에서 예전에 크롬 브라우저를 출시할 때, 브라우저 Multiple Process Model을 광고하려고 위와 같은 만화를 그린적이 있다. 지금 봐도 신선한 시도다. 뭔가 새로운 것을 만들 때는 이런 방식으로 사람들에게 설명하면 더욱 효과적일 듯!


2017년 9월 25일 월요일

좋아하는 프로그래밍 언어

오랫동안 개발자로 일하면서 다양한 언어를 공부하고 사용했지만 사실, 특별히 좋아하는 언어는 없었다. 베이직을 좋아하는데, 그건 처음 배우 언어였고 그 개발 환경을 좋아했다. 컴퓨터와 대화하는 듯한 기분을 주기 때문이다.

주로 C/C++를 사용하지만, 좋아한다 이런 느낌은 없는 것 같다. 그렇다보니 언어의 깊은 곳까지 속속들이 공부하지는 않고 그냥 있는 그대도 써왔던 것 같다. C++11등 새로운 기능이 추가되면서 뭔가 더 복잡해진 느낌. Java는 처음 배울 때 너무 좋았다. Network, Thread 프로그래밍 등이 쉬웠다. 안타깝게도 실전에서 단 한번도 사용을 못했고, 지금 Java는 내가 배운 자바와는 다른 언어가 된 느낌이고, Oracle에서 인수한 후 어떻게 변해가는지도 잘 모르겠다.

요즘 Rust라는 언어를 공부하면서 뭔가 좋아하는 언어가 있어야할 것 같다는 생각이 들었다. 그러면서 다시 Objective-C도 쳐다보고 Swift도 보고 있다.구글도 Kotlin언어를 발표했고, 켄 톰슨이 구글에서 새로 만든 Go언어도 있는 등 뭔가 살펴볼 언어가 많다. 어찌되었던 기술적인 측면을 떠나 그냥 좋아하는 언어가 있으면 좋겠다. 그리고 왜 좋은지 사람들에게 설명할 수 있고 뭔가 그 언어에 대한 구루가 되고 싶다. 비록 오래전에 나온 언어라도 말이다.

2017년 8월 19일 토요일

이제 Mozilla Servo Project에 기여할 때...

모질라 전 CTO가 올린 이 글을 보니 마음이 착찹하다. 오픈웹을 내세우며 건강한 웹 생태계를 주도한 Firefox의 점유율이 10%대로 하락했다. 문제는 기술이 아니라, 마켓팅의 참패라는 것이다. 구글이 자신들의 서비스로 웹브라우저 선택권을 교묘하게 방해하고 있는 것이 큰 문제라고 한다. 크롬이 아닌 다른 브라우저로 구글 홈페이지에 접속하면 크롬 브라우저를 설치하라는 안내가 뜬다. 꼭 이렇게 까지 해야 하나 싶었는데, 이 덕에 모질라는 많은 사용자를 잃었다.  하지만, 희망이 있다고 하니, 바로 Servo엔진Quantum Project이다.  Servo는 모질라가 약간은 미친짓으로 만든 프로젝트이다. 브라우저 엔진 하나 만들자고 프로그래밍 언어를 하나 새로 만들었으니 말이다. 하지만, 현재 WebKit보다 contributors수가 많을 정도로 어느 정도 궤도에 올랐다. Quantum은 Servo에서 사용하는 일부 컴포넌트를 바로 Firefox에 적용하는 것이다. 전체 엔진을 바꾸기 보다는 이렇게 조금씩 바꾸어 나가는 것이 좀 더 경쟁력 있는 브라우저 만드는데 도움되리라 판단한 것 같다. 특히,  WebRender는 기대가 큰 서브 프로젝트이다. 아래 Youtube를 보면 이해가 갈 것이다.


하지만, 아직 Servo가 갈 길은 멀다. 이제 Servo에 기여할 때다.