728x90
반응형

Java 80

[Effective Java] 아이템 59. 라이브러리를 익히고 사용하라.

🎯 아이템 59. 라이브러리를 익히고 사용하라. “바퀴를 다시 발명하지 마라 (Don’t reinvent the wheel)” 아주 특변한 나만의 기능이 아니라면 누군가 이미 라이브러리 형태로 구현해놓았을 가능성이 크다. 표준 라이브러리를 사용하면 좋은 이점 코드를 작성한 전문가의 지식과 여러분보다 앞서 사용한 다른 프로그래머들의 경험을 활용할 수 있다. 핵심적인 일과 크게 관련 없는 문제를 해결하느라 시간을 허비하지 않아도 된다는 것이다. 노력하지 않아도 성능이 지속해서 개선된다는 점이다. 기능이 점점 더 많아진다. 작성한 코드가 많은 사람에게 낯익은 코드가 된다. 참고 자료 Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018) http://www..

Java 2023.03.26

[Effective Java] 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라.

🎯 아이템 58. 전통적인 for 문보다는 for-each 문을 사용하라. 전통적인 for문과 비교했을 때 for-each문은 명료하고, 유연하고, 버그를 예방해준다. 성능 저하도 없다. 가능한 모든 곳에서 for문이 아닌 for-each문을 사용하자. 하지만 안타깝게도 for-each문을 사용할 수 없는 상황이 세 가지 존재한다. 1️⃣ 파괴적인 필터링 컬렉션을 순회하면서 선택된 원소를 제거해야 한다면 반복자의 remove 메서드를 호출해야한다. 자바8부터는 Collection의 removeIf 메서드를 사용해 컬렉션을 명시적으로 순회하는 일을 피할 수 있다. 2️⃣ 변형 리스트나 배열을 순회하면서 그 원소의 값 일부 혹은 전체를 교체해야 한다면 리스트의 반복자나 배열의 인덱스를 사용해야한다. 3️⃣ ..

Java 2023.03.26

[Effective Java] 아이템 57. 지역변수의 범위를 최소화하라.

🎯 아이템 57. 지역변수의 범위를 최소화하라. 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. ⭐ 지역변수의 범위를 줄이는 가장 강력한 기법 1️⃣ 가장 처음 쓰일 때 선언하기 public class Main { public static void main(String[] args) { int scope = 0; /* main메서드가 완료될 때까지 scope변수는 살아있다. */ } } 변수를 항상 최상단에 선언하는 버릇을 가진 개발자가 존재한다. 하지만 그건 변수의 범위를 메소드의 모든 범위에 속하게 하며 가독성마저 떨어지게 만드는 행위다. 2️⃣ 거의 모든 지역변수는 선언과 동시에 초기화해야 한다. 초기화할 정보가 부족하다면 정보가 충분해질때까지 선언..

Java 2023.03.26

[Effective Java] 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라.

🎯 아이템 56. 공개된 API 요소에는 항상 문서화 주석을 작성하라. 문서화 주석은 API를 문서화하는 가장 훌륭하고 효과적인 방법이다. 공개 API라면 빠짐없이 설명을 달아야 한다. 표준 규약을 일관되게 지키자. 문서화 주석에 임의의 HTML 태그를 사용할 수 있음을 기억하라. 단, HTML 메타문자는 특별변하게 취급해야 한다. javadoc click here. 자바독은 소스코드 파일에서 문서화 주석이라는 특수한 형태로 기술된 설명을 추려 API문서로 변환해준다. 참고 자료 Joshua Bloch, 『Effective Java 3/E』, 개앞맵시 옮김, 프로그래밍인사이트(2018) http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mal..

Java 2023.03.25

[Effective Java] 아이템 55. 옵셔널 반환은 신중히 하라.

🎯 아이템 55. 옵셔널 반환은 신중히 하라. 값을 반환하지 못할 가능성이 있고, 호출할 때마다 반환값이 없을 가능성을 염두에 둬야 하는 메서드라면 옵셔널을 반환해야 할 상황일 수 있다. 하지만 옵셔널 반환에는 성능 저하가 뒤따르니, 성능에 민감한 메서드라면 null을 반환하거나 예외를 던지는 편이 나을 수 있다. 그리고 옵셔널을 반환값 이외의 용도로 쓰는 경우는 매우 드믈다. 옵셔널은 원소를 최대 1개 가질 수 있는 '불변'컬렉션이다. 보통은 T를 반환해야 하지만 특정 조건에서는 아무것도 반환하지 않아야 할때 T 대신 Optional를 반환하도록 선언하면 된다. 컬렉션에서 최댓값을 구한다(컬렉션이 비었으면 예외를 던진다). public static E max(Collection c) { ..

Java 2023.03.25

[Effective Java] 아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라.

🎯 아이템 54. null이 아닌, 빈 컬렉션이나 배열을 반환하라. null을 반환하는 API는 사용하기 어렵고 오류 처리 코드도 늘어난다. 그렇다고 성능이 좋은 것도 아니다. 컬렉션이나 배열 같은 컨테이너가 비었을 때 null을 반환하는 메서드를 사용할 때면 항시 방어 코드를 넣어줘야 한다. 클라이언트에서 방어 코드를 빼먹으면 오류가 발생할 수 있다. 실제로 객체가 0개일 가능성이 거의 없는 상황에서는 수년 뒤에야 오류가 발생하기도 한다. 빈 컬렉션을 반환하는 올바른 예 public List getCheeses(){ return new ArrayList(cheesesInStock); } 대부분의 상황에서는 이렇게 하면 된다. 가능성은 작지만, 사용 패턴에 따라 빈 컬렉션 할당이 성능을 눈에 띄게 떨어 ..

Java 2023.03.24
728x90
반응형