
클린코드 책을 읽다보면 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을 자주 사용하면 프로그램의 종료시까지 ..

오늘은 개발을 편리하게 해주는 Object Mapping 기술인 MyBatis와 ORM(Object Relational Mappin) 기술인 JPA에 대해 알아보도록 하겠습니다. 1. ORM(Object Relation Mapping)이란? [ ORM(Object Relation Mapping)이란? ] ORM이란 객체(Object)와 DB의 테이블을 Mapping 시켜 RDB 테이블을 객체지향적으로 사용하게 해주는 기술이다. RDB 테이블은 객체지향적 특성(상속, 다형성,레퍼런스) 등이 없어서 Java와 같은 객체지향적 언어로 접근하는 것이 쉽지 않다. 이러한 상황에서 ORM을 사용하면 보다 객체지향적으로 RDB를 사용할 수 있다. Java에서 사용하는 대표적인 ORM으로는 JPA와 그의 구현체 Hib..