Optional Optional이란? Java 8 버전에서 추가된 타입으로 값의 유무를 표현한다. null 값을 대체할 수 있다. 프로젝트를 진행할 때 가장 번거로운 NullPointException을 대체할 수 있는 아주 좋은 방안이다. 즉, null이 올 수 있는 값을 감싸는 wrapper 클래스로 참조해도 NullPointException이 발생하지 않도록 도와준다. Optional 클래스 내부를 살펴 볼까? 하고 들어가 보니 value, EMPTY와 같은 필드가 존재해 null이더라도 NPE가 발생하지 않는다..! public final class Optional { private static final Optional EMPTY = new Optional(); private final T val..
전체 글
개발자 취준행 이우키 입니다! 미숙한 개발로그☕AOP가 무엇인가? Aspect Oriented Programming (관점 지향 프로그래밍) 횡단 관심사의 분리를 허용해 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임 여러 객체에 공통으로 적용할 수 있는 기능을 분리해, 반복 작업을 줄이고 핵심 기능 개발에만 집중할 수 있습니다. 즉, 비즈니스 로직과 공통 로직을 분리해서 구현하는 것 입니다. AOP 예시 나는 학부생으로써, Factorial을 구현하는 과제를 부여 받았다. Factorial을 구현할 때 반복문 방식, 재귀 방식 2가지로 구현해야한다. 과제를 제출하기 직전, 과제에 새로운 내용을 추가해야했다. 바로 실행시간도 함께 출력하도록 하는 것이다. 이런 위와같은 예시에서 일반적인 코드 형식을 보자 //계산기를 구현하기 위한 Calculat..
Garbage Collector Java를 다뤄봤다면 한 번쯤 들어봤을 법한 언어 GC 이것은 대체 무엇일까? Heap 메모리에 위치한 unreachable한 객체를 삭제시켜주는 것 더 이상 사용하지 않는 객체를 의미한다. 객체가 null인 경우 객체가 블럭 안에서 생성되고 블럭이 종료 되었을 경우 부모 객체가 null이 되었을 경우, 자식 또는 포함된 객체들 C, C++ 등의 코드 레벨에서는 메모리를 직접 할당받고, 헤제해야 지만 //C++ char *s = malloc(sizeof(char)*10); s = "Hello GC!"; printf("%s", s); free(s) // 그래서 Java8과 Java11의 큰 차이점 중 GC 개선(Paralle -> G1)으로 인한 성능 향상이라고 합니다 왜 ..