한때 유행했던 똥피하기 게임과 과일 자르는 모 게임을 섞어 만든 게임. 요즘 흔한 게임들과 같이 캐시를 통한 과금 정책을 가지고 있다. 아이템을 구입해 보다 효과적으로 과일을 파괴(?) 코인을 수집하는 것이 목적. 게임 내 화폐는 코인과 붉은 보석이 있는데 보석은 유료로 구입이 가능하며 다른 게임과 같이 보석은 잘 안나온다. (흔한 상술) 모든 과일에서 가끔 나오고 때때로 나오는 용과(Dragon fruit)를 파괴하면 얻을 수 있으나 정말 잘 안나온다.

코인으로 구입할 수 있는 것은 스킬과 그 스킬의 업그레이드. 스킬은 업그레이드 할수록 지속시간이 길어지거나 미사일의 발사 수, 경험치 획득량 등이 높아진다. 대부분 5단계까지 업그레이드 가능하다. 구입하면 게임서 세개까지 장착 가능하며 게임 중 해당 아이템이 떨어지고 습득하면 발동하는 식이다. 벨런스를 위해서인지 하나만 장착하면 20초마다 스폰하며 둘 장착하면 15, 셋 다 하면 10초마다 리스폰된다.

그 외에는 보석을 구입하는 것들인데 스테이지와 케릭터를 구입할 수 있다. 스테이지는 경험치 획득이나 용과의 출현 빈도를 향상 기킬 수 있고, 케릭터는 각각 특징적인 스킬을 쓸 수 있다. 기본 케릭터는 쉴드인데 그걸로는 과일을 깰 수가 없다. 용과가 나왔을 때 아이템이 스테이지에 없으면 통통 튕겨 화면 밖으로 나가는 걸 그냥 보고만 있을 수 밖에 없으므로 최소 두번째 케릭터 이상은 구입해둬야 좋다.

8비트라는 이름에 걸맞게 픽셀 아트를 느낄 수 있는 그래픽이나 사운드는 그냥 노멀하다. 특별한 점은 느끼기 힘든 게임. 가장 뜬금 없다고 생각하는건 게임 메인에서 나오는 닌자인데 왜 닌자가 해골이 끼워진 창을 들고 있는지, 아마존도 아니고. 게다가 구입할 수 있는 캐릭터 중 최상위 캐릭터가 브루스인데 생긴건 브루스 리 이소룡을 모티브로 만든듯. 상위 케릭터는 닌자랑 전혀 상관이 없는 컨셉과 기술들이다. 뭐 호불호가 있긴 하겠지만 타이틀을 닌자라고 붙이지 말고 도장 Dojo 등으로 하는게 낫지 않았을까? 아마도 아시아에 대한 스테레오 타입으로 만들어진 기분을 버릴 수가 없다.

무료게임이므로 이하 디테일한 리뷰는 생략한다. (…)

내가 하루키를 만난 것은 고등학교 때였다. 난 평범한 학생이었고 흔히 구입하는 정석을 인터넷으로 주문하다 당시 신간으로 막 나왔던 <해변의 카프카>와 <냉정과 열정 사이>를 같이 구입했다. 한없이 쿨한 까마귀 소년으로 시작된 하루키 읽기는 학교 도서관에 있던 하루키의 도서들도 모두 읽게 되었다. 학교 도서관도 의외로 하루키 장서를 많이 가지고 있었다. <상실의 시대 (원제:노르웨이의 숲)>도 판권이 들쑥날쑥 했던 역사가 있었기에 다양한 번역본이 있는데 도서관은 그 다양한 스팩트럼을 모두 보유하고 있었다. 하루키는 기존 단편을 가지고 기억을 짜맞추듯 적어간 소설이 <노르웨이의 숲>이었기 때문에 모든 저술 사이에서 같으면서 다른 기분, 모호한 분위기를 어쩔 수 없이 풍길 수 밖에 없다. 그 결과로 자연스레 사건과 케릭터는 흐려지고 그 모호성만 감상으로 남게 된다. 그게 내 고등학교의 문학적 감수성(?)을 지배했다.

