글
01. JUnit 4.0
컴퓨터 이야기/JAVA
2012/03/14 17:09
특징
- java 5 Annotation 지원
-
test 라는 글자로 method이름을 시작해야 한다는 제약 해소
테스트 메소드에 @Test를 붙인다.
- 좀 더 유연한 픽스처
@BeforeClass, @AfterClass, @Before, @After - 예외 테스트
@Test(expected=NumberForMatException.class) - 시간 제한 테스트
@Test(timeout=1000) - 테스트 무시
@Ignore("this method isn't working yet") - 배열지원
asserArrayEquals([message], expected, actual); - @RunWith(클래스이름.class)
JUnit Test를 클래스를 실행하기 위한 러너를 명시적으로 지정한다.
@RunWith는 junit.runner.Runner를 구현한 외부 클래스를 인자로 갖는다. - @SuiteClasses(Class[])
보통 여러개의 테스트 클래스를 수행하기 위해 쓰인다. @RunWith를 이용해 Suite.class를 러너로 사용한다. - 파라미터를 이용한 방식
이 글은 스프링노트에서 작성되었습니다.
글
반복문 형식
컴퓨터 이야기/Objective-C
2012/02/14 18:51
For syntax
for (init_expression; loop_condition; loop_expression)
program
statement;
While syntax
while (expression)
Program
statement;
Or
Init_expression
While(loop_condition)
{
program
statement;
loop_expression;
}
do while syntax
do
programe
statement;
while(expression);
글
objective-c
컴퓨터 이야기/Objective-C
2012/02/12 22:23
클래스와 인스턴스에 메서드를 적용할 때 다음 문법을 사용한다.
[ClassOrInstance method];
interface syntax
@interface NewClassName : ParentClassName
{
memberDeclaration;
}
methodDeclaration;
@end;
method syntax
- ( void) methodName: (int) n ;
@implementation : @interface 부분에서 선언한 메서드의 실제 코드를 담고 있다.
@implementation NewClassName
[ClassOrInstance method];
interface syntax
@interface NewClassName : ParentClassName
{
memberDeclaration;
}
methodDeclaration;
@end;
method syntax
- ( void) methodName: (int) n ;
@implementation : @interface 부분에서 선언한 메서드의 실제 코드를 담고 있다.
@implementation NewClassName
methodDefinitions;
@end
*alloc : 메모리를 할당한다.
*init : 인스턴스를 초기화 한다.
Fraction * myFraction = [[Fraction alloc]init]
Fraction * myFraction = [Fraction new];
*release : 메모리 해제해 준다.
@end
*alloc : 메모리를 할당한다.
*init : 인스턴스를 초기화 한다.
Fraction * myFraction = [[Fraction alloc]init]
Fraction * myFraction = [Fraction new];
*release : 메모리 해제해 준다.
글
iphone SDK step-2
컴퓨터 이야기/iphone
2012/02/12 20:37
Xcode 폴더 구조
Classes
- 작성할 대부분의 코드가 존재하는 폴더
Other Sources
- 오브젝트 C 클래스가 아닌 소스코드를 담는곳.
- xxxxx_Prefix.pch : 미리 컴파일한 해더 (precompiled header)를 의미함. 빌드 시 프로젝트 컴파일 하는 데 드는 시간이 줄기 때문이다.
- main.m : 이것은 애플리케이션의 main()메서드가 있는 곳이다. 보통 이파일을 수정하거나 바꿀필요가 없다.
Resources
- 코드가 아닌 파일들을 담고 있다. 애플리케이션에 사용되는 아이콘, 이미지, 소리파일, 동영상파일, 텍스트 파일, 또는 프로그램을 실행하는데 필요할지 모르는 프로퍼티 리스트 등을 포함 하고 있다.
- xxxxViewController.xib : 이 파일은 인터페이스 빌더에서 사용하는 정보를 담고 있다.
- info.plist : 이 것은 애플리케이션의 정보를 담는 프로퍼티 리스트이다.
- MainWindow.xib : 애플리케이션의 기본 인터페이스 빌더 파일이다.
Framework
- 코드는 물론 이미지나 소리 파일들과 같은 자원들이 담긴 특별한 종류의 라이브러리이다. 코드에서 그 프레임워크나 라이브러리의 객체, 함수, 자원을 사용할 수 있다.
Products
- 이 프로젝트가 컴파일 해서 생성한 애플리케이션을 담는다.
Classes
- 작성할 대부분의 코드가 존재하는 폴더
Other Sources
- 오브젝트 C 클래스가 아닌 소스코드를 담는곳.
- xxxxx_Prefix.pch : 미리 컴파일한 해더 (precompiled header)를 의미함. 빌드 시 프로젝트 컴파일 하는 데 드는 시간이 줄기 때문이다.
- main.m : 이것은 애플리케이션의 main()메서드가 있는 곳이다. 보통 이파일을 수정하거나 바꿀필요가 없다.
Resources
- 코드가 아닌 파일들을 담고 있다. 애플리케이션에 사용되는 아이콘, 이미지, 소리파일, 동영상파일, 텍스트 파일, 또는 프로그램을 실행하는데 필요할지 모르는 프로퍼티 리스트 등을 포함 하고 있다.
- xxxxViewController.xib : 이 파일은 인터페이스 빌더에서 사용하는 정보를 담고 있다.
- info.plist : 이 것은 애플리케이션의 정보를 담는 프로퍼티 리스트이다.
- MainWindow.xib : 애플리케이션의 기본 인터페이스 빌더 파일이다.
Framework
- 코드는 물론 이미지나 소리 파일들과 같은 자원들이 담긴 특별한 종류의 라이브러리이다. 코드에서 그 프레임워크나 라이브러리의 객체, 함수, 자원을 사용할 수 있다.
Products
- 이 프로젝트가 컴파일 해서 생성한 애플리케이션을 담는다.
글
iphone SDK step-1
컴퓨터 이야기/iphone
2012/02/12 16:19
한번에 단하나의 애플리케이션만 구동된다.
- 여러분의 코드가 실행되는 동안에는 여러분의 애플리케이션만이 유일하게 동작한다. 사용자가 지금 사용 중인 애플리케이션이 아닐 경우 해당 애플리케이션은 아무것도 할 수 없을 것이다.
단 하나의 윈도우
- 애플리케이션의 사용자와 모든 상호작용은 이 윈도우 안에서만 이루어지고 윈도우의 크기는 아이폰의 화면 크기로 고정된다.
접근 권한의 제약
- 애플리케이션은 단지 애플리케이션이 자체적으로 생성한 아이폰의 파일 시스템의 일부로서 파일을 읽고 쓸 수 있을 뿐이다. 이 영역을 샌드박스라고 부른다. 애플리케이션의 문서, 환경 설정, 그리고 다른 종류의 데이터들을 저장할 필요가 있을 때 사용하는 공간이다.
응답시간의 제약
- 프로그램이 실행되면 애플리케이션을 열고 환경설정과 데이터가 로딩된다. 그리고 메인 뷰가 최대한 빨리 화면에 표시되어야 한다. 물론 이모든 작업이 걸리는 시간이 몇 초를 넘기지 않아야 한다. 결과적으로 사용자가 에플리케이션을 종료 할 때 데이터가 유실되지 않도록 아이폰 애플리케이션을 신중히 다루어야 할 필요가 있다.
화면 크기의 제약
- 480*320 픽셀을 사용할 수 있다.
시스템 자원의 제약
- 아이폰은 128MB의 물리적인 램을 가지고 있고 시간이 지나면 이후 버전에는 좀 더 늘어나리라고 생각한다.
코코아 개발도구들의 누락
- 코코아 개발경험이 있는 상태에서 아이폰의 개발을 시작하는 경우라면 이전에 친숙하게 사용 했던 몇몇 도구들이 아이폰 개발환경에서는 빠져 있는 것을 발견할 것이다.
새로운 기능
- 코어 로케이션을 사용해 폰의 현재 위치좌쵸를 알아 낼 수 있다. 또한 아이폰의 내장 카메라와 포토 라이브러리를 가지고 있으며, 이 두 기능에 접근할 수 있는 방법을 제공한다.
다른 접근법
- 아이폰은 물리적인 키보드나 마우스를 가지고 있지 않다.
- 여러분의 코드가 실행되는 동안에는 여러분의 애플리케이션만이 유일하게 동작한다. 사용자가 지금 사용 중인 애플리케이션이 아닐 경우 해당 애플리케이션은 아무것도 할 수 없을 것이다.
단 하나의 윈도우
- 애플리케이션의 사용자와 모든 상호작용은 이 윈도우 안에서만 이루어지고 윈도우의 크기는 아이폰의 화면 크기로 고정된다.
접근 권한의 제약
- 애플리케이션은 단지 애플리케이션이 자체적으로 생성한 아이폰의 파일 시스템의 일부로서 파일을 읽고 쓸 수 있을 뿐이다. 이 영역을 샌드박스라고 부른다. 애플리케이션의 문서, 환경 설정, 그리고 다른 종류의 데이터들을 저장할 필요가 있을 때 사용하는 공간이다.
응답시간의 제약
- 프로그램이 실행되면 애플리케이션을 열고 환경설정과 데이터가 로딩된다. 그리고 메인 뷰가 최대한 빨리 화면에 표시되어야 한다. 물론 이모든 작업이 걸리는 시간이 몇 초를 넘기지 않아야 한다. 결과적으로 사용자가 에플리케이션을 종료 할 때 데이터가 유실되지 않도록 아이폰 애플리케이션을 신중히 다루어야 할 필요가 있다.
화면 크기의 제약
- 480*320 픽셀을 사용할 수 있다.
시스템 자원의 제약
- 아이폰은 128MB의 물리적인 램을 가지고 있고 시간이 지나면 이후 버전에는 좀 더 늘어나리라고 생각한다.
코코아 개발도구들의 누락
- 코코아 개발경험이 있는 상태에서 아이폰의 개발을 시작하는 경우라면 이전에 친숙하게 사용 했던 몇몇 도구들이 아이폰 개발환경에서는 빠져 있는 것을 발견할 것이다.
새로운 기능
- 코어 로케이션을 사용해 폰의 현재 위치좌쵸를 알아 낼 수 있다. 또한 아이폰의 내장 카메라와 포토 라이브러리를 가지고 있으며, 이 두 기능에 접근할 수 있는 방법을 제공한다.
다른 접근법
- 아이폰은 물리적인 키보드나 마우스를 가지고 있지 않다.