본문 바로가기

개발자의 기록 노트

(153)
[안드로이드] 안드로이드에서 SQLite를 다뤄보자 (2) 2011/08/09 - [Software Dev Note/Android] - [안드로이드] 안드로이드에서 SQLite를 다뤄보자 (1)2011/08/11 - [Software Dev Note/Android] - [안드로이드] 이미 생성해둔(Sqlite) DB를 앱에서 Load하여 사용하기 안드로이드에서 SQLite를 다뤄보자 (2)안드로이드 앱 개발을 할 때, 없어서는 안될 존재. SQLite의 사용법에 대해 알아보겠다. 오늘은 아주 데이터베이스를 뿌리뽑아보도록 하자.안드로이드는 모바일 환경에 알맞은 SQLite 데이터베이스를 채택하고 있다. 기본적으로 다른 데이터베이스와의 큰 차이는 없다. 물론, 완전히 같지는 않다.다른 점 이라면, 일반적은 데이터베이스는 테이블 생성 시 각 속성에 대한 타입을 지정한..
[안드로이드] 안드로이드에서 SQLite를 다뤄보자 (1) 안드로이드에서 SQLite를 다뤄보자 (1) 안드로이드 플랫폼은 Database를 위해서 플랫폼 자체적으로 SQLite를 기본 탑재하고 있다.우선 SQLite의 특징을 살펴보자. SQLite는 다른 프로그램에 임베딩하기 좋으면서도 깔끔한 SQL 인터페이스를 제공한다.메모리도 적게 사용하면서 속도도 빠르다.실행파일과 소스 코드가 무료이고 공개되어 있기 때문에 많이 사용된다.위와 같은 이유로, 안드로이드는 SQLite를 기본탑재하여 내장하고 있으며, 그결과 모든 안드로이드 애플리케이션은 간단하게 SQLite 데이터베이스를 생성해 활용할수 있게 됐다.SQLite는 표준 SQL 인터페이스를 사용한다. -> SQLite는 SQL 문법에 맞는 명령을 통해 데이터를 가져오거나(SELECT) 데이터를 변경하고(INSE..
[안드로이드]Error generating final archive: Debug certificate expired on Error generating final archive: Debug certificate expired on 종종 Android SDK를 사용하다 보면, 소스코드에는 전혀 Error가 없는데, Build하려고 하면 아래와 같은 Error로 인해 device나 emulator에서 실행시킬 수 없는 경우가 있다. 문제 상황"Error generating final archive: Debug certificate expired on" 라는 에러 메세지가 Console에 보임. 해결책해결방법은 간단하다. 우선, debug.keystore 라는 파일을 삭제하면 된다.보통 "사용자" 디렉토리에 '.android' 라는 폴더 아래에 있다.나의 경우는 아래와 같다. C:\Documents and Settings\Use..
10진수를 2진수로 변환하는 알고리즘 (또다른 방법) 10진수를 2진수로 변환하는 알고리즘 (또다른 방법) 우선 몇자리의 2진수를 만들것인지를 알아내거나 제시한다.그리고, 기본적인 아래의 규칙 하나만 기억한다.rule : 작으면 0 / 크거나 같으면 1 예를 들어보겠다. 10진수 600을 10자리의 2진수로 만들 경우를 생각해보자.10자리의 2진수로 만들 것이므로, 2의 10승 = 1024 부터 시작한다.그 후, 2의 9승, 2의 8승... 2의 1승까지 차례로 rule대로 비교해 내려간다.아래의 과정으로 간단하게 만들 수 있다. 600 이 1024보다 작으므로 0600이 512보다 크거나 같으므로 1, 그리고 600 - 512 = 8888이 256보다 작으므로 088이 128보다 작으므로 088이 64보다 크거나 같으므로 1, 그리고 88-64 = 242..
XNA Framework의 논리적 흐름 XNA는 Frameworkd 이기 때문에 일련의 논리적 순환 순서가 있다. 공부를 시작하면 우선 이를 인지해야 한다. 1. 메인 응용 프로그램이 게임 생성자를 호출한다. 2. 게임 생성자는 게임 컴포넌트들을 생성하고 게임 컴포넌트의 생성자를 호출한다. 3. XNA Framework에서 게임의 Initialize 메서드를 호출한다. 4. XNA Framework에서 각각의 게임 컴포넌트에 해당하는 Initialize 메서드를 호출한다. 5. XNA Framework에서 각각의 Drawable 게임 컴포넌트에 해당하는 LoadContent 메서드를 호출한다. 6. XNA Framework에서 게임의 LoadContent 메서드를 호출한다. 7. XNA Framework에서 게임의 Update 메서드를 호출한..
[C#] 메소드 동기화 동기화를 원하는 몇개의 메소드가 클래스 안에 있다고 가정하자. (물론 그것들은 여러개의 스레드에 의해 동시에 사용될 수 없게 하려는 상황이라고 가정한다.) 자바 프로그래머라면 스레드 사용시 메소드 동기화를 위해 단지 다음과 같은 방법을사용 하면 된다는걸 알고 있을것이다. public synchronized void methodName() {...} C#에서는 이와같은 효과를 주기 위해 어떻게 해야 할까. 자바를 먼저 공부했던 나는 C#을 공부하면서 이와같은 의문을 가졌고, 찾은 해결방법은 다음과같다. 방법1. Just wrap the entire content of your method in a lock statement. (메소드의 전체내용을 lock 문장으로 둘러 싸면 된다) public class ..
[C#] 구조체 구조체는 클래스와 동일한 구문으로 대부분 형식을 공유하지만 클래스보다 제한적이며 다음과 같은 특징을 갖는다. ▷ 구조체는 값 형식이고 클래스는 참조 형식이다. ▷ 클래스와 달리 구조체는 new 연산자를 사용하지 않고 인스턴스화 할 수 있다. ▷ 구조체는 생성자를 선언할 수 있으나 반드시 매개 변수를 사용해야 한다. ▷ 구조체는 다른 구조체 또는 클래스에서 상속될 수 없으며, 클래스의 기본 클래스가 될 수 없으며 모든 구조체는 System.Object 를 상속하는 System.ValueType에서 직접 상속한다. ▷ 구조체는 인터페스이를 구현할 수 있다. ▷ 구조체를 nullable 형식으로 사용할 수 있고 여기에 null값을 할당할 수 있다. ▷ 구조체 선언 내에서 필드는 const 또는 static으로..
[안드로이드] 안드로이드 SurfaceView 캡쳐 예제 안드로이드 SurfaceView 캡쳐 예제 다음과 같은 상황이라고 가정하자. 아이템의 사진을 찍는 앱이 있는데, 이 아이템들은 ActivityScreen의 특정한 고정 된 영역에서 볼 수 있어야 한다는 요구사항 있다.문제는 저장된 비트맵이 액티비티에 표시될 때 인데, 카메라로 보고 찍은 것과는 보여지는게 다르다. 줌을 땡겨서 사진을 찍을 때, 프리뷰 화면에서는 보여지지 않았던 영역까지 액티비티에 그려진다. 해결을 위한 주요 코드 줄은 다음과 같다. 이미지 캡쳐 (IMAGE CAPTURE) surfHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); captImageView = (ImageView)findViewById(R.id.CamImageView); b..