태그를 입력해 주세요. 7

proguard - 타겟 빌드 시 ClassNotFoundException, NoClassDefFoundError 가 나는 경우

App. 개발팀으로 자리를 옮기고 개발환경을 꾸미다가 삽질을 해서 정리합니다. 안드로이드 타겟 빌드할 때 분명히 클래스파일이 있고, 컴파일도 제대로 된 것 같은데 ClassNotFoundException, NoClassDefFoundError가 발생하는 경우가 있습니다. 컴파일러가 코드를 최적화하는 과정에서 링크를 빼버리는 것 같습니다. 이때는 다음처럼 해 주면 잘 동작합니다. 1. Adroid.mk파일에 다음 옵션을 추가 LOCAL_PROGUARD_FLAG_FILES := proguard.flags 2. proguard.flags 파일에 아래 내용을 기술 -dontshrink 원래는 Proguard(컴파일러가 최적화 시키지 못하도록) 하는 부분을 기술해줘야 하는데 위와 같이 하면 무조건 최적화 옵션을 ..

Tips/Android 2013.02.24

디자인 패턴 강좌 - Builder

이번 강좌에서는 GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Builder 패턴을 소개합니다. Builder패턴은 여러 개의 복잡한 객체를 모아 합성을 하는 공정이 있고, 복합 객체의 생성알고리즘이 요소 객체들 각각의 생성방법과 조립방법에 독립적일 때 쓰입니다. 도대체 이게 무슨 소릴까요? 좀 더 쉽게 이야기 하면 객체들을 조립하는 인터페이스만 외부에 공개하고 내부에 실제 생성되는 객체들을 숨기자~ 하는 것이지요. 예제를 한 번 볼까요? 요구사항이 다음과 같이 주어졌습니다. 어떤 내용을 포함하는 문서를 Text와 HTML 포맷으로 작성하도록 하여, HTML을 지원하지 않는 디바이스에서도 내용을 볼 수 있도록 한다. 즉, 다음과 같은 출력결과를 가지도록 하는 게 목표입니다. ==..

디자인 패턴 강좌 - Abstract Factory

이번 강좌에서는 GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Abstract Factory 패턴을 소개합니다. Factory Method 패턴에서는 상속을 이용하여 객체 생성을 파생클래스에게 위임하여 실제 생성되는 객체는 파생 클래스가 결정하도록 하였습니다. 이와 유사한 디자인 패턴으로 Abstract Factory 패턴이 있습니다.Abstract Factory 패턴은 Factory와 Product를 추상화 시켜 Abstract 클래스를 선언하고,실제 구현은 그 하위 클래스에게 위임하도록 합니다. 예를 들어 다음과 같은 요구사항을 구현해 봅시다. 아이스크림을 만드는 공장(IcecreamFactory)이 있습니다.이 공장에는 딱딱한 하드(Hard)를 만드는 라인과 부드러운(Sof..

디자인 패턴 강좌 - Factory Method

GoF의 분류에 따라 생성(Creational) 디자인 패턴 중 하나인 Factory Method 패턴을 소개합니다. 다음과 같이 문제상황이 주어졌습니다. 사용자 이름을 멤버 변수로 가진 CreditCard클래스가 있고, CreditCard 객체가 사용될 때 어떤 operation(use())을 하고자 합니다. 처음에는 이렇게 간단히 구현할 겁니다. Main.java public class Main { public static void main(String[] args) { CreditCard card = new CreditCard("홍길동"); card.use(); } } CreditCard.java public class CreditCard { public static final String USED..

GoF의 Patterns 분류 (Gang of Four Design Patterns Classified)

Creational Patterns객체를 생성하는 더 나은 방법을 제시 Factory Method객체를 생성하는 interface를 정의instance를 만들 class의 결정은 subclass가 담당함class를 instance 화 하는 시점을 subclass 에서 수행하도록 지연시킴 Abstract Factory구체적인 class를 지정하지 않고관련성 있는 객체의 집합을 생성하거나서로 독립적인 객체들의 집합을 생성할 수 있는 interface를 제공 Builder 복잡한 인스턴스를 조립. 각 부분에 대한 구현부를 나누어 이를 조립하여 큰 기능을 수행함. Prototype 클래스 이름을 지정하지 않고 인스턴스를 복사하여 생성. - 종류가 너무 많아 한 개의 클래스로 할 수 없는 경우 - 클래스로부터 인..

Windows 용 gvim 기본 설정

출처: http://webkebi.zany.kr:9003/board/bView.asp?bCode=11&aCode=1707&cBlock=0&cPageNo=1&sType=0&sString= c:\Program Files\Vim\_vimrc 파일을 열어 아래 설정 구문 중, 원하는 것만 집어넣으면 된다. syntax on # 언어에 따른 자동 문법, 구문의 색을 다르게 표시 filetype on # 파일 종류를 자동으로 인식 colorscheme torte # 컬러스킴을 변경 set ru # 화면 우측 하단에 현재 커서의 위치(줄,칸)를 표시 (ruler) set sc # 완성중인 명령을 표시 set vb # 키를 잘못눌렀을 때 삑 소리를 내는 대신 번쩍임 (visualbell) set hls # 검색된 스트..

Tips/잡다구리 2012.02.24