2019-04-20 05:49:44 (2019-04-20 05:50:55)

나는 지금까지 아이폰 개발을 네 번 했었고 네 번 다 못 견디고 탈주했던 전적이 있다.

 

한 번은 이제 막 스마트폰이 들어왔던 시기로 앱 개발자 몸 값 높던 때 멋모르는 개발자란 이유로 억지로 떠맡겨진 일에 울며불며 열정을 바닥내가며 겨우 완성했었지만 그 이후 모든 업무에서 손을 놨었다. 또 한 번은 정말 하기 싫다고 말했는데 꼭 하고 싶다는 사람이 있어 그 사람이 전담하겠다는 전제로 시작했다 그 사람이 손을 놔서 알파 버전만 만들고 이후 진도는 사유서로 대체했었다. 또 한 번은 외주 업무가 맡겨졌을 때로 이 때는 해보겠다 말만 하다 도무지 못하겠어서 상호합의하에 그만뒀다. 또 한 번은 안드로이드 앱을 떠맡겨서 어찌저찌 해놨더니 아이폰 인력 구하기가 힘들다는 이유로 내게 떠맡기려 했을 때로 팀간 이해관계에 적당히 편승해서 앱 업무 자체에서 슬쩍 발을 뺐다.

 

이렇게 적고 나니 아이폰을 싫어하면서 유난히 아이폰하고만 연이 많은 것처럼 보이지만 신기하게도 아이폰 사이에는 비슷한 이유로 맡았던 안드로이드 업무도 꼭 한 번 씩 있었다. 또 굳이 적지 않은 사소한 일도 꽤 있었다. 아이폰을 조금 손대봤다는 이유로 내가 듣지도 않는 수업의 조교로 차출됐던 적도 있었다. 기획 담당 학생이 매 주 처음부터 새로 만든 기획서를 들고 오고 디자이너는 꿈이 많고 개발은 나몰라라 하는 안드로이드(!) 수업이었다. 내가 할 줄 안다는 걸 알고 있는 사람에게 모른다고 말 할 수도 없고 몰라도 일단 해보자고 들이미는 일이 보편적인 곳을 전전해서 이제는 그런가보다 싶다.

 

그런 내가 또또또 그 인력 구하기 힘들다는 이유 하나로 아이폰을, 이번엔 차출도 아니고 무려 전담을 하게 된 지 몇 달 됐는데 아예 본격적으로 하고 있자니 정말 많이 달라졌다 싶다. 언어 자체가 유연해지기도 했고 히스토리가 쌓이면서 어지간한 문제에 대한 해답을 찾을 수 있게 된 것도 있지만 내가 예전에 어려워하고 힘들어했던 점이 하나 둘 떠오를 때마다 이걸 알게 된 나 자신이 신기하기도 하고 이 쉬운 걸 생각조차 못하고 힘들어했던 예전의 내가 안쓰럽기도 하다.

 

본격적인 이론서도 없고 참고할 교재도 없고 한글로 된 책은 더 없었던 시기에 있는 책이라고는 일단 만들어보자, 내가 소개하는 예제 앱 코드는 이거다, 전부 이런 내용이었는데 또 당시에 만들던게 당시에는 생소했던 AR앱에 앱스토어 리젝사유가 메인 코드인 소스라 공식 예제조차 참고할 게 없었다. 무슨 오류만 있어도 커뮤니티를 떠돌며 서로 다 모르는 사람끼리 원인을 찾으며 이유도 모른 채 밤을 샜었다. 밤을 새거나 막차를 타고 집에 가는 날이 두어달 이어진 프로젝트 막바지에 집으로 가는 막차를 타고 기절했다가 버스가 덜컹거려 일어났는데 손 안에 쥐어져 있던 테스트 기기 아이폰을 보고 토할 것 같았지만 이걸 놓치면 집으로 갈 길이 없어 눌러 참는데 진짜 눈물이 핑 돌더라. 이 프로젝트 때문에 인정받은 곳이 있고 거기서는 이거 하나로 아직까지도 나를 인정해주는데 그 직후는 얼떨떨하지만 다소는 성취감이 있었는데 지금와서는 다 안 좋게 끝났던 추억만 남은 일이라 내 바닥난 열정은 무얼 위해 쓰인 건가 싶다.

 

이게 새벽에 쓰다보면 늘 했던 이야기를 또 하면서 자꾸 추억팔이를 하게 되는데 뭐, 남 잡고 떠드는 것도 아니니 괜찮겠지. 문제는 뭘 보다가 갑자기 이거 헷갈렸었지 싶어서 왔는지 기억나지 않는다는 건데 지금까지 그런 생각을 했던 코드를 다 적어둬야지.

 

일단은 AppDelegate와 Notification 객체가 싱글톤이라는 개념을 이해를 못했다. 특히 AppDelegate! 앱 시작할 때 무조건 호출된다면서 다른 파일에서는 불러와지지도 않고 기본으로 있는 코드는 순 모를 개념이고 또 내 첫 개발은 아이폰이었지만 당시 사정이 좀 복잡해서 안드로이드를 일주일 가량 공부했던지라 앱 생애주기니 Activity니 하는 개념이 머리 속에 있어서 더 헷갈렸다. 내가 Activity니 하니까 자꾸 커뮤니티에서 안드로이드 개념 가지고 나에게 설명해주니까 더 모르겠고 막... 그랬지. 아마 내가 스마트폰 사용자였다면 좀 더 빨리 이해했을텐데 싶다.

 

