개발에 대한 깊은 고찰
-
개발 3개월차의 JPA와 Native SQL에 대한 고찰(1)개발에 대한 깊은 고찰 2023. 1. 9. 06:12
나의 성향 나는 JPA를 무척이나 좋아한다. 개발 3개월 입문자지만, 많은 공부를 한 부분이 바로 JPA이다. Java, Spring, JPA를 좋아하는 이유는 아주 보수적인 언어와 프레임웍이기 때문이다. JPA도 자바의 근본 철학인 객체지향을 지키기 위해 나온게 아닌가 하는 생각이 든다. 여태까지 내가 학습하며, 알게된 JPA에 대해 갈무리 하려고 한다. 또한, Native SQL을 어떻게 Spring Boot에서 사용할지도 고민해보려고 한다 JPA? JPA는 통역기다. 내가 한국말을 하면, 일본사람한테는 일본어를 통역해주고, 미국사람에겐 영어로 통역해준다. database의 종류에 상관없이, 하나의 언어로 Query매핑을 할 수 있게 해준다. 말그대로 db종류를 바꾸고 싶으면 db 연결만 바꿔주면 된..
-
DTO 갯수를 줄이기 위한 아이디어개발에 대한 깊은 고찰 2022. 11. 2. 05:19
항상 개발중에 느끼는 지점은 response의 관리가 어렵다 입니다. response에 넣을 값들을 dto를 통해 보내주는데, 무한히 많은 dto를 만들기에는 코드 재 사용성이 떨어집니다. 그래서 이 부분에 대한 연구를 해보았습니다. 첫번째는, 익명클래스를 이용하는 방법입니다. PostService.java public Post getOnePost(Account account) { Post post = postRepository.findById(10L).orElseThrow(RuntimeException::new); return new Post(post) { //Response에 nickname2라는 필드명을 추가하고 싶다! public String nickname2 = account.getNicknam..
-
@MappedSuperclass를 활용 해볼까?개발에 대한 깊은 고찰 2022. 10. 26. 04:00
@MappedSuperclass // 상속했을 때, 컬럼으로 인식하게 합니다. @EntityListeners(AuditingEntityListener.class) // 생성/수정 시간을 자동으로 반영하도록 설정 public class Timestamped { @CreatedDate // 생성일자임을 나타냅니다. private LocalDateTime createdAt; @LastModifiedDate // 마지막 수정일자임을 나타냅니다. private LocalDateTime modifiedAt; } 흔해빠진 timestamped 클래스이다 그런데 @MappedSuperclass 라는 어노테이션이 보인다. 상속시 컬럼으로 인식하게 하는거다.. 그러니깐,,, Spring boot에서 Entity 너 마저도..