비트코인에 대해 처음 들었던 것은 2013년 말 어느 컨퍼런스로 기억한다. 아마 코빗을 창업했고 라는 얘기가 기억에 나는 것으로 봐서 유영석씨가 발표한 세션이 아니였나 싶다. 그리고 흥미를 느껴서 김진화씨가 쓴 NEXT MONEY 비트코인 이라는 책을 구입해서 읽었다.

책을 읽고는 굉장히 재밌는 개념이라고 생각했다. 채굴도 한번 해볼까 했는데 귀찮아서 하지는 않았다.

책만 읽었을 때는 비트코인이 꿈꾸는 세상이 말이 된다고 생각했는데, 2018년 초 지금에 와서 돌이켜 보면 이상은 이상일 뿐인 것 같다. 수많은 코인의 난립, 대형 채굴 업자의 네트워크 장악, 투기장이된 거래소..

나름 이론상으로는 완벽해보였던 자본론이 생각났다.
iOS와 안드로이드의 개발툴 얘기가 나오면 대부분 Xcode가 이클립스(최근에는 안드로이드 스튜디오)를 압도한다고들 얘기한다.

물론 초창기의 이클립스는 무지 느리고 안드로이드 에뮬레이터는 iOS 시뮬레이터에 비해 느려터져서 iOS 개발 환경이 좋았던 건 맞지만, 이게 지금에도 통하는 얘기인지는 잘 모르겠다.

회사 초반에는 iOS를 개발하고 안드로이드를 그에 맞췄었다. (우리 회사는 두 플랫폼의 소스 구조를 가급적 유사하게 가져가려고 노력하고 있다. 그렇다고 Titanium이나 Xamarin 같은 크로스 플랫폼을 고려하지는 않고 있다.) 하지만, 이번에 개발하는 앱은 안드로이드 부터 개발하고 iOS를 그에 맞추고 있다. 물론 우리나라 타겟이라 안드로이드가 우선이라 생각한 것도 있지만, 여성 타겟이라 iOS 부터 갔어도 상관은 없었다고 본다. 하지만 개발이 안드로이드가 훨씬 낫다고 생각해서 안드로이드부터 갔다.

안드로이드가 낫다고 생각하는 이유는 몇가지가 있다.

그중 가장 첫번째는 언어인 것 같다. 아무리 해도 Objective-C는 정이 들지 않는다. 가장 큰 이유가 대부분의 주류 언어들과 달리 메소드를 호출할 때 인자 이름을 적어줘야 한다는 것이기 때문에, Swift도 전혀 좋은 점을 모르겠다. Objective-C도 계속 발전해 나가면서 편리해지고 있긴 한데(Objective-C Literals 같은 것들. Java 언어의 개선이 느리기도 하지만, 그나마 개선된 점도 안드로이드에서는 써먹기 어려우니..) 저 근본적이 컨셉때문에 코딩하는게 그다지 즐겁지 않다.

반면 Java는 사실 그다지 좋아하는 언어는 아니였지만, 오랫동안 많은 사람이 쓰면서 발전해 와서 툴이 세세한 부분까지 잘 되어 있는 것 같다. 꼭 찝어 말하면 리팩토링이 Objective-C 보다 쉬워서 구조를 개선하기에 좋다. 그래서 안드로이드에서 구조를 잡은 후에 iOS로 넘어가기로 한게 가장 크다. 그리고 안드로이드 스튜디오로 넘어오면서 초반에는 굉장히 어색했는데 익숙해지니 이것만한게 없는 것처럼 느껴진다. 놓치기 쉬운 코딩 실수를 바로 바로 알려준다던지, 안드로이드 리소스를 참조했을 때 그 리소스(이미지나 문자열)를 코드에 직접 표시해준다던지. 안드로이드가 Java를 선택하므로써 생긴 이득인 것 같다.

