profile
기록하는 개발자

이펙티브 자바 3판 - 아이템 9. try-finally 보다 try-with-resources를 사용하라.

JDK 7부터 try-finally는 더 이상 최선의 방법이 아니다.try-catch-finally, try-finally 구문은 try 블럭에서 일어난 예외처리를 진행하는 문법이다.1개의 try는 반드시 catch 또는 finally 가져야 구문이 완성된다. cat

2023년 2월 28일
·
0개의 댓글
·

이펙티브 자바 3판 - 아이템 8. finalizer와 cleaner 사용을 피하라.

아이템 8. finalizer와 cleaner 사용을 피하라. 자바는 두 가지 객체 소멸자(`finalizer와 cleaner`)를 제공한다. > JDK 9부터 finalizer는 deprecated로 지정되었고 cleaner가 대안으로 등장했다. finalizer

2023년 2월 24일
·
0개의 댓글
·

Fail-Fast Iterator와 Fail-Safe Iterator

Iterator는 자바 컬렉션 프레임워크(Java Collection Frameworks)의 일부분이다.요소(Elements)를 하나씩 순회하는데 사용되며, 두 가지 유형의 Iterator Fail-Fast Iterator와 Fail-Safe Iterator를 제공한다

2023년 2월 18일
·
0개의 댓글
·

이펙티브 자바 3판 - 아이템 7. 다 쓴 객체 참조를 해제하라.

아이템 7. 다 쓴 객체 참조를 해제하라. 일반적으로 자바 언어는 Garbage Collector에 의해 자동으로 메모리가 관리되기 때문에 메모리 관리에 부주의한 경우를 많이 볼 수 있다. 우리가 주의해야할 것은 객체의 레퍼런스가 남아있다면 해당 객체는 가비지 컬렉

2023년 2월 17일
·
0개의 댓글
·

나는 월급을 받기 위해 회사를 다니지 않는다.

나는 월급을 받기 위해 회사를 다니는 사람이 아니다.돈이 충족하기 때문에 필요 없다는 맥락에 서두는 아니니 오해는 없길 바란다.상대적으로 기업 규모에 따라 제공되는 인력 풀의 차이는 확연하다.그 차이에서 발생하는 구성원들의 스킬적 측면, 사고하는 바, 목표하는 바 등은

2023년 1월 26일
·
0개의 댓글
·

구현 패턴의 가치와 원칙

패턴은 반복적으로 일어나는 문제를 합리적 해결책을 제공하여 고민의 시간을 줄일 수 있다. 디자인 패턴을 공부하다 보면 가끔 마주하는 격언이 있다.Don't reinvent the wheel이미 잘 만들어져 있는 무언가에 대해 시행 착오를 다시 반복할 필요는 없다.패턴

2023년 1월 20일
·
0개의 댓글
·

일급 객체(First-class object)와 고차 함수(Higher-order function)

일급 객체(First-class object)란 다른 객체들에게 적용 가능한 연산을 모두 지원하는 객체를 뜻한다.자바에서 Integer, String 과 같은 객체들은 모두 일급 객체이다. 자바 프로그래밍 언어의 다양한 구조체(메서드, 클래스 같은)는 프로그램을 실행

2023년 1월 8일
·
0개의 댓글
·

이펙티브 자바 3판 - 아이템 6. 불필요한 객체 생성을 피하라.

같은 기능의 객체를 매번 생성하여 사용하지말고 객체 하나를 재사용하는 편이 낫다.특히 불변 객체는 언제든 재사용할 수 있다.그렇지만 이번 아이템을 객체 생성은 비싸니 무조건 피해야 한다로 오해해서는 않된다.실제로 리팩토링 과정에서 하나의 for 문을 가독성 향상을 위해

2023년 1월 3일
·
0개의 댓글
·

이펙티브 자바 3판 - 아이템 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라.

자원을 직접 명시하지 않고 의존 객체 주입을 사용해야 하는 클래스는 사용하는 자원에 따라 동작이 달라지는 클래스의 경우에 사용할 수 있다.단순한 예제로 사전의 경우를 예를 들어 잘못 사용된 사례는 아래와 같다.사전은 다양한 언어를 사용할 수 있다고 가정해보자.위에 제시

2023년 1월 3일
·
0개의 댓글
·

함수형 인터페이스 - Predicate

java.util.function 패키지에 미리 정의된 43개(JDK 11 기준)의 함수형 인터페이스가 집합되어 있다. 각각의 함수형 인터페이스는 기본 개념에서 약간의 변형을 통한 확장이 이루어져 있으므로몇 가지의 주요한 함수형 인터페이스의 특성을 파악하면 된다.첫

