목록프로그래밍 (82)
좋은 프로그램은 마음의 여유에서 나온다.
안드로이드 스튜디오에서 C, C++코드를 CMake를 이용한 빌드하기. ndk build도 사용 가능. 미흡하지만 LLDB라는 네이티브 디버거도 이용할 수 있음. 요구사항 안드로이드 스튜디오 버전 2.2 이상 안드로이드 그래들 플러그인 버전 2.2 이상 The Android Native Development Kit(NDK)와 빌드 툴들 다운로드 하기 NDK : 안드로이드에서 C, C++코드를 사용하게 해주는 툴셋, 플랫폼 라이브러리, 네이티브 액티비티, 센서나 터치 같은 물리적인 디바이스 컴포넌트를 제공함. CMake : 그래들과 함께 네이티브 라이브러리를 빌드 할때 사용함. ndk-build를 하려면 필요하지 않음. LLDB : 안드로이드 스튜디오로 네이티브 코드를 디버깅하는 도구 SDK매니저를 이용해..
JVM 옵션. 하나씩 천천히 공부해가보자. 힙 옵션 -Xms jvm의 최소 힙사이즈 (예 256mb로 설정 -Xms256m)-Xmx jvm의 최대 힙사이즈 (예 1gb로 설정 -Xmx1G)-Xss 스레드마다 할당되는 stack size 설정 (예 256kb로 설정 -Xss256k)-Xnm 힙의 young 영역의 초기사이즈와 최대 사이즈를 설정한다. young영역은 힙의 일부이므로 힙사이즈보다 작아야 함. young 영역 사이즈가 너무 작으면 빈번하게 minor gc가 발생할 것이고 너무 크면 full gc만 일어나므로 적절히 설정해야 하며 오라클의 추천은 힙 사이즈의 1/2 ~ 1/4로 설정(참고)하라고 한다. (예 256mb로 설정 -Xmn256m) 가비지 콜렉터 옵션 -XX:+PrintGC 가비지 콜..
안드로이드 롤리팝 이상 버전에서 크롬 39버전 이상에서 지원하는 메타 태그 안에 추가하면되며 content는 css 문법에 맞는 아무 컬러나 가능 고해상도 favicon 지원, 192px X 192px의 사이즈를 추천한다고 합니다. 마찬가지로 안에 입력. 레퍼런스 : https://developers.google.com/web/updates/2014/11/Support-for-theme-color-in-Chrome-39-for-Android
1편에서 만들었던 헬로우월드 프로젝트에 대해 자세히 알아 보겠습니다. 공부하면서 글을 쓰는 것이라서 잘못된 내용은 댓글 달아주세요. 1. 그래들 build.gradle 설정하기.그래들은 ant나 maven같은 자바 빌드 툴 중에 하나입니다. 빌드는 개발한 코드를 제품으로 만드는 과정으로 컴파일, 테스트, 문서화, 배포 과정등을 얘기합니다.maven의 경우 기본적으로 지원하지 않는 기능일 경우 빌드 과정을 추가해야 하는 것이 까다로운 편이였는데, 그래들은 groovy DSL을 이용하여 빌드 task를 직접 작성할 수 있습니다. 메이븐의 장점은 그대로 살리고 단점을 보완한 빌드 툴이라 할 수 있을 것 같습니다. 아래는 예제에 사용한 그래들 설정(build.gradle)입니다. group 'com.tistor..
dagger2로 realm 을 의존성 주입하는 예제 의존성 주입에 대한 설명은 위키피디아를 참조하시면 됩니다. dagger2은 square에서 만든 dagger1을 구글이 계속 만들면서 현재는 2.6버전까지 나왔습니다. dagger2는 정적이며 컴파일 타임에 디펜던시 인젝션을 제공하는 자바 프레임워크입니다. dagger2에서 중요하다고 생각되는 어노테이션은 다음과 같습니다. @Module : 주입된 객체들을 제공하는 메소드들을 모아놓은 클래스입니다. @Provide로 정의된 메소드에서 주입된 객체들을 어떻게 생성할지 정의하고 있습니다. @Provide : @Module 어노테이션이 포함된 클래스에 정의되며, 의존성을 주입해줄 객체를 제공할 메소드를 정의해주는데 사용합니다. @Component : 이 어노..
ibatis2에서 mybatis3로 sql map 파일을 mapper xml로 변경해주는 툴. 100% 완벽하진 않지만 단순 작업을 줄이는 용도로.. https://github.com/mybatis/ibatis2mybatis 자세한 컨버팅 룰은 https://github.com/mybatis/ibatis2mybatis/wiki
iOS 최소 버전을 7.0으로 한 후 앱스토어 업로드 시 위와 같은 에러가 날 경우.. 7.0은 embedded frameworks를 지원하지 않아서 생기는 오류라고 함... 앱 개발시에는 문제 없이 정상 작동하다가 앱스토어 업로드시에 오류가 나는게...... 라이브러리를 만들어서 배포하는 경우 7.0을 함께 지원하려면 다이나믹이 아닌 스태틱 라이브러리로 배포해야 한다.. 참고 : https://github.com/Alamofire/Alamofire/issues/266
스프링 부트스프링 부트는 stand-alone, 그래들 기반 제품을 쉽게 만들 수 있게 해줌. just run!최소한의 몸부림으로 시작할 수 있고, 대부분의 스프링 부트 앱은 최소의 스프링 설정을 요구한다.자바 애플리케이션으로 만들어 java -jar로 실행하거나 war로 만들어서 실행코드 생성이나 XML 설정 생성이 필요 없음 소스코드그래들 버전메이븐 버전 자바 1.7이상 설치 $java -version java version "1.8.0_11" Java(TM) SE Runtime Environment (build 1.8.0_11-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode) 그래들 1.12 이상 설치 $gradle -v --..
안드로이드 스튜디오 2.2로 업데이트 후 빌드 툴 2.2.0-alpha1 에서 오류남. classpath 'com.android.tools.build:gradle:2.2.0-alpha1' android.view.InflateException: Binary XML file line #40: Error inflating class EditText at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770) at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) a..
many to many로 조인시 a테이블의 1번에 b테이블에 3개의 관계가 형성되어있으면 하이버네이트에서 Criteria로 select시 setMaxResults를 3으로 설정해놓으면 a테이블에서 1번 index를 가진 객체가 3개 나옴. 중복제거를 해야하는데, .setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)를 설정하면 셀렉트 후 중복제거를 해서 1개만 남는다. .setProjection(Projections.distinct(Projections.property("id"))) 을 이용하면 중복 제거는 되지만 id 컬럼만 select되어 컬럼들을 전부 추가해줘서 객체로 만들어야 함.... 오랜 검색끝에 setFetchMode를 이용하면 ..