둘째는 인터페이스 디자인 작업이다. 안드로이드는 XML을 수동으로 편집하는 경우가 대부분이고, iOS는 WYSIWIG로 다 되는데 무슨 얘기냐라고 할 수도 있는데, 좋은 GUI 에디터 놔두고 Vim이 최고라고 하는 것과 비슷하다고 할까? 초보들이 처음에 만들기에는 Xcode 쪽이 좋을 수도 있지만, 세세하게 건드려야 하는 경우는 결국 XML을 고치는게 훨씬 편하다. 전에는 에뮬레이터로 확인해야 해서 굉장히 비효율적이였지만, 최근 안드로이드 스튜디오에서는 렌더링을 꽤 잘해줘서 굳이 앱을 실행해보지 않아도 인터페이스를 만들 수 있다.

안드로이드에서 기존 위젯에 커스텀 스타일을 적용하려면 style.xml만 잘 구성해도 되는데, iOS에서는 아마 커스텀 클래스를 추가해야 할 거다. 안드로이드에서는 문자열 번역을 하려면 string.xml만 따로 가져가면 되는데, iOS에서는 xib 파일을 복사해야 하는 것으로 알고 있다. (물론 언어마다 문자열 길이에 맞춰 버튼 크기도 바꾸고, 글꼴도 바꾸겠다고 하면 의미가 있겠지만, 그렇게 하는 사람이 있을까?) 결정적으로 안드로이드는 초기부터 다양한 단말을 맞춰야 해서 다양한 Layout이 존재하지만, iOS의 Auto-Layout은 도대체 머리속에 개념이 안 들어온다.

아무튼 Vim 처럼 잘 쓰기는 어려울 수 있지만, 익숙해지기만 하면 안드로이드에서 인터페이스를 만드는 것이 훨씬 쉽다고 생각한다.

그 외에도 안드로이드에서는 Android Annotations등을 써서 반복되는 코드를 많이 줄이고 있지만, iOS에서는 아직 좋은 것을 많이 찾지 못했다.

나머지는 각 플랫폼을 지원하는 프레임워크나 라이브러리에 따라 좋고 나쁜 부분이 있긴 한데 (예를 들어 안드로이드 네트워크는 iOS 보다는 생각할게 많긴 하다. 그리고 안드로이드 액티비티는 좀 이해하기 어려운 부분이 있긴 하다) 그런 부분은 한번 잘 정리하면 되는 부분이라 전체 그림에서는 문제가 안 되는 것 같다.

iOS 쪽에서 그나마 좋은 건 시뮬레이터긴 한데, 그것도 Genymotion이나 실제 단말을 사용하면 아주 크게 문제 되지는 않는 것 같다.

버전 파편화 얘기를 해보면 오히려 iOS는 기존 버전을 자꾸 버려야 하는데 반해, 안드로이드는 Support Library를 통해 기존 버전에서도 문제 없는 경우가 많다. 해상도 파편화는 다양한 해상도를 지원하면서 좋은 디자인을 하기가 어려워서 그렇지, 디자인만 명확하면 개발은 아무 영향이 없다고 생각한다. 반면 iOS의 Size Class의 Any, Regular, Compat은 아직도 어쩌라는 건지 잘 모르겠다.

iOS를 다시 집중하면 또 모르던 기술이 있어서 내가 생각한 것보다는 훨신 쉬울 수도 있겠지만 (인터페이스 빌더에서 코드로 드래그 해서 IBOutlet을 설정하는 것도 최근에야 알았다) 현재로서는 나에게는 안드로이드 개발이 훨씬 쉽다.

너무 iOS 개발 환경들을 좋아하는 것 같아서 한번 써봤다.

(참고로 요 몇년 계속 MacOSX를 쓰고 있지만, 내가 좋아하는 Command Line Tool이 약해서 개발하는데 못 써서 그렇지, 일반 작업을 위한 GUI 쪽은 Windows 7이 훨씬 편하다)

원래 이런 거 챙겨보는 성격은 아닌데, 추석 연휴 끝나고 대체 휴가로 다음 날 걱정을 안 해도 된다는 점(출근하긴 했지만) + 애플이 몇달전부터 대단한 거 발표한다고 설레발을 떨어서 한번 라이브로 보기로 했다.

라이브로는 처음이라서 전에 어땠는지 모르겠지만, 초반부터 스트리밍 끊기고 중국어 발음 들리고 인상은 최악이였다.


