Java 언어를 이용해 개발을 하다 보면 기계적으로 작성해야 하는 코드들이 상당히 많다. 이번에는 기계적인 코드 작성을 자동화하여 코드 다이어트를 해주는 Java 필수 라이브러리 Lombok에 대해 알아보도록 하겠다. 1. Lombok의 필요성 [ 기존의 코드 작성 ] 예를 들어 우리가 경기도 지역화폐 가맹점에 대한 상점 목록을 반환해주는 SpringBoot 기반의 API 서버를 개발한다고 가정하자. 우리는 기존에 Java를 활용하여 프로젝트를 개발할 때 다양한 VO 클래스들을 생성하였고, 해당 예제의 경우 가게들의 정보를 저장하는 Store를 아래와 같이 만들어줄 수 있다. public class Store extends Common { private String companyName; // 상호명 p..
클린코드 책을 읽다보면 Enum 활용의 중요성에 대해 얘기하는 부분이 있습니다. 이번 내용으로는 Enum에 대해 알아보고 기존의 코드를 개선시켜보도록 하겠습니다. 아래의 내용들은 배달의 민족 기술 포스팅을 참고하여 작성하였습니다! 1. 기존의 코드 관리 방법 [ 기존의 코드 관리 방법 ] 일반적으로 프로그래밍을 할 때, Enum과 같이 열거형이 필요한 타입들의 경우 서버에서 데이터를 제공한다. 예를 들어 어떤 글의 진행상태를 나타내는 변수가 있다고 하자. 과거의 시스템과 같은 경우는 아래의 예제와 같이 상수와 관련된 코드들을 별도의 테이블로 만들어서 관리하고 있었다. @Entity @Table("codeVO") @Getter @NoArgsConstructor public class CodeVO exten..
클린코드 책을 읽다보면 Enum 활용의 중요성에 대해 얘기하는 부분이 있습니다. 이번 글에서는 Enum에 대해 알아보고 Enum을 활용하여 기존의 코드를 개선시켜보도록 하겠습니다. 1. Enum이란? [ Enum 이란? ] 일반적으로 상수를 정의할 때, public static final String 으로 상수를 정의한다. 하지만 이렇게 상수를 정의하면서 다양한 문제들이 발생하게 되었고, Java 1.5버전부터는 서로 연관된 상수들의 집합을 의미하는 열겨형 클래스 Enum을 도입하게 되었다. 어떤 일의 처리가 진행중인지 완료상태인지를 나타내는 Status와 관련된 Enum은 아래와 같이 사용될 수 있다. package EnumExample; public class EasyEnumExample { // E..
이번에는 Java8부터 지원하는 Optional 클래스에 대해 알아보도록 하겠습니다. 1. Optional이란? Optional 개념 및 사용법 [ NPE(NullPointerException) 이란? ] 개발을 할 때 가장 많이 발생하는 예외 중 하나가 바로 NPE(NullPointerException)이다. NPE를 피하려면 null 여부를 검사해야 하는데, null 검사를 해야하는 변수가 많은 경우 코드가 복잡해지고 번거롭다. 그래서 null 대신 초기값을 사용하길 권장하기도 한다. List names = getNames(); names.sort(); // names가 null이라면 NPE가 발생함 List names = getNames(); // NPE를 방지하기 위해 null 검사를 해야함 if..
1. Static 정리 Java에서 Static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미합니다. 이를 정확히 이해하기 위해서는 메모리 영역에 대한 이해가 필요합니다. [ Static의 메모리 ] 일반적으로 우리가 만든 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap영역에 생성됩니다. 객체의 생성시에 할당된 Heap영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받습니다. 하지만 Static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbage Collector의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 ..