6. Lombok
반복되는 getter, setter, toString 등의 메서드 작성 코드를 줄여주는
코드 다이어트 라이브러리
- 코드의 가독성을 높일 수 있고 코딩 생성
- 하지만 특정 개발자들은 코드가 직접 눈에 보임으로써 직관성을
유지하는것이 좋다고 보는 의견
6
8. MapStruct
DTO = Controller, Service, Repository 등 레이어 간 데이터를 주고받을 때나 비즈니스 로직에서,
하나의 객체를 타입이 다른 객체로 형(Type) 변환하거나 여러 객체를 다른 객체로 합치는 일
- 컴파일 시 오류를 확인할 수 있다.
- 생성된 매핑 코드를 눈으로 직접 확인할 수 있다.
- 디버깅이 쉽다.
- 리플렉션(Reflction)을 사용하지 않기 때문에 매핑 속도가 빠르다.
8
13. JPA - ORM
• Object Relational Mapping, 객체-관계 매핑
• 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결)해주는 것을 말한다.
• 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다.
• 객체 모델과 관계형 모델 간에 불일치가 존재한다.
• ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다.
• 데이터베이스 데이터 <—매핑—> Object 필드
• 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다.
• Persistant API라고도 할 수 있다.
• Ex) JPA, Hibernate 등
• https://gmlwjd9405.github.io/2019/02/01/orm.html
13
14. ORM 장단점
객체 지향적인 코드로 인해 더 직관적이고 비즈니스 로직에 더 집중
재사용 및 유지보수의 편의성
잘못 구현된 경우에 속도 저하 및 심각할 경우 일관성이 무너지는
문제점
프로시저가 많은 시스템에선 ORM의 객체 지향적인 장점을 활용하
기 어렵다.
14