본문 바로가기
[Effective Java] 상속을 위한 설계와 문서화를 하자. 그렇지 않다면 상속의 사용을 금지시킨다. 상속을 위한 설계와 문서화를 하자. 그렇지 않다면 상속의 사용을 금지시킨다. - 메소드 오버라이딩으로 인한 파급 효과를 분명하게 문서화해야 한다. 같은 클래스의 다른 메소드들이 호출하는지에 대해 반드시 문서화해야 한다. ( self-use ) - 각각의 public 이나 protected 메소드 및 생성자가 어떤 오버라이드 가능한 메소드를 호출하는지, 어떤 순서로 하는지, 호출한 경로가 다음 처리에 어떤 영향을 주는지에 대해서도 반드시 문서화해야 한다. 오버라이드 가능하다는 것은 final 이 아니면서 public 이나 protected 인 경우를 의미한다. - 관례적으로 오버라이드 가능한 메소드를 호출하는 메소드에는 문서화 주석의 제일 끝에 그런 호출에 대한 설명을 추가한다. 그리고 설명의 시작은 "이.. 2016. 11. 1.
[Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. [Effective Java] 클래스와 그 멤버의 접근성을 최소화하자. - 잘 설계된 모듈과 그렇지 않은 것을 구분 짓는 가장 중요한 잣대는, 모듈 자신의 내부 데이터 및 그 외의 상세한 구현 부분을 다른 모듈로부터 어느 정도로 숨기느냐에 달려 있다. - 모듈은 자신의 API 를 통해서만 다른 모듈과 상호작용한다. 정보 은닉(information hiding) 또는 캡슐화(encapsulation)이 그것이다. - 정보 은닉은 시스템을 구성하는 모듈들 간의 결합도를 낮추어(decoupling) 모듈 별로 개발, 테스트, 최적화, 사용 및 수정이 가능하도록 한다. 또한 이렇게 하면 병행 개발 ( parallel development ) 를 할 수 있어 시스템 개발이 빨라진다. 모듈을 더 빨리 파악할 수 있.. 2016. 10. 17.
[Effective Java] 쓸모 없는 객체 참조를 제거하자. [Effective Java] 쓸모 없는 객체 참조를 제거하자. - 자바와 같이 가비지 컬렉션을 자동으로 해주는 언어는 메모리 관리를 따로 해줄 필요가 없다고 생각하기 쉬우나, 이는 틀린 생각이다. GC 의 원리에 대해 정확히 이해하고 메모리 관리를 해주어야 한다. 다만 그 메모리 관리하는 범위가 C, C++ 과 같은 GC 가 없는 언어들에 비해 더 간단할 뿐! - 자바에서도 메모리 누출(memory leak)이 쉽게 발견된다. 메모리 누수가 생기면, 성능저하의 형태로 서서히 나타난다. GC 작업이 증가하거나, 메모리 할당과 회수 횟수가 빈번해지기 때문이다. 심하면 디스크 페이징 현상이 나타나기도 하고, 아주 극단적으로는 OutOfMemoryError 가 발생한다. 메모리 누수의 무서운 점은, 특정 객체.. 2016. 1. 4.
Android RenderScript blur Android RenderScript Blur RenderScript 관련 API 들은 API 11 에 등장했다.하지만 Compat library 를 통해 API 8 부터 사용 가능하다. RenderScript 는 Graphic 작업을 할 때 CPU, GPU 중 해당 작업을 최적으로 처리할 수 있는 것을 찾아내서 multiple processor 작업을 하고 나중에 그 결과를 합치는 작업을 하여 성능을 매우 높인다. Native syntax 는 C99 기반으로, OpenCL, CUDA, GLSL 등이랑 비슷하다. private void blur(Bitmap bg, View textView, float radius) { Bitmap overlay .. 2014. 6. 8.
[Android] 제대로 된 REST API 를 구축해보자. [Android] 제대로 된 REST API 를 구축해보자. reference : http://mytechaddiction.blogspot.kr/2014/02/rest-interaction-in-android.html?utm_source=Android+Weekly&utm_campaign=4254f212fb-Android_Weekly_91&utm_medium=email&utm_term=0_4eb677ad19-4254f212fb-337262377 Anti-Patterns 1. UI Thread 에서 API Call. 2. Activity 나 Fragment 등에서 Thread 를 만들어 요청 3. 결과를 Memory 에만 저장하여 사용. Decouple the UI from the http call. Act.. 2014. 3. 18.
내 Rest API 가 정말 Restful 한지 체크하기. 내 Rest API 가 정말 Restful 한지 체크하기. 1. API 의 Endpoint 가 오직 한개인가? 2. CRUD ( GET, POST, PUT, DELETE ) 를 적절하게 섞어 쓰고 있는가? 3. 응답에 대한 메타데이터를 Body 에 포함하는가? 처리 결과는 HTTP Status 값으로 표현한다. 메타 데이터 ( 결과값, 세션 키 등 ) 은 최대한 HTTP 헤더로 선언하고, 실제 데이터는 Body 에 embed 해서 보내야 한다. 4. URL 에 동사가 포함 되어 있으면 안된다. 5. URL 에 RPC 호출 메서드 명이 없어야 한다. API, body, crud, Delete, end point, Get, HTTP header, http status, method call, Post, pu.. 2013. 11. 22.
[android] 요금이 부과될 수 있는 서비스( API ) 종류 안드로이드, 요금이 부과될 수 있는 서비스( API ) 종류 사용자나 네트워크에 비용을 발생시킬 수 있는 API 들은 권한에 대한 사용자의 동의를 얻어야 한다. 관련 API 의 종류는 다음과 같다. - 전화 기능 API- SMS/MMS 관련 API- 네트워크 데이터 관련 API- 앱 내 결재 관련 API- NFC 관련 API- SIM 카드 관련 API Android, API, In App Purchase, MMS, NFC, Sim, SIM CARD, SMS, 권한, 네트워크, 네트워크 데이터, 비용, 사용자 동의, 서비스, 안드로이드, 앱 내 결재, 요금, 유료, 전화 2013. 11. 18.
안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 안드로이드 4.4 KitKat ( 킷캣 ) 뭐가 달라졌나? 4.1 부터 Jelly Bean 이라는 코드를 써온 안드로이드는이번 4.4부터 KitKat( 킷캣 ) 으로 새로운 코드를 부여했다. 보통은 어느 정도 큰 변화가 있을 때 코드명을 변경하는데,이번에는 메모리 이외에는 미래를 위한 초석작업인 자잘한 변화만 있는데도 코드명을 부여했다. 이는 이제는 안드로이드가 꽤나 안정적인 상태로 접어들었다는 이야기가 될수도 있고,더 이상 기술적으로나 아이디어적으로나 (요즘은 아무데나 붙이는.. ) 혁신이라 불릴 정도의 개선점을 찾을 수 없었거나 양 자 중 하나일 것이다. 우선 무엇이 바뀌었나 보자. 1. 메모리 이용량. 꼭 필요하지 않은데도 부팅과 동시에 서.. 2013. 11. 12.
[android] Strict Mode 에 대해 알아보자. 안드로이드, Strict Mode 에 대해 알아보자. 참조 : http://dev.kthcorp.com/2012/01/31/android-strict-mode-howto/ Strict Mode 가 뭐야? * Main Thread 에서 사용성을 떨어뜨리는 작업들( 대표적으로 IO )을 하지 않도록 개발자에게 Log, 강제 종료, dropbox, dialog, splash 등의 방법으로 알려주는 API 이다. * GingerBread 부터 소개되었다. * IO 작업 중에서도 file, network access 는 특히 위험하다. 그 이유는 android file system ( YAFFS, Yet Another Flash File System ) 의 경우 한 process 가 해당 파일에 접속하면, 다른 .. 2013. 7. 17.
반응형