본문 바로가기

개발 Note/UI Framework 개발하기

(24)
Good Language & Good Framework (2): 좋은 언어와 좋은 프래임워크란? 좋은 언어와 좋은 프래임워크란 ?언어와 framework의 발전사가 이렇다고 하고, 그러면 제목에서 적은 좋은 언어와 좋은 프래임워크란 무엇일까요? 가장 기본적인 기준이 되는 것이 2가지 일것 입니다.첫번째로 프래임워크에서 제공하는 사용성과 정책이 프로그래밍 언어에서 제공하는 것과 일관되어야 합니다.두번째는 일반적일 것 같은 동작은 그렇게 동작하도록 해야 합니다. 위에서 예기한 것들을 좀 살펴봅시다.우선 첫 번째 "프래임워크와 언어의 일관성"에 대한 예를 들면, 프로그래밍 언어에서 var A = a; 라는 코드가 A에 a를 copy하는 것이라고 정의하고 있다면, 이 언어로 작성된 프래임워크의 MyObject obj = OldObj; 의 코드 역시 obj 에 OldObj의 내용들을 copy하는 것이어야 합..
Core Image Concepts Core Image Concepts 1. crop image 2. color 수정 - white color 정정 같은 것들 수행. 3. color effect 적용 - sepia tone ,gray scale등등 4. 이미지에 Blur 나 샤픈(sharpen) 적용 5. 이미지 합성 6. 이미지에 기하학적인 변형이나 휨 적용 7. color , 채크보더 패턴, 가우스 변환, 기타 패턴 이미지 생성. 8. 이미지나 비디오에 변환 효과 추가. 9. 비디오에 실시간 컬러 조정 제공. Graphic system에 대한 컨셉적인 이해와 구축의 방향을 잡기에 좋은 그림이 아래의 그림입니다. Graphics 나 Image , Video등 display와 관련 된 모든 부분은 결국 OpenGL을 이용하도록 설계되어있고..
stdafx.h 를 없애보자! 가끔 개인적으로 stdafx.h 는 골치 아프게 할때가 있습니다.. 테스트 코드를 작성해서 시험해보거나, Code generation 툴을 이용해서 만들어진 코드에 작업하는 경우, 그리고 작성된 코드를 visual studio가 아닌, 개발환경( gcc , armcc 등등 ) 에서 cross compile 해야 하는경우 등이 대표적인 예입니다. visual studio 에서 Win32 Project를 만들었을 경우, stdafx.h 를 없애기 위한 절차는 다음과 같습니다. 1. 프로젝트 프라퍼티( Property) -> C/C++ -> Precompiled Headers : Create/Use Precompiled Header :Not Using Precompiled Headers 로 변경 2. 각 소스..
CoreAnimation in iOS 에플 개발 사이트에서 core animation 관련 내용을 발최 필요한 부분을 번역하였습니다. What Is Core Animation? Core Animation is a collection of Objective-C classes for graphics rendering, projection, and animation. It provides fluid animations using advanced compositing effects while retaining a hierarchical layer abstraction that is familiar to developers using the Application Kit and Cocoa Touch view architectures. Dynamic, ..
key - value 관리 key 값과 value 로 data를 관리하는 형태는 상당히 편리하고 유용한 기법입니다. 최근 iCloud에서 이런 key /value 관리 기법을 사용하여 내가 구입한 책 정보, 현재 읽고있는 책의 북마크 , Contact 정보 등을 관리하고 보관 update 한다고 스티브 잡스 님이 예기 하여 약간 화제가 되고 있는 기술입니다. 우선 iOS 의 경우에는 Objective-C의 언어 적인 특징으로 key-value 기능 지원이 자연스럽게 구축되어있는 상황이라고 보여집니다. (NSResponsible, NSObject , NSProxy 정보에 기술되어있습니다.) key-Value 컨셉을 C++에서 비슷한 성격의 클래스를 만들수 있지 않을까 해서 , 디자인/ 구현 해보고자 아래와 같이 구상했습니다. 우리가..
[애자일] 릴리즈 계획 과정에서 가장 중요한 것들 불확실성과 화해하는 프로젝트 추정과 계획(마이크 콘) 이라는 책의 13번째 파트 에 해당하는 내용입니다. 릴리즈 계획이 뭐길래? 왜? 사용자 스토리 추정 -> 이터레이션 길이 결정 -> 스토리 선정 및 릴리스 날짜 결정 ↑ 속도 추정 | | 사용자 스토리들 간의 우선순위 결정 | +-----------------------------------------------------------------------------+ 만족 조건 결정 릴리스 계획과정을 시작하기 전에 프로젝트의 성패 여부를 판정할 기준을 아는 것이 중요하다. 대부분의 프로젝트의 경우 가장 결정적인 기준은 절감되거나 창출되는 돈의 양이다. 프로젝트가 이런 재정적 목표를 만족할 것인지를 판단하기 위해 대부분의 프로젝트들은 일정과 범위 그리고..
Binary 호환성을 위해 알아야 할것 - ABI, EABI system 내의 binary 호환성을 갖추기 위해서는 가장 먼저 고려해야 할 사항이 바로 ABI를 맞추는 것이다. ABI 란? Application Binary Interface 의 약자로, 바이너리(binary), 즉 실행파일이나 라이브러리 간의 저수준(low level)의 인터페이스를 의미합니다. 호출형식이나 데이터 형식이 동일한 모듈들끼리만 모듈내의 함수 호출이나 데이터 사용이 가능해 지는 것이 당연하겠죠? ABI를 결정하는 가장 큰 요소는 Compiler입니다. C++ Compiler의 경우, 각 compiler별로 name mangling 규칙이 다른데요. 이때문에 서로다른 compiler에서 만들어진 바이너리간의 호출이 불가능해질 수도 있게 됩니다. name mangling 참조 Compil..
Conway’s Law - 조직과 소프트웨어 Framework 개발에서 조직과 관련된 part의 article에 재미있는 내용이 있어서 공유합니다. ㅎ Conway’s Law - 여러분이 하나의 컴파일러를 만들기 위해 4개의 팀을 만든다면, 여러분은 4단계로 구분된 컴파일러를 얻게 될것이다. 이 내용이 무슨 예기인가 하면, 팀 구조가 소프트웨어의 구조가 된다는 것입니다. 따라서 당연히 팀을 구성한 후 요구사항을 분석한다면, 팀 구조에 맞춰 분석이 이뤄지기 때문에, 팀 구조 그대로 소프트웨어 구조가 나올 수 밖에 없다는 예기…. 때문에 소프트웨어가 어떤 특성을 가지고 있는지 파악되기도 전에 소프트웨어의 큰 구조를 정해버리는 것과 같은 오류를 범한 것과 같다는 의미 입니다.. 그래서 팀을 구성하기 이전, 프로젝트의 도메인 전문가나 구성원 전체가 모여,..