2023년 1월 1일
·
0개의 댓글
·

2023년 계묘년 새해를 맞이하며

언제부터인가? 새해가 설레고 기대되는 일은 아니었다.어릴 때는 뭔가 나이를 먹는다는 일에 의미를 부여하곤 했었는데어느 순간 매년 쳇바퀴 돌아가듯 시간만 흘러간 것 같다.신년이라고 무언가 특별한 계획을 세우거나, 실행에 옮기기 위한 생각들을 전투적으로 준비해 본 기억이

2022년 12월 31일
·
0개의 댓글
·

함수형 인터페이스 (Functional Interface)

함수형 인터페이스는 정확히 하나의 추상 메서드를 지정하는 인터페이스다.디폴트 메서드(Default Method)가 있더라도 추상 메서드가 오직 하나면 함수형 인터페이스다. JDK 8부터 도입된 디폴트 메서드(Default Method)는 인터페이스 내부에서도 로직을

2022년 12월 24일
·
0개의 댓글
·

람다 표현식 (lambda expression)

람다 표현식은 메서드로 전달할 수 있는 익명 함수(Anonymous Function)를 단순화 처리한 것이라고 할 수 있다.람다라는 용어는 람다 미적분학 학계에서 개발한 시스템에서 유래(람다 대수 λ) 됐다고 한다.자바의 람다는 JDK 8부터 도입되었다. C1) 익명

2022년 12월 23일
·
0개의 댓글
·

이펙티브 자바 3판 - 아이템 4. 인스턴스화를 막으려거든 private 생성자를 사용하라.

정적 메소드와 정적 필드만을 담은 클래스를 사용할 때가 있다.이는 객체 지향적 사고에 좋은 방식은 아니지만 유틸리티 클래스 등 사용에 쓰임은 분명히 있다.해당 클래스를 사용 시 인스턴스화를 막아야 하는 문제에 직면한다.인스턴스 생성을 막는 방식과 그 문제점을 아래에 설

2022년 12월 21일
·
0개의 댓글
·
post-thumbnail

이펙티브 자바 3판 - 아이템 3. private 생성자나 열거 타입으로 싱글턴임을 보증하라.

싱글턴 패턴은 인스턴스를 하나만 생성할 수 있는 클래스다.이를 이용하여 무상태(stateless)객체나 설계상 유일해야 하는 시스템 컴포넌트 혹은 인스턴스를 하나만 유지해도 좋은 경우 사용한다. 책에서는 이러한 싱글턴 패턴을 구현 시 private 생성자를 사용하여

2022년 12월 17일
·
0개의 댓글
·
post-thumbnail

이펙티브 자바 3판 - 아이템 2. 생성자에 매개변수가 많다면 빌더를 고려하라.

정적 팩터리 메소드와 생성자는 공통적인 제약이 있음.선택적 매개변수가 많을 경우 표현 방식의 유연성이 떨어지고 대응하기 어려움.점층적 생성자 패턴(Telescoping Constructor pattern), 자바빈즈 패턴(JavaBeans Pattern) 을 사용할 수

2022년 12월 17일
·
0개의 댓글
·
post-thumbnail

이펙티브 자바 3판 - 아이템 1. 생성자 대신 정적 팩토리 메서드를 고려하라.

일반적인 인스턴스 생성 방식은 생성자(Constructor)를 이용하는 방법이 있다.이 외에도 정적 팩터리 메서드(static factory method)를 제공 할 수 있다.아래는 정적 팩터리 메서드 사용 시 장점과 단점에 대해 열거한다.이름을 가질 수 있다.동일한

2022년 12월 17일
·
0개의 댓글
·

지식 공유를 시작한 이유와 실행의 단상

오래전부터 지식 공유 활동을 해보는 것에 관심을 갖고 있었다.블로깅, 온/오프라인 지식 공유, 기술 관련 모임 활동 다양성이 있는 전체 부분에 대해 말이다.최근 일정 부분 행동으로 옮기기 시작하면서 이 글을 두서없이 적어보기 시작했다.IT업계에 처음 종사하게 되었을 때

2022년 12월 10일
·
0개의 댓글
·
post-thumbnail

JUnit 5를 이용한 애플리케이션 테스트 방법

수동 테스트 (Manual Test): QA 담당자가 UI를 사용해 기능을 검증 (인적 리소스를 활용, 인수 테스트 방식에서 사용)소프트웨어 회귀 (Software regression)원래 동작하던 기능이 어떠한 시점으로 부터 동작하지 않는 현상을 의미한다.테스트 자동

2022년 12월 8일
·
0개의 댓글
·