어제 오모테산도에서 열린 코코아 스터디에다녀왔습니다.
오후1시 - 6시 까지 약 5시간정도 긴시간에 걸쳐 참가자들이 각자 자신의
프로젝트의 진행상태라든지 공부한 내용을 발표하는 시간을 가졌습니다.
전 참관인 자격으로 들어가서 많이 배우고 왔네요.
짧게 요약하자면
전체적으로 수준높은 발표들이 많이 있었습니다.
멤버들의 평균연령은 30대-60대?까지 다양했었습니다.
예전 iPhone app 세미나에 갔을때 보았던 눈에 익은 분들도 많이 계셨습니다.
스터디가 끝나고 회식을 하러 갔는데 생각보다 새로운 사람은 얼마 없었고 다들 3-5년 이상의
꾸준히 스터디를 하며 경력이 8-10년 되는 듯 했습니다.
p.s 1차 후기는 여기까지 나중에 다시 생각이 나면 정리해야겠네요.
오후1시 - 6시 까지 약 5시간정도 긴시간에 걸쳐 참가자들이 각자 자신의
프로젝트의 진행상태라든지 공부한 내용을 발표하는 시간을 가졌습니다.
전 참관인 자격으로 들어가서 많이 배우고 왔네요.
짧게 요약하자면
ちゃーりー(챠-리-)상
http://park18.wakwak.com/~cha/
자신이 만들었던 프로그램을 아이폰으로 이식하며 겪은 경험을 공유했습니다.
그가 만든 프로그램은 opengl을 이용해 터치에 손가락을 대면 반짝이는 상자가 나타나고
화면안에서 벽과 부딧치며 가속센서의 영향을 받아 이동을 하는 프로그램이었는데 보는걸로
이쁘다 하는 느낌이 드는 프로그램이었습니다.
이식을 하며 기존 NS로 시작하는 클래스들이 컴파일 되지 않는문제들이 있어 적당히 NS-> CS 나 UI로 변경하니 잘되었던 점들과 quartz 로 만들었던것들을 opengl로 이식하니 아이폰에서는 속도가 많이 빨라졌던점들
등을 이야기했네요.
그리고 자신이 iPhone에 컴파일후 설치하다 몇번 알수없는 오류에 대해 이야기를 했는데,
메세지는 provider인증오류라고 써있어서 전부 지우고 새로 프로젝트를 설치하다보니 해결되었다네요.
SCM을 이용하여 프로젝트 관리하기(이름 모름)
x-code 프로젝트 내에 SCM기능이 존재하는데 이것을 활용하는 방법을 순서대로 알려주었네요.
먼저 svn command로 프로젝트를 생성하고 scm에서 대상 repository를 생성한 svn reopsitory로 연결한뒤
자신이 만들던 프로젝드의 이름을 바꾼뒤 check out해야한다네요.
생각보다 간단하게 적용되어 좋았는데, 여러 의견들로 svn은 command로 이용하면 오류가 없지만 UI로 이용하는데는 알수없는 오류가 난다던지 분산레포지토리로서 작업이 어렵다던지 하는 문제들이 있다는것과 , GIT도 지원해줬으면 좋겠다라는 의견들이있었네요 GIT는 분산레포지토리를 지원해서 좋다는 이야기등이 나왔습니다.
그리고 디렉토리 이름에 대해 윈도우즈와 맥의 UTF-8 Normalization문제를 해결하는 방법에 대해
의견들이 나왔는데 결국 디렉토리이름은 ascii로 하자 라는 결론..
그리고 그분이 만든 프로그램을 보여줬는데 opengl을 이용한 하늘을 나는 용?의그래픽프로그램이었는데
,꽤나 다이나믹한 영상을 보여줬는데 개발을 시작한지 3달정도 된듯한데 잘만든것같아보였네요.
다들 지형은 어떻게 구현했냐고 물어봤지만 비밀이라는 대답뿐.. 지망은 게임프로그램이라던데
재미있는 사람이었습니다.
core data에서 데이타를 순서대로 저장하기
core data는 데이타를 set형식으로 저장하고있기에 저장을 하면 그때의 순서대로 저장되지 않는점이 있는데
이것을 array형태로 바꾸어 저장하기 위한 방법에 대해 발표가 있었습니다.
간단하게 Mydocument과 연동하는 MyItemManager라는 클래스에 data set를 바인딩하고 array를 만들어 따로 array오브젝트와 연동하는 프로그램이었습니다.
중간중간 어려웠던 점은 드래그앤드롭으로 인한 변경사항을 반영하는것이 어려웠다네요.
observer만으로는 무한 call이 되어버려 중간에서 연결을 끊는 로직을 넣어 해결했다네요.
또 item의 uid를 만들어 순서를 만들어야했었는데 uid를 보증하려면 singleton으로 uid를 리턴하는 클래스를
만들어야 했는데 이 클래스가 singleton 보증하려면 여러 문제가 생겨서 결국 NSNotification 을 이용해
해결했다는데 , 제생각에는 깔끔한 해결방식은 아닌것같습니다. 나중에 이방식에 대해 여러 의견들이 나왔는데
2개의 프로퍼티를의 변경에 영향을 받는 하나의 다른 프로퍼티를 이용해 해결하는 방식은 어떤지에 대한 이야기들이 있었습니다.
또 관련된 다른 이야기들로 responder chain에 관한 이야기가 있었습니다. cocoa 에는 MVC에 해당하는 3개의 트리가 존재하는데 서로 동기화가 되는 메카니즘이 잘 짜여져 있지만 view의 responder chain이
부족하다는 이야기가 있었습니다. 그런데 이게 아이폰에서는 잘 짜여져 있다는군요.(아직 이해불가;)
cocoa document 를 terminal로 검색하기(키무라)
키무라씨는 x-code는 프로젝트 생성과 파일 추가때만 쓰고 대부분의 프로그래밍을 터미날에서
해결하는 터미날 메니아입니다.
최근 자신의 프로젝트로서 cocoa document를 터미날에서 검색하여 보여주고 궁극적으로는
vim에서 쉽게 검색할수 있는 프로그램을 구상하고 있었습니다.
기존의 프로그램을 찾아보면 xcode자체의 document윈도우와 cocoa browser란 프로그램
app kido라는 프로그램이 있는데 cocoa browser는 데이타의 갱신이 발생할경우 그것이 반영되지
않는 불편함이있고 app kido는 코드가 공개가 안되어있다는 단점이 있다네요.
그래서 찾아본것이 터미날에서 docsetutil를 이용해 검색을 하면 검색어에 맞는 문서의 위치를
보여주는 프로그램이 있어 활용할 생각이랍니다.
iPhone 메모리 관리(이름모름)
아이폰의 물리적 메모리는 128메가이고 그중 실제 사용가능한 메모리는 116메가
무리를 주지않는 적정한 메모리용량은 40메가 정도라네요.
때문에 가능한 메모리를 절약해야하는데 이 메모리 관리 시스템이 기존의 cocoa와 틀린점에 대한 발표
였습니다.
기본적으로 하나의화면은 View - Window - Controler 형태로 구성되어 있는데,
화면이 바뀌면 window가 view를 이동하는 형태입니다. 이때 view가 가지고 있는 메모리는 부족해지면
반환대상이 되어 버리는데 이때 불러지는 함수와 로드하는 함수가 체인이 걸릴수 있기 때문에
주의를 해야 한다는군요.(어려운 부분이라 대충 이해는 되지만 자세한 설명이 어렵네요.)
이것이외에도 아이폰의 행과 횡을감지하는 메소드에 버그가 존재한다는 이야기(창의 이동과 관련된)
등이 있었네요.
Transform feedback(이름 모름 3D 그래픽 관련직업)
transform feedback이라는 기능을 이용한 프로그래밍에 대한 발표였는데, 꽤나 전문적인 내용이라
전부 이해하지는 못했습니다.
대충 설명하면
3d 모델은 정점데이타와 버퍼 데이타가 연산 - 변환 등등등의 과정을 거쳐 처리가 되는데 그중
transform feedback기능을 이용하면 일부 정점 데이타를 연산후 버퍼 데이타로 직접 저장시켜
성능을 향상 시키는 것입니다 . 최근에 spec가 발표되어 최신그래픽카드에는 하드웨어적으로 지원하는
기능이라네요.
예제로 지구에 텍스쳐멥에 지형및 고도정보를 붙여서 3D로 표현하는 프로그램을 꽤나 멋졌네요.
전체적으로 수준높은 발표들이 많이 있었습니다.
멤버들의 평균연령은 30대-60대?까지 다양했었습니다.
예전 iPhone app 세미나에 갔을때 보았던 눈에 익은 분들도 많이 계셨습니다.
스터디가 끝나고 회식을 하러 갔는데 생각보다 새로운 사람은 얼마 없었고 다들 3-5년 이상의
꾸준히 스터디를 하며 경력이 8-10년 되는 듯 했습니다.
p.s 1차 후기는 여기까지 나중에 다시 생각이 나면 정리해야겠네요.