[Kotlin + Spring] JPA Entity 캡슐화 유지하는 방법 (field vs property, lazy-loading, private set, protected set)
·
Java & Kotlin/JPA
🧐 들어가기 전코프링으로 JPA Entity를 설계하던 도중 문득 의문이 생기게 되었다. 자프링에서는 보통 엔티티의 필드를 정의할 때 private로 외부로의 필드의 노출을 막고, 롬복 어노테이션을 통해 getter나 setter를 제공하여 해당 메서드를 통해 접근할 수 있도록 하여 객체지향적인 특성을 만족시켜 주었다.그러나 Spring 공식문서를 살펴보면, 코프링의 Entity를 설계할 때는 private와 같은 접근제어자를 사용하지 않는다. 따라서 왜 private 접근제어자를 사용하지 않는지, 그렇다면 어떻게 객체지향적인 특성을 만족하면서 설계할 수 있는지에 대해 알아보고자 한다.🔸Kotlin은 Field의 개념이 아닌 Property의 개념프로그래밍에서 필드(Field)와 프로퍼티(proper..
JPA 영속성 컨텍스트 내부 동작의 흐름 깊게 파헤치기
·
Java & Kotlin/JPA
🧐 들어가기 전... 영속성 관리 (영속성 컨텍스트, 엔티티 매니저, 엔티티 생명주기)🧐 들어가기 전...JPA : Java Persistence API, 자바의 ORM 기술 표준으로 애플리케이션과 JDBC 사이에서 동작한다. JPA가 제공하는 기능은 크게 두 가지로 나뉜다.엔티티와 테이블을 매핑 엔티티를 실제jhzlo.tistory.com🔍 JPA란?: Java 애플리케이션에서 데이터베이스와 객체 간의 매핑을 효율적으로 관리하기 위한 표준 ORM(Object-Relational Mapping) 기술이다.JPA는 관계형 데이터베이스와 객체지향 언어 사이의 불일치를 해결하기 위한 매우 강력한 도구이다. 객체 지향 패러다임과 관계형 데이터 모델 간의 불일치는 개발 과정에서 빈번한 문제를 야기하며, 이는..
[스프링 부트 3] 블로그 만들기 - 1 (블로그 글 작성 API 구현)
·
Java & Kotlin/Spring
0. API와 REST API API란?네트워크에서 API는 프로그램 간에 상호작용하기 위한 매개체를 말한다. 예를 들어, 우리가 웹 사이트에 방문하는 상황에 적용해서 생각을 해보면,웹 사이트 주소를 입력해서 '구글 메인 화면을 보여줘'라고 요청을 하면 API는 이 요청을 받아서 서버에 가져다준다.그러면 서버는 API가 준 요청을 처리해 결과물을 만들고 이것을 다시 API로 전달한다.그러면 API는 최종 결과물을 브라우저에 보내주고 우리는 화면을 볼 수 있게 되는 구조이다.REST API란?REST API는 웹의 장점을 최대한 활용하는 API이다, "URL의 설계 방식"REST : Representational State Transfer -> 자원을 이름으로 구분해 자원의 상태를 주고받는 API 방식.R..
[스프링 부트 3] ORM, JPA, 하이버네이트
·
Java & Kotlin/Spring
0. 데이터베이스란?데이터베이스는 데이터를 매우 효율적으로 보관하고 꺼내볼 수 있는 곳이다. 데이터베이스를 사용하면 얻을 수 있는 가장 큰 이점은 굉장히 많은 사람이 안전하게 데이터를 사용하고, 관리할 수 있다는 것이다.데이터베이스 관리자, DBMSDBMS : database management system, 데이터베이스를 관리하기 위한 소프트웨어 데이터베이스는 많은 사람이 공유할 수 있어야 하므로 동시 접근을 할 수 있어야 한다. DBMS 이런 요구 사항을 만족하면서도 효율적으로 데이터베이스를 관리하고 운영한다. 예를 들어, MySQL, Oracle은 DBMS이다. DBMS는 관리 특징에 따라서 관계형, 객체-관계형, 도큐먼트형, 비관계형 등으로 분류하며,가장 많이 사용되는 DBMS는 관계형이다.▶ 관..
J_hzlo
'jpa' 태그의 글 목록