또 생각나는 건 string처리. 당시에 아는 건 c언어 방식의 char배열과 java 방식의 단순한 로직이 전부였는데 @를 붙이니 마니 하길래 @가 뭔가 찾아보니까 메모리가 어쩌고 해서 &랑 같은 개념인가 했더니 또 그것과는 좀 다르고 복잡해서 이해못하고 치웠었다. 지금이야 log를 찍을 때와 string 앞에 @를 붙이는 거와 string 변형할 때마다 해당하는 함수를 써야한다는 거 말고는 딱히 쓰는 데가 없어서 그런가보다 하고 있다. swift가 나와서 참 편해졌다. 잠깐 하긴 했지만 swift에서 가져가지 않은 개념은 애플 공인 레거시 코드라 생각하고 대강 넘어가기로 했다. 내 기준에서는 @도 이 중 하나이다.

 

NSString이니 CGFloat니 UIImage니 하는 앞에 붙는 접두어도 날 잠 어렵게 했었다. 이건 내 기억이 좀 불확실한데, 당시에도 xcode 코드 자동 완성은 다른 에디터에 비하면 훌륭한 편이었지만 string을 치면 자동으로 나오는 NSString이 너무나도 생소해서 이걸 이해하지 못했던 건지 앞부터 치지 않으면 나오지 않아서 매번 쩔쩔 맸던 건지 잘 기억나지 않는다. 사실 이건 지금도 그렇다. 대체 UI는 뭐고 NS는 뭔지. 단순히 한 개념을 분류했다기엔 또 UIImage니 CGImage니 하는 것도 있어서 처음 보는 개념을 쓸 때는 무조건 선 구글링이다. 차라리 다 쓰면 그러려니 했을 텐데 또 c언어 기반이다보니 c언어 타입 역시 혼용 사용이 가능해서 int 변수 하나 선언할 때도 쩔쩔 맸었다. 지금은 그때보다 좀 융퉁성이 생긴 건지 적당적당히 쓴다.

 

NSArray와 NSMutableArray도 참 이해가 안 갔었지. 아마 이러다 말아서 다행이지 Dictionary 타입도 알았더라면 당시에 더 헷갈렸을 거다. object 개념을 모르던 때라 혼란스러웠겠지. 아, dictionary 선언할 때도 @를 쓰네. 내부적으로는 string이라는 뜻인가. 뭐, 아무렴 어때. 또 아직 UI 개념을 잡을 일이 없었던 터라 main 로직이 없는 곳에서 어떤 순서로 함수가 호출되는지 몰라서 쩔쩔 맸던 기억도 난다. 다 추억이네, 추억. 지금이야 개발 좀 했다고 또 이 정도는 당연히 잘 알지.

 

예전에는 정말 기초적인 것부터 막혀서 맥 켜고 xcode 열고 있는 것 자체가 스트레스였다면 이제는 그것보다는 좀 나은 수준의 의문이 생기긴 한다. 대표적으로 array. 내가 못 찾은 걸 수도 있지만 보통은 item type을 명시하는데 여기는 item을 접근해서 쓸 때 해당 item이 어떤 타입인지 기억해뒀다 형변환 해서 써야하는 터라 변수명을 잘 적어두지 않으면 매번 왔다갔다한다. 물론 주석처리를 잘해서 Inspector창에서 확인하는 방법도 있긴 하지만...

 

아, 대신 복합 type array를 만들 수 있다는 장점이 있나? 형을 아예 선언해버리면 그렇게 못 만드니까? 뭐가 좋은 건지는 모르겠다. 나중에 swift에서는 어떻게 처리하나 봐야지. 난 버릇을 그렇게 들여서인지 형을 섞어서 array를 만드는 경우는 없어서 내겐 지금 상황이 더 복잡한 것 같다. 특히 나는 또 변수를 items (Item 클래스 배열), itemImages (item 이미지 배열) 이런 식으로 만들어서 대입 실수할 때 컴파일 오류 없이 메모리 뻑이 나면 한참 봐야 한단 말이징. 사실 아직까지 한참 본 적은 없지만, 이러다 실수로 눈치 못 채고 자나가면 이런 게 또 하루를 잡아먹는 원인이다보니...


번호 분류 제목 글쓴이 날짜
575 일반 친구란 좋은 거야 19/07/26 01:27
574 일반 격조했다 19/07/24 23:59
573 일반 윈도우 업데이트가 세상 거창하네 19/05/01 06:57
572 개발 갑자기 델리게이트 패턴을 이해하게 됐다 19/04/26 08:51
571 개발 이걸 어디에 적어놔야 기억을 할까 19/04/24 03:47
570 일반 사람은 바깥 바람도 쐬고 살아야 해 19/04/24 02:18
569 개발 드디어 코드 블럭을 제대로 쓸 수 있게 됐다 19/04/22 10:25
개발 아 진짜 재밌네 19/04/20 05:49
567 개발 점 표기법과 대괄호 표기법 19/04/19 02:52
566 개발 하 수학 공부를 좀 더 열심히 했어야 했어 19/04/15 16:07
565 개발 이번에는 통신부 함수를 분리하기로 했다 19/04/10 18:41
564 개발 알게 된 거 조금씩 적어야지 19/04/09 18:35
563 개발 진짜 별 걸 다 알게된다 19/04/09 17:32
562 개발 이게 최선인 걸까 싶다 19/04/08 16:35
561 개발 가끔은 재부팅도 필요하다고 한다 19/04/05 14:06
560 일반 사람은 바쁘게 지내야 하나 봐 19/03/26 15:09
559 일반 영웅 넘버는 언제 들어도 참 좋다 19/03/24 01:53
558 기록 나는 어떤 사람이 되어야 할까 19/03/23 02:37
557 기록 우울하다 말하기 전에 몸이 아픈 건 아닌가 생각해보자 19/03/21 02:17
556 일반 눈이 오고 있어요 여러분 19/03/15 19:17