[공부] 독서(53)
-
리팩토링 2판 - 00
다음 책을 읽고 정리합니다. http://www.yes24.com/Product/Goods/89649360?scode=032&OzSrank=1 리팩터링 2판 개발자가 선택한 프로그램 가치를 높이는 최고의 코드 관리 기술마틴 파울러의 『리팩터링』이 새롭게 돌아왔다.지난 20년간 전 세계 프로그래머에게 리팩터링의 교본이었던 『리팩토링』은, 기존 코드의 디자인을 개선하고 소프트웨어 유지 관리 능력을 향상시켰으며 기존 코드를 이해하기 쉽게 만드는 데 도움을 주었다. 간절히 ... www.yes24.com 리팩토링 전통적인 소프트웨어 개발 방법에서는 완벽한 설계를 만들고 코드를 짜려하였다. 그러나 완벽한 설계라는 것은 존재하지 않는다. 시간이 흐르면서 코드는 수정되고 시스템의 무결성은 망가진다. 또한 구조도 엉망..
2020.04.27 -
자바 성능 튜닝 이야기 - 01
안드로이드의 DalvikVM 안드로이드는 오라클, IBM 이 개발한 JVM 을 사용하지 않고 Dalvik VM 을 사용한다. 즉 가상 머신이 다르기 때문에 Dalvik VM 의 특징을 이해해야한다. 물리적인 RAM 이 부족할 경우 디스크를 메모리 처럼 사용할 수 있는 SWAP 을 제공하지 않는다. 구글에서 말하는 안드로이드의 성능 개선 필요없는 객체 생성을 피하라 인스턴스 변수를 접근할 일이 없으면 Static 메소드를 사용하라. 인스턴스 변수를 접근할 일이 생기면 getter/setter 를 사용하여 접근하지마라 상수는 static final 로 지정하면 접근 속도가 빨라진다. For-each 문을 써라. 단 ArrayList 는 전통적인 for 문이 더 빠르다. Private inner 클래스의 pr..
2020.04.22 -
자바 성능 튜닝 이야기 - 00
해당 책을 정리합니다. http://www.yes24.com/Product/Goods/11261731 개발자가 반드시 알아야 할 자바 성능 튜닝 이야기 자바 애플리케이션 개발 가이드. 고성능 애플리케이션을 위해 고려해야 할 복잡한 요소와 성능 개선 방법을 쉽게 이해할 수 있도록 이야기 형식으로 풀어 나가면서, 개발 초기 단계부터 성능을 위해 고려해야 할 점을 하나하나 짚어 준다. 장애를 일으키는 반복적인 코딩 이슈부터 시스템 진단, 튜닝 방법에 이르기까지 성능 개선에 필요한 핵심 정보를 정리했다. 또한 저... www.yes24.com JMH OpenJDK에서 개발한 자바의 성능 테스트용 라이브러리 package org.openjdk.jmh.samples; import org.openjdk.jmh.ann..
2020.04.20 -
소프트웨어 장인
http://www.yes24.com/Product/Goods/20461940 소프트웨어 장인 더 나은 개발자가 되어, 더 좋은 코드를 전달하고 싶은 당신을 위하여...이 책에서 풀어낸 소프트웨어 장인정신의 프로페셔널리즘, 기술적 탁월함, 고객 만족은 애자일, 린(lean) 원칙들과 시너지를 일으켜 소프트웨어 업계를 한 단계 도약시킬 수 있다. 또한 프로젝트와 개발자를 공장 운영과 생산 라인 노동자로 보는 관점을 바꾸는데 기여할 것이다. 그리... www.yes24.com 저자의 자서전에 가까운 책이다. 소프트웨어 장인이란 무엇인가부터 시작해서, 왜 개발자가 소프트웨어 장인이 되어야 하는지 설명하고 있다. 소프트웨어 개발자라면 가져야할 프로페셔널리즘에대해서 말하고 있다. 프로는 코드 품질을 생각하고 클라..
2020.04.17 -
오브젝트 부록
부록 A 계약에 의한 설계 계약에 의한 설계를 이용하면 협력에 필요한 제약, 부수효과를 명시적으로 정의하고 문서화 할 수 있다. [535p] 사설) 자바의 경우 assert or Valid 어노테이션으로 계약에 의한 설계를 구현할 수 있다. 리스코프 치환 원칙은 계약에 의한 설계 원칙에서 정의한 계약 규칙과 가변성 규칙을 준수한다는 의미다. [571p] 계약 규칙 [547p] 서브 타입은 더 강력한 사전 조건을 정의할 수 없다. 서브 타입은 더 약한 사후 조건을 정의할 수 없다. 슈퍼 타입의 불변성은 서브 타입에서도 반드시 지킨다. 자식 클래스가 계약 위반 코드를 작성하는 것을 막는 방법은 모든 인스턴스 변수의 가시성을 private 으로 만드는 것이다. [557p] 계약 규칙에서의 사전조건, 사후조건,..
2020.03.22 -
오브젝트 13 ~ 15
13 - 서브 클래싱과 서브 타이핑 상속의 용도 [435p] 타입 계층을 구현 : 부모 클래스는 자식 클래스의 일반화라고 부르고 자식 클래스는 부모 클래스의 특수화라고 부른다. 코드 재사용 : 높은 확률로 강결합이기 때문에 사용하지 않는 것이 좋다. 객체 지향 프로그래밍에서 타입을 정의 하는 것은 객체의 퍼블릭 인터페이스를 정의하는 것과 같다. [438p] 객체를 바라볼 때 항상 객체가 외부에 제공하는 행동에 초점이 맞춰져야한다. 객체의 타입을 결정하는 것은 내부의 속성이 아니라 외부에 제공하는 행동이다. [439p] 슈퍼 타입 : 서브 타입이 정의 한 퍼블릭 인터페이스를 일반화 시켜 상대적으로 넓은 의미로 정의한것 서브 타입 : 슈퍼 타입이 정의 한 퍼블릭 인터페이스를 특수화 시켜 상대적으로 좁은 의미..
2020.03.19