하루키는 수많은 단편과 연재글이 있는데 국내에도 번역서가 몇 권 있긴 있다. 전속으로 계약된 곳이 없어서인지 아니면 실로 일본에서도 판권이 제각각이라 그런지 몰라도 출판사마다 멋대로 엮어서 하루키 단편으로 출간하고 있다. 그 결과 번역도 다양하고 그 글마다 풍기는 느낌이 너무 달라 모티브만 가져와 새로 작성한 글과 같은 기분이 들 정도이다. 이 글을 쓰며 생각나는 단편은 <꼬깔과자>. 역자의 역량이 얼마나 중요한지 하루키의 소설을 통해 알게 되었고 하루키의 소설을 원어로 읽어보고싶다는 생각을 왜 하는지 알게 되었으며 또 그래야겠다고 결심도 했다. (하지만 여전히 일본어는 꽝)

하루키의 수필집이란 이름으로 기고했던 글을 모아둔 책이 시중에 있는데 그게 참 재미있는 책이다. 일상적이고 담백한 문체, 독특한 위트가 묻어나는 수필을 보며 나도 이런 글을 쓰며 살고 싶다는 생각을 하게 되었다. 그의 영향으로 (물론 장르는 전혀 다르지만) 소설도 썼으니 그냥 독자라고 하기엔 조금 그 이상을 지향하고 그 시절을 보내지 않았나 생각한다. 갑자기 생각난 것이, 소설을 보내는데 아무래도 학생이다보니 그랬는지 선생님의 추천서였는지 뭔지가 필요했기 때문에 어쩔 수 없이 선생님께 그 원고를 드렸어야 했다. 그 탓에 내 나름 생각의 흐름을 표현하고자 했던 표현들을 아래아한글의 맞춤법 교정으로 다듬으셔서 외국인이 쓴 소설과 같은 맛(?)이 났다. 그리고 선생님이 추천서에 쓸 요량이었는지 좋아하는 작가가 누구냐, 심훈이냐, 박경리냐, 이렇게 물어보셨었는데 대답을 할 수가 없었다. 다 존경받아 마땅할 분들이지만 영향은 하루키인데 말하면 한소리 들을 것 같아서, 마침 담임 선생님도 국어 선생님이셨는데…

끊임없는 작품활동을 하고 있는데 저술 활동의 속도를 열심히 따라가지 않고 있는 열혈 독자는 반성해야 하려나. 요 근래 나오는 책들은 거의 읽어보지 못했다. <1Q84>는 군에서 읽긴 읽었는데 세 권을 붙여놓고 읽지 않아서 내용도 가물가물 하고, 언제 날 잡아서 다시 읽어야지 싶다.

하루키의 글은 언제, 어떤 책을 읽더라도 앞서 얘기한 모호성이 책 머릿말부터 뒷면 검은 바코드까지 지배적이라, 역시 하루키씨는 언제나 한결 같군요, 이런 느낌이다. 시대의 센세이션을 주도하던 작가인데 이제 점점 할아버지가 되어가고 있어 글에서도 정형성이 점점 나타나고 있긴 하지만, 그게 나이가 들어서 굳어가는 것이 아니라 점점 완성의 방향으로 나아가고 있는 것이라 생각된다. 내가 쓴 글인데도 무슨 말인지 잘 모르겠지만 아무튼, 조만간 노벨 문학상 타시길 기대해본다.

PS. 제목은 <곰을 풀어놓다> 패러디. 에세이 중에서도 <고양이를 풀어놓다>로 패러디한 적이 있다.

몇번이고 키워드를 바꿔 검색해봤지만 나오질 않았다. 그래서 영어로 검색했더니 바로 나오는… 영어로 검색하면 커맨드 라인으로 추출하라느니 얘기가 많이 나온다. 혹시나 같은 고민 하는 분 있을까 싶어 글을 적어본다.

업데이트 또는 특정 이유로 인해 해당 리비전에서 업데이트 된 파일을 추출할 경우 TortoiseHg에서 아래와 같은 방식으로 처리할 수 있다.

screenshot

  1. 추출하고자 하는 리비전에서 우클릭 후 export > archive…
  2. 추출할 리비전을 선택
  3. Only files modified/created in this revision 체크
  4. 경로 설정… 나머지 필요것 설정 후 Archive

(이런 별 것 아닌 부분에 이렇게 시간을 허비할 줄은 몰랐다.)