그리고 첫 발표인 iPhone6. 아내 사준 iPhone5S는 디자인이 괜찮다고 봤는데 iPhone6 디자인의 첫 인상은 좋지 않았다. 물론 애플 특성상 실기를 보면 달라질 수도 있다.

나야 디자인에 별 감흥이 없는 사람이니, 내용물에 대해서만 생각해봤다. 일단 iPhone6 Plus라는 대화면에 걸맞게 더 많은 걸 보여주도록 UI가 바뀐다고 하는데 이 수준이 애플에게 기대한 것인가 싶다. 화면이 커진 폰이 주력이 되고, 공간 활용도가 떨어지면 아무 앱 개발사도 할만한 수준의 기능이라고 보여서. 안드로이드에서는 너무 폰 크기가 너무 다양하니 노력대니 효과가 떨어져서 그 정도까지 안 할뿐. 아이폰이야 많이 깔리면 해당 모드를 적용하는 앱들이 늘어날 수는 있겠지만. 차라리 삼성의 멀티윈도우가 더 그럴 듯하게 들린다. (그렇다고 이게 활용도가 무지 좋은 건 아닌 듯 하지만)

또 아이폰, 안드로이드 앱을 동시에 개발해본 입장에서 아이폰 앱들의 질이 좋은 것은 고정된 크기인 것이 굉장히 크다고 생각하는데 (가변 크기의 화면을 지원하도록 UX/UI를 구성해달라는게 디자이너에게는 굉장히 힘든 일인 것 같다) 해상도 옵션이 늘어난 이 상황에서 그 질이 유지될지 조금 의구심이 든다. 안드로이드 앱을 잘 만드는 업체들이야 이쪽에도 잘 적응하겠지만, 아이폰에만 신경쓰던 제작사들이 과연.. Auto Layout이 있어서 가능하다는 것은 헛소리이고 (그 부분은 안드로이드가 나으면 훨씬 낫지)


모바일 결제야 이전부터 있던 개념이니 기술적인 부분이 문제가 아니고 (터치 ID로 보안/사용성이 좋아졌다는 것도 부차적인 문제라고 보고), 얼마나 기존 업체들에게 쓰도록 하느냐의 문제이니 성공 여부를 지금 판단할 수는 없을 것 같다. 이 부분은 원래 애플의 강점이니 잘 될 가능성도 꽤 크다고 보지만. 그래봐야 한국은…


문제는 애플 워치인 것 같은데.. 디자인적으로는 역시 첫 인상은 좋지 않았다. 내가 너무 시계스러움을 바랬나. (원형이라던지.. 그러고보니 지금 내 시계도 사각이구나..) 다만 시계줄은 좋아보였다.

애플 워치에 맞는 UX를 찾았다는 식의 기사를 몇번 봐서 그걸 기대한 건데, 그 결과물이 용두(크라운)인건가 싶어 조금 실망했다. 당연히 그 화면에 대고 핀치투줌은 안 어울리는게 맞는데, 그 이전에 시계에서 핀치투줌이 필요한 앱은 안 하는게 맞지 않아 싶다. 즉 애플 워치로 뭘 해야 하는 건지 알려주지 못했다고 느꼈다. 그냥 시계에서 지도도 보이고, 사진도 볼 수 있어요는 다른 업체도 충분히 할 수 있는 얘기같다. 이걸 못 찾으니 시연이 길어지고 늘어진 것 같다.

아이폰 발표때는 별로 관심없었지만, 아이패드 발표때는 다들 별로라는 반응일때도 나에게는 딱 맞는 것으로 보였고, 지금도 열심히 사용하고 있는데, 애플 워치는 그게 안 보인다.


내 느낌이 다 맞다면 나는 더 대단한 사람이 되어 있겠지. 애플은 많은 사용자를 바탕으로 새로운 시장을 만드는 능력이 있으니 생각과 다른 전개가 벌어질 수도 있겠지.

여하튼 나는 당분간 안드로이드폰+아이패드를 사용하고 있을 것 같고, 스마트 워치는 사게될지 안 사게될지는 모르겠다.