전체 카테고리361 [Effective Java] 아이템59 라이브러리를 익히고 사용하라 ■ 라이브러리를 사용하라 표준 라이브러리를 사용하면 그 코드를 작성한 전문가의 지식과 나보다 앞서 사용한 다른 프로그래머들의 경험을 얻을 수 있다. 프로그래머들은 하부 공사보다는 애플리케이션 기능 개발에 집중할 수 있다. 따로 노력하지 않아도 성능이 지속해서 개선된다. 기능이 점점 많아진다. 내가 작성한 코드가 많은 사람에게 낯익은 코드가 된다. 자바 프로그래머라면 적어도 java.lang, java.util, java.io와 그 하위 패키지들에는 익숙해져야한다. 또한 컬렉션 프레임워크와 스트림 라이브러리도 익혀두면 도움이 된다. java.util.concurrent의 동시성 기능도 마찬가지로 알아두면 큰 도움이 된다. 이 패키지는 멀티스레드 프로그래밍 작업을 단순화해주는 고수준의 편의 기능은 물론, 능.. 2021. 7. 23. [Effective Java] 아이템58 전통적인 for문보다는 for-each 문을 사용하라 ■ for문 보다는 for-each문이 낫다 fir문에서 사용하는 반복자와 인덱스는 모두 코드를 지저분하게 한다. 진짜로 중요한건 원소들이다.for each 문이 코드도 더 깔끔하고 오류가 날 일도 없다. 하나의 관용구로 컬렉션과 배열을 모두 처리할 수 있어서 어떤 컨테이너를 다루는지는 신경쓰지 않아도 된다. ■ for-each 문을 사용할 수 없는 상황 세 가지 파괴적인 필터링 : 컬렉션을 순회하면서 선택된 원소를 제거해야 한다. 반복자의 remove 메서드를 호출해야 한다. 자바8는 Collection의 removeIf 메서드를 사용해 컬렉션을 명시적으로 순회하는 일을 피할 수 있다. 변형 : 리스트나 배열을 순회하면서 그 원소의 값 일부 혹은 전체를 교체해야 한다면 리스트의 반복자나 배열의 인덱스를.. 2021. 7. 23. [Effective Java] 아이템57 지역변수의 범위를 최소화하라 ■ 지역변수 범위 최소화 지역변수의 유효 범위를 최소로 줄이면 코드 가독성과 유지보수성이 높아지고 오류 가능성은 낮아진다. 지역 변수의 범위를 줄이는 가장 강력한 기법은 해당 변수를 가장 처음 사용할 때 선언하는 것이다. 거의 모든 지역 변수는 선언과 동시에 초기화해야한다. 변수를 실제로 사용하는 시점엔 타입과 초기값이 기억나지 않을 수 있다. ■ 반복문과 지역변수 반복문은 for, for-each 형태의 반복문안에서는 반보 변수의 범위가 반복문의 몸체, 그리고 for 키워드 몸체 사이의 괄호 범위로 제한된다. 따라서 반복 변수의 값을 반복문이 종료된 뒤에도 써야 하는 상황이 아니면 while문보다는 for문을 사용하는게 낫다. ■ 메서드를 작게 유지하고 한가지 기능에 집중하라 메서드를 작게 유지하면 한.. 2021. 7. 23. [css] 이미지 div 크기에 맞게 채우는 방법 이미지를 둘러싸고 있는 div에 꽉차게 하고 싶은 경우 사용할 수 있는 방법이 있다. 아래와 같은 소스 코드가 있다. img 태그를 div 영역에 꽉차게 하고 싶은 경우 img 태그에 다음 css를 적용하면 된다. img{ position: absolute; top:0; left: 0; width: 100%; height: 100%; } 이렇게 적용하면 모니터 해상도에 상관없이 해당 div 영역에 꽉 차서 들어간다. 2021. 7. 17. [Effective Java] 아이템56 공개된 API 요소에는 항상 문서화 주석을 작성하라 ■ 자바독(Javadoc)이란? API 문서화 유틸리티 소스코드 파일에서 문서화 주석이라는 특수한 형태로 기술된 설명을 추려 API 문서로 변환해줌 ■ 공개된 API 요소에는 항상 문서화 주석을 작성하라. 여러분의 API를 올바로 문서화하려면 공개된 모든 클래스, 인터페이스, 메서드, 필드 선언에 문서화 주석을 달아야 한다. 공개된 모든 클래스, 인터페이스, 메서드, 필드 선언에doc comment를 달아야 한다. 공개 클래스는 기본 생성자에 주석을 달 수 있는 방법이 없으니 절대 기본 생성자를 사용해서는 안된다. ■ 메서드용 문서화 주석에는 해당 메서드와 클라이언트 사이의 규약을 명료하게 기술 how가 아닌 what을 기술할 것. (상속용으로 설계된 API가 아닌 이상) 메서드를 성공적으로 호출하기 위.. 2021. 7. 12. [Effective Java] 아이템55 옵셔널 반환은 신중히 하라 ■ 자바 8 이전 자바 8전에는 메서드가 특정 조건에서 값을 반환할 수 없을 때 두가지 선택지가 있었다. 1. Exception Throw 예외는 반드시 예외적인 상황에서만 사용해야 한다. 예외는 실행 스택을 추적 캡처하기 때문에 비용이 비싸다. 2. Null Return null을 리턴하는 경우에는 Null Pointer Exception을 항상 조심해야한다. ■ Optional 도입 자바 8에서 Optional가 도입되면서 선택지가 하나 늘었다. Optionl이란 null이 아닌 T타입 참조를 하나 담거나 아무것도 담지 않은 일종의 래퍼 클래스이다. Optional은 원소를 최대 1개 가질 수 있는 불변 Collection이다. 자바 8이전의 코드보다 null-safe한 로직을 처리할 수 있게 해준다.. 2021. 7. 12. 이전 1 ··· 8 9 10 11 12 13 14 ··· 61 다음