맥에서는 Atlassian SourceTree를 사용하면 mercurial, git을 동일한 UI에서 사용할 수 있어 둘 다 별 차이 없는 기분으로 쓸 수 있지만 윈도우에서는 그렇게 멋진 도구를 아직 보질 못했다. 그래서 그나마 간편한 TortoiseHg 설치하고 사용하는 중이고 만족하는 편. 그렇게 복잡한 기능을 사용하고 있지 않아서 어떤 Version Control이든 크게 차이를 느끼지 못하고 있다.

Mercurial을 위한 서비스는 bitbucket에서 제공하고 있으며 소규모 개발을 위한 private 리포지터리도 무료로 준다. 로컬 작업용으로 많이 쓰고 있어서 bitbucket을 사용해본 적이 거의 없지만 GitHub를 조금이라도 본 적 있다면 상당히 비슷한 느낌으로 사용할 수 있다.

흔히 말하는 꾸준글을 잘 못하는 탓에 도움 받은 링크 및 배운 부분들을 간략하게나마 정리하는 글을 적어본다.

아래는 한날님의 포스트를 따라가며 적은 노트.

  • django 상당히 강력하다. 클래스만 만들면 알아서 다대다 테이블까지 작성해준다. 이터레이션 아이템에 대한 처리도 돋보인다.
  • django 가 1.4까지 판올림 된 상황이라 위 포스트대로 안되는 부분들이 있는데 다들 코멘트를 남겨주셔서 그거 보면 충분히 해결된다.
  • py-mysql을 안받아놔서 (집에 인터넷 안되서 강제 오프라인 스터디;) 자체적으로 지원하는 sqlite3를 썼는데… db는 설정만 해주면 어떤 db인가에 따라 알아서 처리하므로 딱히 고민 없어도 되는 모양.

그 외의 기록.

  • python 참 깔끔함. 강력함.
  • django 웹사이트에서 Documentation을 epub, pdf, html 등 다양한 포맷으로 지원해준다. 한동안 오프라인 스터디를 해야 하는 나에겐 너무나도 감사함.
  • 조금 복잡한 구조가 된다 싶으면… 예를 든다면 쇼핑 장바구니와 같은 구조라면 어떻게 모델 클래스 구성이 달라지는지 궁금함. 만약 직접 sql을 작성해야 하는 복잡스런 구조라면? (설계가 잘못되었다고 탓하려나..;)
  • django에서의 MVC 명칭이 다르다. Model, Template, View인데 View가 MVC의 Controller, Template이 View의 역할.
  • go live의 상황이 된다면 어디에 서비스를 올려야 하는가. 요즘은 가상서버 호스팅을 많이 지원하니까 딱히 걱정은 없는 편. AWS도 좋은 방법이다.

PDF로 저장하려면 Adobe Acrobat이나 기타 프로그램을 설치해야 하는데 많은 기능을 지원하는 만큼 상용인 경우가 많다. 오피스 2007가 있다면 다음의 확장을 설치해 무료로 PDF를 출력할 수 있다.

Microsoft Office 2007에서 지원하는 추가 기능을 설치하면 Save as에 PDF로 저장하는 기능이 추가된다. 추가 기능은 Microsoft 다운로드센터에서 내려받을 수 있다.

뉴 아이패드 32GB wifi를 얼마전에 구입해 사용하기 시작했는데 기대한 만큼 만족하고 있다. 그에 따른 뉴 아이패드 리뷰.

출퇴근, 그리고 집에서 자기 전에 침대서 일기쓰는 정도로 쓰는데 와이파이 모델이고, 와이파이를 꺼두는 시간이 더 많아 내 생활 패턴에서는 이틀 반에서 사흘 정도에 한번 꼴로 충전한다. 베터리 성능이 향상되었다는게 이정도라는데 그 전 기종에는 충전기 늘 들고 다녔을 듯 싶다.

