Free Lines Arrow
본문 바로가기
728x90

전체 글350

[Java] Optional 제대로 쓰기 Optional 제대로 쓰기 Optional에 대해 공부를 해보다가 좋은 예제들이 있어서 적어봅니다. 출처를 남겼으며 나머지 내용들도 확인해 보시면 좋을것 같습니다. 옵셔널 변수에 널값 사용하지 않기 Optional 을 쓸때는 null 지옥을 피하기위해 사용함으로 null 값을 쓰는것은 의미가 없다. // AVOID public Optional fetchCart() { Optional emptyCart = null; ... } // PREFER public Optional fetchCart() { Optional emptyCart = Optional.empty(); ... } Get을 쓰기전에 값 존재 여부확인 // AVOID Optional cart = ... ; // this is prone to b.. 2023. 2. 6.
[Java] Optional<T> 기본 Optional에 대해 알아보자 Optional 이란? Optional 는 지네릭 클래스로 T 타입의 객체를 감싸는 래퍼 클래스이다. 모든 타입의 참조 변수를 담을수 있다. 최종 연산결과를 단순히 반환하는게 아니라 Optional 객체에 담아서 반환한다. 장점? 반환된 결과가 null 인지 매번 if 문으로 체크를 안해도된다. 제공되는 메서드를 사용하면 된다. Optional 객체 생성하기 of 와 ofNullable 를 이용해서 생성하면된다. 차이점 of : null 값이 들어갈수 없다. ofNullable : null 값이 들어 갈수 있다. 만일 null 값이 들어 가는 경우가 있다면 무조건 ofNullable 을 사용하자. import java.util.Optional; public class Op.. 2023. 2. 6.
[Spring] Proxy 프록시란? 프록시의 사전 의미는 대리자 이다. 실제 객체를 직접 호출 하는 방식이 아닌 대리자를 통해 호출 하는 방식이다. 프록시 패턴과는 다르다. 좀 더 자세히 분석해보자 프록시 객체는 실제 호출할 객체를 참조하고있다. 즉 감싸고 있다고 생각하면 된다. 어떤 이점이 있을까? 참조를 할수 있다는 것은 다른 객체도 참조를 할수 있다는 말이다. - 그렇다면 프록시 안에 공통적인 로직을 넣는다면? 어디든 적용할수 있다는 말이다. 아래와 같이 시간측정 공통로직을 넣을수 있다. 이렇게 부가적, 공통적, 관점들을 모듈로 만들수 있다. - 이게 바로 AOP 이다. 스프링에서 제공하는 프록시 종류 CGLIB Proxy 클래스 기반 extends 구현 JDK Dynamic Proxy 인터페이스 기반 implements .. 2023. 1. 23.
[Algorithm] version max 값 찾기 버전 정보가 있을때 맥스값을 찾아보자 어렵게 풀기 public void findMaxVersion() { String[] version = {"1.2.3", "2.2", "2.8", "2.7.1", "1.23.1"}; int minLength = 0; int maxIndex = 0; String maxVersion = version[0]; for (int i = 1; i < version.length; i++) { int maxLength = Math.max(version[i].length(), maxVersion.length()); String[] splitedMaxVersion = maxVersion.split("\\."); String[] splitedVersion = version[i].split.. 2023. 1. 23.
728x90
반응형