본문 바로가기

IT/Hot Issue, Services

최신 기술 사용하기

얼마 전에 2004년형 모토로라 스타택(...)[각주:1]을 그대로 쓰고있는 날 보고 사장님이 "너 얼리어답터인줄 알았는데 그게 아닌가 보구나?"하는 말을 하셨는데, 내가 얼리어답터인 쪽은 정작 따로 있다. 바로 프로그래밍.

요즘 인턴하고 있는 회사에서 Django로 웹어플리케이션을 하나 짜고 있다. 개발 중인 다른 제품을 백엔드로 하여 내부 API를 통해 사용할 예정이긴 하지만 사실상 1인 프로젝트나 다름 없어서 server-side부터 HTML/CSS 코딩까지 혼자 다 하고 있다. (그나마 디자이너 분이 계셔서 다행이다.)

아직 회사가 작은 규모라서 가능하기도 했지만, Python + Django로 상용 제품을 개발한다는 것 자체가 사실 그리 쉬운 일은 아니다. 해외에서야 많이 검증되고 개발자층을 확보했다쳐도 국내에서는 본업보다는 개인적인 흥미로 다루는 분들만 소수 존재할 뿐이다. (본업으로 다루시는 분들도 아주 조금씩은 있는 것 같지만 아직 Django 써서 런칭했다는 국내 서비스는 못 들어본 듯. RoR이야 뭐 미투데이도 있고 스프링노트도 있고 그럭저럭 있지만.) 아무래도 내가 인턴 끝나고 나가더라도 유지보수하기 쉬워야 한다는 점에서 회사 입장에서는 조금 꺼림칙할 수도 있었겠지만 다행히 내 선택을 존중해주었다.

오늘부터는 회사 전체적으로 향후 새로운 서비스를 개발할 때 UI 디자인 요소를 사용하기 쉽도록 일종의 테마 라이브러리 만드는 작업을 하고 있는데, 여러 테마를 미리 만들어놓고 HTML/CSS로 자주 사용되는 요소들을 뽑아 미리 stylesheet까지 다 만들어서 나중에 가져다 쓰기만 하면 될 정도로 하는 것이 목표다. id/class 이름이나 전체적인 DOM 구조까지 다 설계하였다. 그 과정에서 역시 전통적인 골칫거리(?)인 rounded box 문제[각주:2]가 나왔는데, 전통적인 해결책은 의미 없는 HTML element를 추가하는 것이나 개발 효율성이 더 중요하다고 판단하여 CSS3의 border-radius를 그냥 쓰고 IE에서는 네모난 상자 모양으로 대체 처리(fall-back)가 되게 하기로 했다.

이것은 rounded box가 rectangle box로 보인다고 해서 서비스 접근성에 지장이 생기는 것도 아니고, 우리 회사의 서비스들이 일반 대중들을 상대로 한다기보다는 전문가 집단을 타겟으로 하기 때문에 굳이 그만큼 노력을 들여서 디자인에 맞출 필요는 없다는 판단이 깔려있는 결정이었다. 하지만 정말 디자이너가 만든 것을 그대로 한치의 오차도 없이 구현해야 한다면 자바스크립트의 도움을 받거나 지저분한 DOM을 감수할 수밖에 없다.

이렇듯 신기술이 나와도 호환성 문제(웹쪽에선 IE가 가장 문제긴 하지만) 때문에 어느 하나 손쉽게 쓰기 힘들다. 하지만 그 안에 안주하다보면 발전하기 힘든 것도 사실이다. 우리나라는 시장이 크지 않아서 그런 걸까, 어떤 면에선 굉장히 빠르지만 또 다른 면에서는 새로운 조류의 흐름을 빨리 받아들이지 못하는 부분이 있는 것 같기도 하다. 사실 개인적으로는 해외에서 Django 개발자로 같이 일해보지 않겠냐는 제의를 2차례 받아보았을 정도인데, 그만큼 그쪽은 수요가 있다는 뜻이나 우리나라에서는 Django로 프로젝트를 해도 유지보수 때문에 묻혀버릴 정도니... (아주 잠깐 운영되었던 지금의 textcube.org 바로 전 버전이 그런 케이스. orz)

한편 다른 종류의 호환성 문제로는 아이폰 도입 논란도 있다. 기술적으로는 이미 아이폰보다 훨씬 좋은 휴대전화를 만들 수 있지만 사회적 호환성 때문에 진화하지 못하고 있는 것이라고도 볼 수 있다. 웹개발 업계에서는 Firefox가 등장하여 IE의 진화를 촉진했듯이, 이동통신 업계에서도 아이폰을 통해 더 좋은 휴대전화와 서비스가 나올 수 있는 환경이 마련되었으면 좋겠다.

마지막으로, 나 자신 또한 내가 현재 알고 있는 것들에 안주하게 되어버리지 않도록 끊임없이 노력해야겠다는 생각을 해본다. Django가 지금은 좋다고 하지만 언젠가는 그것보다 더 나은 무언가가 나올지도 모르는 일이고, 그럴 때 내 스스로 거부감 없이 받아들일 수 있도록 항상 열린 자세를 가져야 한다. (사실 요즘 회사에서 Django를 매우 빡시게 쓰면서 한계점들도 발견하는 중이다.) TDD도 시도했지만 역시 이것도 익숙해지려면 많은 노력이 필요하다는 걸 느낄 수 있었고, 애자일 또한 모든 사람에게 있는 그대로 적용할 수 있는 것은 아니라는 경험도 할 수 있었다. 경력이 많은 사람일수록 그 경륜·경험에 의한 노하우적 가치가 큰 대신 새로운 방법을 받아들이기 힘들어하고 이는 사람인 이상 어쩔 수 없는 면이기도 하다. 절대적인 정답을 단언할 수 없는 상황에서는 스스로의 노력을 통해 자신의 유연함을 잃지 않도록 노력하는 것이 중요한 것 같다.


  1. 이거 미투모바일 알림문자 받아서 네이트버튼 누르면 메모리 부족하다고 뜨지도 않는다.;; 아이폰 나오면 질러야지. ㅋㅋㅋ [본문으로]
  2. 깔끔한 HTML과 CSS만으로 둥근 모서리를 가진 상자를 만드는 것은 그리 간단하지 않다. 가로 폭이나 세로 높이 고정된다는 가정이 있더라도 최소한 2장의 이미지를 잘라 만들어야 한다. CSS 3.0부터는 border-radius라는 속성이 추가되어 이미지 없이 CSS만으로 원하는 효과를 손쉽게 구현할 수 있고, 현재 Webkit 계열의 엔진을 쓰는 Safari/Chrome 및 Gecko 엔진을 쓰는 Firefox와 관련 브라우저들은 모두 이를 지원하고 있다. [본문으로]