구입 당시 용도는 ebook, pdf viewer 용도였는데 iBook 설치해 각종 ebook을 받아 출퇴근 시 열심히 읽고 있다. 포스트를 보신 분이면 아시겠지만 ielts를 준비하고 있고 대다수의 컨텐츠가 인터넷에서 쉽게 접근할 수 있기 때문에 모두 저장해놓고 출퇴근 시, 그리고 집에서 공부할 때 활용하고 있다. 한국이라면 집에서 출력도 하겠지만 호주에서는 왠지 그것도 절약해야 할 것 같은 기분도 들고 또 자료가 그렇게 출력하기 좋게 되어있는 편도 아니라서 용지 낭비 안하게 편집하다보면… 배보다 배꼽이다. 레티나 액정이다보니 확실히 깔끔하다. 집중이 더 잘 된다거나… 이런건 기분 탓이겠지요. (그리고 첨언으로 뉴아이패드 레티나 액정의 색 재현율 관련 포스트를 봤는데 뉴아이패드도 sRGB에 겨우 근접하는 수준이란 것에 놀랐고 그 전 기종들은 훨씬 안된다는 점에 정말 깜짝 놀랐다. 애플 기기는 다 appleRGB쯤 기본으로 지원할거라 생각했는데;;) 여튼 액정 참 좋다.

맥북에서 txt 파일로 스크립 한 후 automator로 epub으로 변환해 아이패드로 넣으면 간편하다. iBooks 의 기본 기능 또한 공부에 도움이 되었다. 읽을 때 하일라이트로 표시해두고 다 읽고나서 해당 부분을 내장된 사전으로 확인하는 식으로 사용하고 있다. 내장사전이 영영사전인데 이걸 한영, 영한 사전으로 변경하는 방법도 있다고 하는데 시간 드는 일은 별로 하고싶지 않고 현 사전도 충분히 좋다.

플립보드도 설치했는데 사실 내가 찾고 싶은 앱을 찾지 못했다. Rss reader라기보다는 3g가 안되는 기기로 샀기 때문에 wifi에서 싱크받고 오프라인 상태에서 보려고 하니 일단 검색 결과로는 알 수가 없었다. 팜이나 WinCE 계열에서는 iSilo라는 (왠지 애플에서 만든 기분 나는) 스크래핑 앱으로 컴퓨터 연결해 싱크받고 했었는데 인터넷 환경이 좋아지니 오히려 그런 앱을 찾기 힘들어졌다. 리뷰를 보다보니 에버노트에 스크랩하고 싱크해서 본다는데… 난 왜이리 에버노트에는 영 끌리지 않는지. 왠지 거기에 뭔가를 작성하면 내 데이터가 아닌 그런 기분이 든다;

글 작성이나 메모는 기본 노트앱과 wordpress 앱을 이용하고 있다. Wp앱은 오프라인에서는 draft writing이 가능하기 때문에 평소에 짬짬이 작성하고 발행하는 식으로 사용하고 있고 호스팅에 워프를 여러개 설치해서 여기엔 블로깅 하고 어디엔 외부 차단해놓고 일기 등을 쓰고, 어디엔 글 쓰고… 그런 식으로 활용하고 있다. 안드로이드에서도 유용하게 썼는데 안드로이드, 아이폰, 아이패드 모두 지원해서 참 편리하다.

앱스토어에서 첫 결제는 역시나 게임이었다. 못참고 보드게임인 catan HD를 질렀는데 앱 내 결제를 해야만 캠페인을 진행할 수 있어서 총 십오불 가량을 지불했다. 예전 아이팟터치를 가지고 있을 때에도 했었는데 큰 화면에서 하니 좀더 보드게임 다운 맛이 난다. 가끔씩 심심할 때 한두판 하기로 적당하다.

음악은 yoyoma 바흐 무반주 넣어놓고 들어봤는데 생각보다 스피커가 성능이 좋았다. 상당히 공간감이 느껴지는 소리.

그 외에 설치해본 앱은 카톡, 페이스북, 스카이프 정도. 이런건 이제 평범하니까 뒤로 미뤄두고.

맥북에어에 mamp를 설치하고 거기에 codeigniter로 가계부를 정리하고 있는데 다른 앱을 구입할까 생각하다가… 같은 wifi에 접속해서 에어 ip를 치고 들어가면 로컬서버에 접속할 수 있으니 그냥 그렇게 사용하고 있다. 시간이 되면 html5 offline app으로 만들어서 데이터는 로컬에 쌓고 일정 기간에 호스트에 싱크하는 식으로 구축을 해볼까 하고 생각해봤다. 애플이 그나마 html5로 앱을 만들면 가장 그럴싸하게 돌아가는 기기니까 나중에 짬이 나면 해봐야겠다.

