Mapstruct로 데이터 변환 적용하기
Mapstruct란? Spring Framework에서 개발할 때, 비즈니스 로직, 객체와 객체 간의 Mapping 등을 할 때 get, set을 일일이 넣어주는 것은 실수가 쉽고 생산성이 떨어진다. 특히나 Setter를 사용하는 것은 좋지 않다. Setter를 사용하면 안되는 이유는 Setter함수 호출을 통해 Entity의 값을 변경할 수 있다면, DB 데이터값 변경에 대한 히스토리를 코드를 보고 파악하기 어려워진다. 즉, Entity의 값을 변경한 의도를 파악하기 어렵다. get, set을 일일이 넣어주는 것을 대신 해주는 것이 Object Mapping 라이브러리이다. Object Mapping에는 여러 종류가 있는데,Mapstruct, ModelMapper, jmapper, orika 등이 있다..
2022. 12. 16.
원시타입 vs 참조타입 (자바)
원시타입(Primitive type : 기본타입)과 참조타입(Reference type) 원시타입 정수, 실수, 문자, 논리 리터럴을 저장하는 타입을 말하고 원시 타입이라고도 부른다. 정수형 : byte, short, int, long 실수형 : float, double 문자형 : char 논리형 : boolean 실제 데이터 값을 저장하는 타입이다. 참조타입 간단하게 말하자면 기본 타입을 제외한 타입들을 말한다. 객체의 주소를 저장하는 타입이다. ex) 문자열, 배열, 열거, 클래스, 인터페이스 Java에서 실제 객체는 Heap 영역에 저장되며 참조 타입 변수는 스택 영역에 실제 객체들의 주소를 저장하여 객체를 사용할 때마다 참조 변수에 저장된 객체의 주소를 불러와 사용하는 방식이다. Stack 영역 ..
2022. 5. 7.
Java - 멤버변수, 지역변수, 클래스변수, 인스턴스변수
변수를 선언위치에 따라 크게 구분하면 딱 2가지로 나눌 수 있다. 바로 멤버변수 / 지역변수 입니다. 멤버변수는 선언위치가 '클래스 영역' 이고, 지역변수의 선언위치는 '메소드나 생성자 내부' 이다 멤버변수는 다시 두 가지로 나누어진다 바로 클래스변수 / 인스턴스변수 이다 이 둘은 같은 멤버변수에 속하지만 필요한 상황이 굉장히 다르다 이해를 돕기 위해 예를 하나 들어보겠다. 우리가 게임을 처음 시작할 때, 캐릭터를 하나 만든다. 캐릭터를 만들 때 머리색깔을 블랙,골드,브라운 중에서 고를 수 있다고 하면, 머리색깔이라는 변수는 모든 캐릭터마다 다른 값을 가질 수 있다. 즉, 각각의 객체(=인스턴스)마다 개별적인 속성을 가져야 할 때, 우리는 인스턴스 변수를 선언해서 사용한다. 반대로 클래스 변수는, 모든 ..
2022. 4. 7.