Skip to main content

2 posts tagged with "architecture"

View All Tags

· 2 min read

이런 말도 안되는...

google의 모바일 광고 플랫폼인 admob을 iOS app에 적용하려고 sdk 다운받고 update도 안된 매뉴얼을 어찌어찌 찾아서 했더만 처음엔 ARC 관련 오류가 나타났다. (sdk에 포함된 소스 파일들이 예전 iOS sdk에 맞춰서 작성된 것들로 보임)

Flag 조정해서 해결했더니 말도 안되는 linker error.

요런 식으로 표시된다.

Apple Mach-O Linker (Id) Error

알아보니 최근 iPhone 5부터 chipset이 변경되다 보니 architecture도 바뀌었는데 admob에 포함되어 있는 라이브러리가 변경된 architecture에 대해 아직 반영하기 전이라고 한다.

타사 제품을 지원하는 거라 이해 안되는 면도 없지는 않지만 이럴거면 아예 내놓질 말던가. iPhone5가 나온지가 언젠데.

아무튼 admob sdk 업데이트 되기 전까지는 아래의 stack overflow 링크대로 쓸 수 밖에.

Analytics를 사용하지 않는다면 가능한 해법이다.

http://stackoverflow.com/questions/12352630/linker-errors-when-integrating-admob-sdk-into-ios-app

 

 

이렇게 해도 일부 Linker error가 해결되지 않아서 iAd 사용하는 것으로 변경했음. 젠장.

· 3 min read

설계중인 Test Framework review.

작성된 Class Diagram을 보면서 개선할 부분이 많다고 생각.

 

문제점 1. UML 형식에 맞지 않는 부분들

UML도 언어다. 규격이라는 것이 있고 다른 나라 사람이 보더라도 이해가 가능해야 한다. Interface가 Interface로 표현되어 있지 않았고, 구현이 상속으로 표현되어 있었으며 Association이나 Dependency 관계로 표현할 필요가 없는 것들도 표현되어 있었다. 이해를 돕기 위해 굳이 표현한거라는 대답을 들었지만 다이어그램 자체만으로 이해가 가능한 것을 굳이 규칙을 어겨가며 작성할 이유는 없다고 생각했다.

 

문제점2. Dependency

대부분의 클래스들이 의존관계로 표현되어 있다. 이 의미는 하나의 클래스가 수정되거나 추가될 경우 주변의 클래스들 또한 영향을 받는다는 뜻이다. 확장이 힘들어지고 코드는 갈수록 지저분해지며, 중복된 코드가 늘어나고 결국은 유지보수가 힘들어진다고 배웠다. 개선되어야만 한다. 비슷한 성질의 클래스들을 충분히 모을 수 있다. 또 아직 확실하지 않은 부분들이 많기 때문에 이 부분은 클래스가 아니라 Interfacefh 두는게 맞다고 생각된다.

 

크게 압축하면 두가지이지만 이걸 해결하려면 많은 부분을 수정해야 한다. 실제 구현해봐야 알 수 있다는 의견때문에 일단은 Prototype을 만들기로 했다.

 

결정된 사안들

1. Prototype을 만든다.

2. 난 문서를 바탕으로 Testcase를 만든다. (JUnit 이용)

3. CI를 구성한다. (GIT + Bamboo)

4. 전체 Project는 Agile로 진행한다. (JIRA + GreenHopper 이용하며, Sprint는 2주 단위, 매일 오전에 Scrum)

 

재밌겠다. :)