아마 내 당분간 사용은 위 글에서 크게 벗어나지 않으리라 본다. 뉴 아이패드 후기 새로운게 있으면 다시 돌아오겠습니다ㅎ

Published on August 31, 2012

드디어 아이패드가 배송도착했다. Kogan 이라는 사이트에서 구매하였다. 호주와 홍콩의 환차익을 기반으로 한, 호주와 영국에서 이용 가능한 쇼핑몰이라 배송온 물건도 생전 처음보는 홍콩 플러그가 들어있는데 켜서 한국어 설정하면 다를게 없는 듯하다.

아이패드를 구입한 목적은 엔터테인먼트와 미디어의 숲으로 들어가겠습니다, 공부를 포기하겠습니다 등이 물론 아니다. 다름 아니라 이북을 보기위한 목적인데 아무래도 pdf를 속도 영향 없이 보고싶은 마음에 구입하게 되었고 더욱이 도트피치가 보이지 않는다는 얘기를 듣고 한참을 고민하다가 이번 텍스리턴의 후속으로 구입했다.

배송을 받고서 가장 먼저 설치한 앱은 iBooks 였다. 기본 내장이라 생각했는데 무려 40여 MB나… 종량제 호주에 살고 있어서 제한용량을 다 사용하면 모뎀급의 속도를 보이는게 이곳인데 그 모뎀의 속도로 세시간 가량을 기다려서 내려받는데 성공했다.

iBooks는 이북을 위한 앱으로 epub, pdf 등을 지원하는데 itunes로 싱크해서 사용할 수 있다. 사전에 검색할 때에는 iBooks가 pdf를 지원하지 않을 때의 포스트만 가득해서 아직도 지원 안하나 했더니 어느 기점으로 지원한 모양이다. 그래서 다들 지원 얘기가 없던 모양. 단 pdf는 epub처럼 이쁘게 지원하는 것은 아니고 mac os의 preview에서 보는 pdf랑 비슷한 느낌으로 사용할 수 있다. eink 기반의 기기를 사용하다가 이렇게 미려하게 이북을 보게 되니 감개무량하기도 하고…

그리고 설치한 앱은 wordpress. 아이폰과 아이패드용으로 있는 앱인데 모든 글 작성을 wp에 하는 나로는 최고의 앱이라 할 수 있다. 로컬에 저장할 수 있는 기능과… 무료라는 막강한 강점이 있다. 새로 알게 된 사실인데 설치형 wp에서도 jetpack이란 플러그인을 설치하면 앱에서 지원하는 stats를 사용할 수 있다고 한다, 구글 분석기가 점점 무겁고 복잡해져서 간단히 볼 수 있는 wassup으로 통계를 보는 편이었는데 이건 어떤 식으로 표시가 될련지 기대가 된다. 아직 데이터가 누적되지 않아 표시되진 않지만.

사실 위 두 앱 말고는 설치해볼 수 있는 것이 없었다. 인터넷이 너무나도 느려서… 덕분에 (강제로)책보고 글쓰고 좋다. 열심히 사용해보고 기회가 되면 또 리뷰를 남겨보겠지만 용도가 크게 달라지진 않을듯 하다.

Published on August 25, 2012

제목이 엄청나게 거창하지만 먼저 이 글은 개발자 만나기 – 좋은 개발자와 만나는 방법 감상문 정도의 생각으로 작성하였다.

기획자가 좋은 개발자를 만나기 위해서는 어떠한 요건들이 필요한지, 어떠한 접근 방식이 필요한지에 대해 요연하게 잘 정리한 글이다. 글을 읽으면서도 공감도 많이 되었지만 한국에서의 개발자 커리어 패스, 그리고 타 개발자에 대한 평가 등 한국서 일하면서 ‘문제’라고 느꼈던 부분들에 대해 당연하게 여기는 배경이 글 곳곳에 느껴졌고 내 나름 정리 차원에서 적어보려고 한다.

(원래 글 전반에 대해 생각했던 부분을 적으려고 했는데 생각보다 금액과 관련된 부분이 길어져 그냥 나머지 얘기는 다음 글에 쓰려고 한다;)

 

