post-thumbnail

[Item21] 인터페이스는 구현하는 쪽을 생각해 설계해라

java 8 이후로 인터페이스에 디폴트 메소드를 추가가 가능해짐특히 Collectioin Interface에 다수의 디폴트 메소드가 추가됨디폴트 메소드를 선언하면, 인터페이스 구현체에 디폴트 메서드를 정의하지 않으면 디폴트 구현이 사용된다.Collection 인터페이스

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

WebMvcTest와 Spring Security 함께 사용하기

개요 통합테스트에서 Unit Test로 변경하여 구현하기 위해 Controller Unit 테스트코드를 작업하는 중 org.springframework.beans.factory.UnsatisfiedDependencyException 가 발생하였다. @WebMvcTes

2022년 3월 16일
·
0개의 댓글
·
post-thumbnail

Stream을 List로 변환하는 다양한 방법과 차이(Collectors.toList() vs Stream.toList())

java17 을 사용하고 sonarlint 로 체크를 해보니 "Stream.toList()" method should be used instead of "collectors" when unmodifiable list needed 로 collect(Collectors.t

2022년 3월 16일
·
0개의 댓글
·
post-thumbnail

hashCode는 정말 메모리주소와 관련이 있을까?

EffectiveJava Item11 hashCode 를 재정의하라 를 공부하면서, 객체에 대한 equals 를 재정의를 해주려면 hashCode를 재정의 해줘야 한다는 것을 알았다. 기본 default hashCode가 객체가 다르면 어쨌거나 다른 값을 주기 때문이다

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

[Item11] equals를 재정의 하려거든 hashCode 도 재정의하라

Object의 일반 규약을 어기게 되기 때문이고,hashCode를 재정의 하지 않으면 hashMap, hashSet 을 사용하였을 때 문제를 일으킨다.equals 가 사용하는 정보가 변경되지 않는다면 hashCode 를 여러 번 호출해도 동일 hash 값을 반환해야 한

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

@Builder 클래스 Deserialize 하기

spring application를 layerd architecture 로 개발할 때 interface의 requestBody 를 dto class 로 만들어 구현한다. 이때 멤버변수가 많은 경우, testcode 작성이 용이하려고 @Builder 어노테이션을 clas

2022년 2월 28일
·
0개의 댓글
·
post-thumbnail

@Builder class 선언 vs constructor 선언

선택적 매개변수가 많을 때매개변수가 많고 게다가 선택적 매개변수가 많을 때 constructor 를 사용하려면 선택적매개변수가 각기 다른 생성자를 만들어줘야하는데, 매개변수가 많은 경우에는 정의해 줘야하는 생성자가 굉장히 많아진다.다음은 effectve java 아이템

2022년 2월 28일
·
0개의 댓글
·
post-thumbnail

Execution failed for task ':compileJava'.

기본 jdk 버전이 맞지 않아서 생기는 에러IntelliJ를 사용하는 경우에는 다음의 java 버전을 모두 맞춰준다.sourceCompatibility 에 세팅된 버전과 모두 일치하게 해줘야 한다.Project Settings-Project에서 Project SDK 설

2022년 2월 22일
·
0개의 댓글
·
post-thumbnail

[Item8] finalizer와 cleaner 사용을 피하라

종료자라고 한다.JVM이 특정 인스턴스를 가비지 수집해야 한다고 판단되면 filnalize가 호출된다.java9 에서부터는 deprecated 됐다. → 사용하지 말라는 말이다.GC 가 finalize 를 호출하는 시간은 정확히 알 수 없다. GC가 언제 수행되는지 알

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

[Item7] 다 쓴 객체 참조를 해제하라

나쁜 예제책에서 pop() 을 실행했을 때 Size를 줄여도 Array는 그대로이다.즉 참조는 그대로 이기 때문에 Object는 살아있는 상태이다.이점메모리 누수를 막을 수 있을 뿐 아니라,만약 null 처리 한 참조를 실수로 사용하려 하면 프로그램은 즉시 \`Null

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

[Item6] 불필요한 객체 생성을 피하라

똑같은 기능의 객체를 여러번 생성하기보다는 객체 하나를 재사용하는 편이 낫다.String 인스턴스를 매번 새로 만드는 코드 이므로, 앱 내부에서 String 인스턴스가 수백만 개 가 만들어질 수 있다.\[Item1] Constructor 대신 Static Factory

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

[Item5] Resource 를 직접 명시하지 말고, Dependency Injection을 사용하라

@Configuration 을 선언한 클래스를 예시로 들어본다.잘못된 예시좋은 예시properties를 주입하여 위의 코드를 변경하였다application.yml생성자를 통해 리소스를 주입하면 TestCode 작성시 Injection 하기 편하다.각 나라마다 전화번호

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

[Item4] 인스턴스화를 막으려거든 private 생성자를 사용하라

잘못된 예제isEmailValid() 를 만든 개발자가 퇴사를 하고 후에, 다른 개발자가 getPattern() 을 만들어 인스턴스화를 해버리려는 상황이 발생할 수 있다. private PatternUtil(){} 로 private 생성자를 만들어 이런 상황을 방지해

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

[Item3] private 생성자나 열거타입으로 싱글턴임을 보증하라 (feat. 싱글톤은 안티패턴)

싱글턴을 만드는 방법 1 : static final public static 멤버가 final 필드인 방식 외부에서 Elvis.INSTANCE 로 객체를 가져올 수 있다. 장점 해당 클래스가 싱글턴임이 API 에 드러난다. 간결하다 문제점 리플렉션을 이용하면

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

[Item1] Constructor 대신 Static Factory Method를 고려하라

객체를 생성할 때 사용되는 기법 중 하나이다. Factory 이름에서 유추 할 수 있듯이 인스턴스를 생성하는 패턴인 팩토리 패턴 에서도 사용이 된다.Spring에서는 주로 Layer 간 데이터를 Converting 할 때 사용되고 주로 of 라는 이름이 많이 사용이 된

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

DNS 이해하기, DNS 질의과정

도메인 이름 시스템(DNS)은 사람이 편하게 해당 서버에 요청할 수 있게 해주는 시스템이다.즉 클라이언트는 직접 ip 주소로 요청하는것이 아니라 보기편한 문자로 요청할 수 있게 해준다.12.123.123.22 보다는 www.naver.com 으로 요청보내는게 쉽자나!

2022년 2월 21일
·
1개의 댓글
·