반응형 jpa5 도메인 주도 개발하기 책 리뷰 https://www.google.co.kr/books/edition/%EB%8F%84%EB%A9%94%EC%9D%B8_%EC%A3%BC%EB%8F%84_%EA%B0%9C%EB%B0%9C_%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0/bi5qEAAAQBAJ?hl=ko&gbpv=0 도메인 주도 개발 시작하기 코딩을 좋아하여 나이를 먹고 백발이 되어도 개발을 하고 싶은 개발자다. 좋은 책 쓰는 것을 목표로 꾸준히 블로그와 브런치에 글을 쓰고 있으며 많은 강연 활동도 하고 있다. 전) 아이스크림에 books.google.co.kr 요번에는 도메인 주도 개발하기라는 책을 읽게 되었다. 사실 책은 예전에 샀는데 이제야 읽게 되었다. 이유는 이 책에서는 JPA를 사용해서 알려주는데 그 당시에 J.. 2023. 10. 4. @Converter 사용해서 DB값 변환하기 엔티티의 속성 중에 boolean 타입을 사용하는 속성은 DB에 저장 시에는 DBMS마다 상이한 경우도 있지만 0 혹은 1로 저장되는 경우가 많다. 이는 의미를 불명확하게 하여 보는 사람이 손쉽게 파악하기 어렵다는 단점이 있다. 그리하여 DB에 저장할때는 Y / N으로 변환하여 저장해 주면 파악하기 좋아진다는 장점이 있다. 이 경우 뿐만아니라 DB에서 불러올 때 저장할 때 암호화/복호화하는 경우에도 사용 가능하기도 하다. 저장할 때 직접 변환해서 저장하고, 조회할 때 변환해서 가져오는 로직을 추가하여 사용할 수 있지만 그보다는 엔티티의 속성 자체에 Converter를 넣어주어 자동으로 변환되도록 하면 유지보수는 물론 보기에도 좋은 코드가 된다. 간단하게 말하면 객체의 속성과 DB의 컬럼 데이터를 매핑할 .. 2023. 9. 6. [JPA] 생성일, 수정일 자동 기입 기능 추가하기 (AuditingEntityListener) 게시글과 같은 기능을 구현하다 보면 생성일, 수정일을 관리해야 하는 경우가 흔하게 발생한다. 이럴 때 서비스로직에 직접 생성, 수정 시에 해당 날짜를 생성일, 수정일 컬럼에 직접 update 하는 방식으로 구현할 수 있다. 하지만 이렇게 되면 사람이 코드를 작성하다 보니 까먹고 추가를 안 하는 경우가 생겨 정상적으로 동작하지 않는 컬럼이 될 수 있다. 이러한 부분을 해결하기 위해서 엔티티에 리스너를 추가하여 엔티티를 조작할 때 추가적인 로직을 설정할 수 있다. 바로 AuditingEntityListener를 이용하는 것이다. EntityListener EntityListener는 엔티티에 이벤트가 발생하는 것을 감지하여 동작하는 로직을 구현할 수 있도록 해준다. JPA는 7가지의 이벤트를 감지할 수 있다.. 2023. 7. 9. [JPA] 페이징 처리, Paging (Pagination, Infinite Scroll) 페이징 처리 페이지네이션? 무한 스크롤? 페이징 처리는 한 번에 모든 데이터를 가져오면 많은 시간이 걸리기 때문에 단위를 나눠서 데이터를 가져올 수 있도록 단편화시키는 것을 의미한다. 구글만 보더라도 아래와 같이 페이지네이션을 처리해 두었다. 위와 같이 페이지를 나누어 사용자가 골라 접근할 수 있도록 만든 것을 페이지네이션이라고 부른다. 웹페이지를 이용할 때 흔하게 볼 수 있는 모습이다. 반면 요즘에는 SNS 같은 곳을 보면 이러한 숫자방식의 페이지네이션이 아닌 스크롤을 모두 내리면 추가적인 콘텐츠를 불러오는 방식의 무한 스크롤(infinite scroll) 방식도 많이 사용한다. 하지만 이러한 방식의 차이는 어떻게 보여주냐의 차이일 뿐 내부적인 로직은 거의 흡사하다. 기본적인 동작 원리는 조회할 때 얼.. 2023. 6. 21. JAVA 면접 예상 질문 리스트 요즘 유행하는 chatgpt를 사용해보고 싶어 chatgpt를 사용해서 자바에서 알아둬야 할 것들을 정리해 보았습니다. Java 언어의 특징은 무엇이며, 이를 어떻게 활용할 수 있나요? 플랫폼에 독립적인 애플리케이션 개발: Java는 JVM에서 실행되므로, 플랫폼에 구애받지 않고 애플리케이션을 개발할 수 있습니다. 객체지향적인 설계: Java는 OOP를 지원하므로, 객체지향적인 설계를 통해 코드의 가독성과 재사용성을 높일 수 있습니다. 안정적인 애플리케이션 개발: Java는 예외 처리를 지원하여, 애플리케이션의 안정성을 높일 수 있습니다. 개발 생산성 향상: 다양한 라이브러리와 프레임워크를 제공하므로, 개발 생산성을 향상할 수 있습니다. Java에서 객체지향 프로그래밍(OOP)이란 무엇이며, OOP의 장.. 2023. 2. 22. 이전 1 다음 반응형