내 경력이 그렇게 길지 않음에도 기업이나 스타트업 등에서 러브콜을 (그냥 와서 일하란 얘기긴 하지만) 몇차례 받았다. 물론 그렇게 만난 분들은 명확한 기획을 가지고 있는 경우도 있지만 당연히 극소수였고 실질적으로 아이디어 수준에 그치는 기획이 대다수였다. 이들 대다수가 ‘그 기획’이 짜임새 있고 성공의 공식과도 같은 것으로 여기고 있으며 개발, 구현이 부수적인 수준으로 생각한다.

이런 분들을 만나면 늘 듣는 얘기가 몇백만원 혹은 몇천만원만 투자하면 수십배의 수익을 단기간에 달성한다는, 실로 무시무시한 가정을 상당히 쉽게 한다는 점이다. 게다가 명확하지 않은 기획에 대해 비용과 개발 기간을 산정하고 그 틀에 맞추어 손익을 계산하기에 바쁘다.

대기업 SI 업체 뿐만 아니라 중소급 기업이라 하더라도  이와 같은 기획을 마주하지 않는 이유는 당연하다. 명확하지 않은 기획에 짧은 기간은 둘째 문제치고(국내 SI는 짧아도 기간 맞출듯 싶다) 투자 비용이 너무나도 적기 때문이다. 그렇게 되면 당연히 자신의 상황에 맞는 소단위 개발자를 수소문 할 수 밖에 없다.

반면 소단위 개발자 입장에서는 해당 프로젝트를 수행해야만 하는 입장이기 때문에 단지 아이디어만 있는 기획임에도 저비용, 짧은 개발 기간도 수용하고 개발하는 경우가 있다. 개발자가 해당 프로젝트에 대해 미래지향적으로 필요한 부분도 추가해주는 등 적극적으로 기획에 참여하게 된다면 다행이지만 저비용, 단기간 개발에서는 기대하기 힘들다. 자신의 기획 시간과 금액을 관철하지 못하면 소신있게 물러나는 개발자만 있다면 문제가 없겠지만 어쩔 수 없는 이유(경제적 사정이나 경제적 사정..)으로 인해 예산이 적고 단기간 임에도 수락하게 되는 경우가 많다.

이러한 일련의 과정이 지속적인 의견 공유와 장기간의 회의 끝에 나오는 것이 아니라 기획만 듣고서 판단해야 하기 때문에 문제가 필연적으로 나타난다. 먼저 기획의 입장에서는 허술한 부분이 많지만 본인은 완벽한 기획이라 생각하고 있으며 개발의 입장에서 단편적인 내용만 듣고 구현할 부분이 어디까지인지 판단해야 하는 문제다. 같은 자리에서 회의를 하면서도 정확한 기획이 없기 때문에 동상이몽일 수 밖에 없다.

이외에도 여러가지 복잡한 그들의 사정(경제문제라든가, 그 기획 단계에서 비전을 보았다던가..)을 거쳐 타협선의 금액이 결정되어 프로젝트는 진행되거나 각자 다른 사람 찾아 떠난다거나 뭐 그렇게 된다. 무슨 얘기가 하고 싶은거냐면,

타 개발자가 진행한 프로젝트와 그 비용에 대해 왈가왈부 하지 말자는 것이다.

자신이 기획을 듣고 진행해보지 않은 이상 그 프로젝트를 비싼 돈주고 수행했다는 얘기는 물론 가십거리로 충분히 할 수 있다. 하지만 그로 인해 해당 프로젝트를 진행한 모든 과정이 저평가되게 된다. 개발자가 개발 한다고 한다고 하면서 개발 안했을 경우도 있을테고 말로 하는데는 쉬운데 구현단계는 전혀 고려하지 않은 기획일 수도 있다. 그런 여러가지 상황 끝에 종료된 프로젝트가 많은 비용과 훨씬 긴 시간을 투여했다고 왈가왈부함으로 개발시장 전체의 평가절하를 야기하게 된다. 갑자기 시장 이야기까지 나오니 비약 같지만 이게 사실이다.

시장은 수요만으로 형성 되는 것도, 공급만으로 형성 되는 것도 아니다. 수요도, 공급도 시장을 서로 견인하고자 하는 성향에 따라 시장가격이 설정된다. 수요공급커브를 이 포스트에 첨부하지 않아도 상식적으로 수요는 투자가 적을수록 좋고 공급은 투자가 많을수록 좋은건데 솔직히 한국에서의 분위기를 들어보면 공급도 시간, 금액 투자가 적은걸 ‘합리적인’ 양 얘기하는 사람이 의외로 많다.

