Colin's Blog
Archive
Kotlin Clean Architecture
| 17 Apr 2020
[Kotlin] Experimenting with Coroutines
| 17 Apr 2020
[Android] Dependency Injection이란?
| 09 Apr 2020
자바 어노테이션 ( Annotation )
| 09 Apr 2020
보일러 플레이트 코드 ( Boilerplate code ) 란?
| 09 Apr 2020
[Android] 종속성 주입 (Dependency injection)
| 09 Apr 2020
[Android] 2018 Google IO - AndroidX - 새로운 패키지 정리
| 08 Apr 2020
[Kotlin] SharedPreferences 데이터 공유
| 07 Apr 2020
[Kotlin] Transformations와 MediatorLiveData를 이용한 Reactive 패턴
| 07 Apr 2020
[Kotlin] Transformations로 LiveData 변형하기
| 07 Apr 2020
[Kotlin] startactivity, putextra
| 01 Apr 2020
[Kotlin] android DataBinding Library for kotlin
| 31 Mar 2020
Viewmodel Example
| 30 Mar 2020
ViewModels: Persistence, onSaveInstanceState(), Restoring UI State and Loaders
| 30 Mar 2020
ViewModels and LiveData: Patterns + AntiPatterns
| 30 Mar 2020
[Kotlin] MVVM AAC Databinding 사용법
| 26 Mar 2020
OpenGrok 설치하기 (How to install OpenGrok)
| 23 Mar 2020
[Kotlin] 자바를 알고 있어도 코틀린에서 막히는 부분
| 25 Feb 2020
[Kotlin] 자바 개발자라면 코틀린 쉽게 배울 수 있다.
| 25 Feb 2020
[Kotlin] Higher-Order-Function 이란 ?
| 21 Feb 2020
[Kotlin] SAM(Single Abstract Method) 이란?
| 21 Feb 2020
[Kotlin] 람다 (Lambda) 식
| 21 Feb 2020
[Kotlin] Kotlin 프로그래밍 언어 알아보기
| 14 Feb 2020
[Design Pattern] Facade
| 06 Feb 2020
[Design Pattern] Decorator
| 06 Feb 2020
[Design Pattern] Composite
| 06 Feb 2020
[Design Pattern] Bridge
| 06 Feb 2020
[Design Pattern] Adapter
| 06 Feb 2020
[Design Pattern] Structural Design Patterns
| 06 Feb 2020
[Design Pattern] Proxy
| 06 Feb 2020
[Design Pattern] Flyweight
| 06 Feb 2020
[Design Pattern] Visitor
| 06 Feb 2020
[Design Pattern] Template Method
| 06 Feb 2020
[Design Pattern] Strategy
| 06 Feb 2020
[Design Pattern] State
| 06 Feb 2020
[Design Pattern] Observer
| 06 Feb 2020
[Design Pattern] Memento
| 06 Feb 2020
[Design Pattern] Mediator
| 06 Feb 2020
[Design Pattern] Iterator
| 06 Feb 2020
[Design Pattern] Command
| 06 Feb 2020
[Design Pattern] Chain of Responsibility
| 06 Feb 2020
[Design Pattern] Behavioral Design Patterns
| 06 Feb 2020
[Design Pattern] Singleton
| 06 Feb 2020
[Design Pattern] Prototype
| 06 Feb 2020
[Design Pattern] Builder
| 06 Feb 2020
[Design Pattern] Factory Comparison
| 06 Feb 2020
[Design Pattern] Abstract Factory
| 06 Feb 2020
[Design Pattern] Factory Method
| 06 Feb 2020
[Design Pattern] Creational Design Patterns
| 06 Feb 2020
[Design Pattern] What’s a design pattern?
| 06 Feb 2020
Object pool design pattern
| 06 Feb 2020
추상 클래스(abstract class)와 인터페이스(interface) 비교
| 05 Feb 2020
java 제네릭(Generic) 이란??
| 05 Feb 2020
JVM 원리
| 05 Feb 2020
StringBuffer, StringBuilder, String
| 04 Feb 2020
Java equals()와 hashCode()에 대해
| 04 Feb 2020
[자바성능튜닝이야기] 24. 애플리케이션에서 점검해야 할 대상들
| 30 Jan 2020
[자바성능튜닝이야기] 23. 튜닝 절차는 그때그때 달라요.
| 30 Jan 2020
[자바성능튜닝이야기] 20. 모니터링 API인 JMX
| 30 Jan 2020
[자바성능튜닝이야기] 19. GC 튜닝을 항상 할 필요는 없다
| 30 Jan 2020
[자바성능튜닝이야기] 18. GC가 어떻게 수행되고 있는지 보고 싶다
| 30 Jan 2020
[자바성능튜닝이야기] 17. 도대체 GC는 언제 발생할까?
| 30 Jan 2020
[자바성능튜닝이야기] 16. JVM은 도대체 어떻게 구동될까?
| 30 Jan 2020
[자바성능튜닝이야기] 15. 안드로이드 개발하면서 이것만은 피하자
| 30 Jan 2020
[자바성능튜닝이야기] 14. 서버를 어떻게 세팅해야 할까?
| 30 Jan 2020
[자바성능튜닝이야기] 12. DB를 사용하면서 발생 가능한 문제점들
| 30 Jan 2020
[자바성능튜닝이야기] 11. JSP와 서블릿, Spring에서 발생할 수 있는 여러 문제점
| 30 Jan 2020
[자바성능튜닝이야기] 10. 로그는 반드시 필요한 내용만 찍자
| 30 Jan 2020
[자바성능튜닝이야기] 9. IO에서 발생하는 병목 현상
| 30 Jan 2020
[자바성능튜닝이야기] 8. synchronized는 제대로 알고 써야 한다
| 30 Jan 2020
[자바성능튜닝이야기] 7. 클래스 정보, 어떻게 알아낼 수 있나?
| 30 Jan 2020
[자바성능튜닝이야기] 6. static 제대로 한번 써 보자
| 30 Jan 2020
[자바성능튜닝이야기] 4. 어디에 담아야 하는지…
| 30 Jan 2020
[자바성능튜닝이야기] 3. 자꾸 String을 쓰지 말라는 거야
| 30 Jan 2020
[자바성능튜닝이야기] 2. 내가 만든 프로그램의 속도를 알고 싶다.
| 30 Jan 2020
[자바성능튜닝이야기] 1. 디자인 패턴 꼭 써야 한다
| 30 Jan 2020
아이템 78. 직렬화된 객체 대신 직렬화 프락시를 고려해 보라.
| 30 Jan 2020
아이템 77. 개체 통제가 필요하다면 readResolve 대신 enum 자료형을 이용하라.
| 30 Jan 2020
아이템 76. readObject 메서드는 방어적으로 구현하라
| 30 Jan 2020
아이템 75. 사용자 지정 직렬화 형식을 사용하면 좋을지 따져 보자.
| 30 Jan 2020
아이템 74. Serializable 인터페이스를 구현할 때는 신중하라
| 30 Jan 2020
아이템 73. 스레드 그룹은 피하라.
| 30 Jan 2020
아이템 72. 스레드 스케줄러에 의존하지 마라.
| 30 Jan 2020
아이템 71. 초기화 지연은 신중하게 하라.
| 30 Jan 2020
아이템 70. 스레드 안정성에 대해 문서로 남겨라
| 30 Jan 2020
아이템 69. wait나 notify 대신 병렬성 유틸리티를 이용하라.
| 30 Jan 2020
아이템 68. 스레드보다는 실행자와 태스크를 이용하라
| 30 Jan 2020
아이템 67. 과도한 동기화는 피하라.
| 30 Jan 2020
아이템 66. 변경 가능 공유 데이터에 대한 접근은 동기화하라
| 30 Jan 2020
아이템 64. 실패 원자성 달성을 위해 노력하라.
| 30 Jan 2020
아이템 63. 어떤 오류인지를 드러내는 정보를 상세한 메시지에 담아라.
| 30 Jan 2020
아이템 61. 추상화 수주에 맞는 예외를 던저라.
| 30 Jan 2020
아이템 60. 표준 예외를 사용하라.
| 30 Jan 2020
아이템 58. 복구 가능 상태에는 점검지정 예외를 사용하고, 프로그래밍 오류에는 실행지점 예외를 이용하라.
| 30 Jan 2020
아이템 57. 예외는 예외적 상황에만 사용하라.
| 30 Jan 2020
아이템 56. 일반적으로 통용되는 작명 관습을 따르라
| 30 Jan 2020
아이템 55. 신중하게 최적화하라.
| 30 Jan 2020
아이템 54. 네이티브 메서드는 신중하게 사용하라
| 30 Jan 2020
아이템 53. 리플렉션 대신 인터페이스를 이용하라.
| 30 Jan 2020
아이템 52. 객체를 참조할 때는 그 인터페이스를 사용하라
| 30 Jan 2020
아이템 49. 객체화 된 기본 자료형 대신 기본 자료형을 이용하라
| 30 Jan 2020
아이템 48. 정확한 답이 필요하다면 float와 double은 피하라.
| 30 Jan 2020
아이템 46. for 문보다는 for-each문을 사용하라.
| 30 Jan 2020
아이템 44. 모든 API 요소에 문서화 주석을 달라.
| 30 Jan 2020
아이템 41. 오버로딩할 때는 주의하라.
| 30 Jan 2020
아이템 40. 메서드 시그니처는 신중하게 설계하라.
| 30 Jan 2020
아이템 39. 필요하다면 방어적 복사본을 만들라.
| 30 Jan 2020
아이템 37. 자료형을 정의할 때 표식 인터페이스를 사용하라.
| 30 Jan 2020
아이템 35. 작명 패턴 대신 어노테이션을 사용하라.
| 30 Jan 2020
아이템 34. 확장 가능한 enum을 만들어야 한다면 인터페이스를 이용하라.
| 30 Jan 2020
아이템 33. ordinal을 배열 첨자로 사용하는 대신 EnumMap을 이용하라.
| 30 Jan 2020
아이템 32. 비트필드(bit field)대신 EnumSet을 사용하라.
| 30 Jan 2020
아이템 30. int 상수 대신 enum을 사용하라.
| 30 Jan 2020
아이템 29. 형 안전 다형성 컨테이너를 쓰면 어떨지 따져보라
| 30 Jan 2020
아이템 28. 한정된 와일드카드를 써서 API유연성을 높여라.
| 30 Jan 2020
아이템 27. 가능하면 제네릭 메서드로 만들것
| 30 Jan 2020
아이템 26. 가능하면 제네릭 자료형으로 만들것
| 30 Jan 2020
아이템 25. 배열 대신 리스트를 써라.
| 30 Jan 2020
아이템 24. 무점검 경고(unchecked warning)를 제거하라.
| 30 Jan 2020
아이템 23. 새 코드에는 무인자 자료형(raw type)을 사용하지 마라.
| 30 Jan 2020
아이템 22. 멤버 클래스는 가능하면 static으로 선언하라.
| 30 Jan 2020
아이템 21. 전략을 표현하고 싶을 때는 함수 객체를 사용하라.
| 30 Jan 2020
아이템 20. 태그 달린 클래스 대신 클래스 계층을 활용하라.
| 30 Jan 2020
아이템 18. 추상 클래스 대신 인터페이스를 사용하라.
| 30 Jan 2020
아이템 17. 계승을 위한 설계와 문서를 갖추거나, 그럴수 없다면 계승을 금지하라.
| 30 Jan 2020
아이템 16. 계승하는 대신 구성하라.
| 30 Jan 2020
아이템 15. 변경 가능성을 최소화 하라.
| 30 Jan 2020
아이템 13. 클래스와 맴버의 접근 권한은 최소화 하라.
| 30 Jan 2020
아이템 12. Comparable 구현을 고려하라.
| 30 Jan 2020
아이템 11. clone을 재정의할 때는 신중하라.
| 30 Jan 2020
아이템 10. toString은 항상 재정의하라.
| 30 Jan 2020
아이템 9. equals를 재정의할 때는 반드시 hashCode도 재정의하라.
| 30 Jan 2020
아이템 8. equals를 재정의할 때는 일반 규약을 따르라.
| 30 Jan 2020
아이템 6. 유효기간이 지난 객체 참조는 폐기하라.
| 30 Jan 2020
아이템 5. 불필요한 객체는 만들지 말라.
| 30 Jan 2020
아이템 4. 객체 생성을 막을 때는 private생성자를 사용하라.
| 30 Jan 2020
아이템 3. private 생성자나 enum자료형은 싱글턴 패턴을 따르도록 설계하라.
| 30 Jan 2020
아이템 2. 생성자 인자가 많을 때는 Builder패턴 적용을 고려하자.
| 30 Jan 2020
아이템 1. 생성자 대신 정적 팩터리 메소드를 사용할 수 없는지 생각해보라.
| 30 Jan 2020
[programmers][hash] 완주하지 못한 선수
| 14 Jan 2020
[programmers][hash] 전화번호 목록
| 14 Jan 2020
[programmers][알고리즘][level2] 행렬의 곱셈
| 16 May 2018
[programmers][알고리즘][level2] 2016년
| 16 May 2018
[programmers][알고리즘][level2] 콜라츠 추측
| 15 May 2018
[programmers][알고리즘][level2] 최소값 만들기
| 15 May 2018
[programmers][알고리즘][level2] 소수 찾기
| 14 May 2018
[programmers][알고리즘][level1] 최대공약수와 최소공배수
| 14 May 2018
[programmers][알고리즘][level1] 행렬의 덧셈
| 14 May 2018
[programmers][알고리즘][level1] 피보나치 수
| 14 May 2018
[programmers][알고리즘][level1] 약수의 합
| 14 May 2018
항목 3 : 낌새만 보이면 const를 들이대 보자!
| 28 Mar 2018
항목 3 : 배열과 다형성은 같은 수준으로 놓고 볼 것이 아니다
| 28 Mar 2018
항목 2 : 가능한 c++ 스타일의 캐스트를 즐겨 쓰자
| 27 Mar 2018
항목 1 : 포인터(pointer)와 참조자(reference)를 구분하자
| 26 Mar 2018