얘기가 산으로 자꾸 가는데 급여 수준이나 작업 환경이 좋지 않은 것은 개발자들이 가져온 현재까지의 문화가 준 영향이 아닐까, 조심스럽게 포스트한다..; (본문에서는 사실인 양 적었지만;) 이게 성급한 일반화의 오류라면 차라리 다행이라 생각한다. 앞으로 조심하면 되니까. 더 길게 쓸 생각이었는데 너무 길어져서… 사심 가득한 포스트라 그런지 쉽게 길어졌다. 일단은 다음글(?)로 넘기는 걸로 여기서 마무리한다. 결론은 아래와 같다.

한국의 개발자여, 몸값은 우리가 올리는겁니다 ‘ㅅ’

 

WordPress에 폼메일을 위한 강력한 플러그인이 참 많은데 그 중 contact form 7이 유명하기도 하고 편리하다. 이 폼메일과 mailchimp를 연동하기 위해 플러그인을 검색해봤지만 3rd party integration plugin은 있는데 영 사용하는 방법이 직관적이지 않아서 contact form 7 with mailchimp plugin을 만들게 되었다.

독립적으로 운영되는 plugin이 아닌 dependancy가 있는 plugin이지만 wordpress에서 기능 확장을 어떤 방식으로 하는지 알 수 있는 좋은 기회였다.

플러그인에서 가장 기본적인 방식은 hooking 인데 값을 변경하거나 프로세스를 추가하고 싶은 소스에서 do_action()을 찾아 메소드를 add_action()을 통해 붙여주면 hooking으로 실행되는 방식이다. 쉽게 생각해보면 소스에 일종의 색인이 있는데 그 색인에 기능을 연결해주면 그곳을 통과할 때 그 기능도 실행이 된다는 것.

더 나아가 워드프레스 플러그인 개발에 확장성을 고려한다면 do_action()을 메소드의 before, after 또는 각 프로세스 부분마다 미리 넣어주는 것이 중요하다.

워드프레스 관리자에 메뉴를 추가할 때도 submenu 관련 함수와 해당 메뉴에 접근했을 때 실행될 function을 연결(binding 하는 느낌으로..)하면 해당 메뉴가 생성되며 그 페이지로 들어갔을 때 해당 function이 실행이 된다.

워낙에 reference가 잘 되어 있어서 필요한 method는 금방 금방 검색해서 찾을 수 있었다.

filter도 mailchimp로 전송하는 내용을 치환하는 부분에서 사용하긴 했는데 기존 contact form 7에 것 그대로 사용해서 자세히 들여보지는 않았는데 callback method도 사용 가능한 것으로 보아… 모르겠다. 나중에 더 자세히 보고.

환경설정을 저장할 때는 get_config()랑 set_config()가 있는데 따로 데이터베이스 작업 없이도 알아서 저장된다. custom post type도 따로 작업 없이 가능하다.

각각의 contact form에 맞는 mailchimp 데이터를 저장하기 위해 custom post type을 사용했는데 해당 post를 잡아내 post_id를 가져오려는데 WP_Query()의 s 파라미터를 사용했다. 더 간편한 방법이 있을 것 같은데 문서 찾아봐도 잘 모르겠어서 그냥 while statement로 작업했다.

한두번 작업 더하면 익숙해져서 뭐든 할 것 같은 이 근거없는 자신감!

joomla에서도 플러그인 작업을 해봤는데 MVC로 구현할 수 있는 샘플 플러그인으로 작업했는데 모델, 컨트롤러, 뷰컨트롤러, 뷰 이렇게 4단계인 기분이었다. 줌라는 그냥 CI처럼 추가기능 개발하고 그냥 데이터베이스에 바로 쿼리 넣고 받아오고 이랬는데 wordpress는 wp만의 스타일을 느낄 수 있어서 좋았다.

drupal이나 magento도 경험해볼 기회가 왔으면 좋겠다.

색상을 바꿔요

눈에 편한 색상을 골라보세요 :)

Darkreader 플러그인으로 선택한 색상이 제대로 표시되지 않을 수 있습니다.