본문 바로가기

Language/Java28

[JPA] JPA의 영속성 컨텍스트란? JPA 를 이해하기 위해선 EntityManagerFactory 와 EntityManager 를 먼저 알아야한다. EntityManagerFactory & EntityManager EntityManagerFactory 는 이름 그대로 EntityManager를 만드는 공장이다. 애플리케이션 전체에서 공유하도록 설게되어 있으므로 단 한 개만 생성한다. EntityManager는 EntityManagerFactory를 이용하여 생성하며 이를 생성하는 비용은 거의 들지 않는다. EntityManagerFactory 는 여러 스레드가 동시에 접근해도 안전하므로 다른 스레드간 공유할 수 있다. 반면, EntityManager 는 여러 스레드가 동시에 접근하면 동시성 문제가 발생하므로 스레드 간 공유를 하면 안된다.. 2022. 6. 25.
[Java] MyBatis 와 JPA 의 차이 Persistence Framework JDBC 프로그래밍의 복잡함이나 번거로움 없이 간단한 작업만으로 데이터베이스와 연동되는 시스템을 빠르게 개발할 수 있으며 안정적인 구동을 보장합니다. Persistence Framework는 SQL Mapper와 ORM으로 나눌 수 있습니다. JPA, Hibernate, Mybatis 등 SQL Mapper 와 ORM Persistence Framework는 SQL Mapper와 ORM으로 나눌 수 있다고 하였습니다. 대표적인 예로 SQL Mapper 는 Mybatis, ORM 은 JPA 가 있습니다. ORM은 Object-relational mapping(객체 관계 매핑) 의 약자로 객체는 객체대로, RDB는 RDB대로 설계하여 데이터베이스 객체를 자바 객체로 매.. 2022. 2. 14.
[Java] Java GC 쉽게 이해하기 ✋🏻 들어가며.. 기존에는 책 내용을 그대로 작성하고(거의 필사수준,,) 나 자신이 이해하기 위해서 블로그 글을 작성했다면, 이제는 남에게 설명하듯이 블로그 글을 작성하려 합니다. 이전 글들과 서술 방식이 다를 수 있습니다. GC란 우리는 Java 프로그래밍을 하면서 new라는 키워드를 사용하여 객체를 생성합니다. 이 때 new가 붙은 객체는 Heap 영역에 동적으로 메모리를 할당해줍니다. 이렇게 동적으로 할당된 메모리는 더 이상 사용하지 않으면 해제되어야 합니다. 해제하지 않으면 메모리를 계속해서 점유하고 있으므로 OutOfMemmory Exception 이 발생할 수 있습니다. 이렇게 동적으로 할당된 메모리를 해제해주는 작업을 하는 것이 GC입니다. 정리하자면 다음과 같습니다. GC란 Garbage .. 2021. 10. 15.
객체 지향 설계의 5대 원칙 (SOLID) 본 글은 📚 스프링 입문을 위한 자바 객체지향의 원리와 이해 를 읽고 정리한 내용입니다. 객체 지향 설계의 5대 원칙이란 객체 지향 언어를 이용해 객체 지향 프로그램을 올바르게 설계해 나가는 방법이나 원칙을 말한다. 객체 지향 설계 5원칙(SOLID)은 로 아래와 같다. SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open Closed Principle) : 개방 폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle) : 의존 역전 원칙 위의 원칙들은 응.. 2021. 9. 27.
[Java] 자바가 확장한 객체 지향 (2) 본 글은 📚 스프링 입문을 위한 자바 객체지향의 원리와 이해 를 읽고 정리한 내용입니다. 이전 글 : [Java] 자바가 확장한 객체 지향 (1) [Java] 자바가 확장한 객체 지향 (1) 본 글은 📚 스프링 입문을 위한 자바 객체지향의 원리와 이해 를 읽고 정리한 내용입니다. 1. abstract 키워드 - 주상 메소드와 추상 클래스 추상메소드(Abstract Method)란 간단하게 설명하면 선언부는 yeoonjae.tistory.com 5. instanceof 연산자 인스턴스는 클래스를 통해 만들어진 객체이다. instanceof 연산자는 만들어진 객체가 특정 클래스의 인스턴스인지 물어보는 연산자이다. instatnceof 연산자의 결과는 boolean 형태이며 사용법은 아래와 같다. 객체_참조_.. 2021. 9. 27.
[Java] 자바가 확장한 객체 지향 (1) 본 글은 📚 스프링 입문을 위한 자바 객체지향의 원리와 이해 를 읽고 정리한 내용입니다. 1. abstract 키워드 - 주상 메소드와 추상 클래스 추상메소드(Abstract Method)란 간단하게 설명하면 선언부는 있는데 구현부가 없는 메소드를 말한다. 추상 메소드를 하나라도 갖고있는 클래스는 추상클래스로 정의되어야 하며 추상메소드 없이 추상 클래스를 선언할 순 있다. 몸체가 없이 선언만 하는 것이 의미가 있을까? 왜 필요할까? 아래의 코드를 보며 이해해보자. 더보기 이전에 추상클래스와 인터페이스를 정리한 글이 있으니 궁금하다면 아래의 링크로 이동하면 확인이 가능하다. 2021.08.21 - [Language/Java] - [Java]추상클래스와 인터페이스(차이,공통점) [Java]추상클래스와 인터페.. 2021. 9. 27.
[Java] 객체 지향의 4대 특성 (다형성:사용편의성) (작성중) 보호되어 있는 글 입니다. 2021. 9. 27.
[Java] 객체 지향의 4대 특성 (상속: 재사용 + 확장) (작성중) 보호되어 있는 글 입니다. 2021. 9. 27.
[Java] 객체 지향의 4대 특성 (추상화:모델링) (작성중) 보호되어 있는 글 입니다. 2021. 9. 27.
[Java] 객체 지향의 4대 특성 (캡슐화:정보 은닉) 본 글은 📚 스프링 입문을 위한 자바 객체지향의 원리와 이해 를 읽고 정리한 내용입니다. 캡슐화 : 정보 은닉 자바에서 정보 은닉(information hiding)이라고 하면 접근 제어자인 private, [default], protected, public이 생각날 것이다. 간단하게 접근 제어자에 대해 설명을 하고 넘어가자면 접근제어자는 private -> default -> protected -> public 순으로 보다 많은 접근을 허용한다. public : 누구나 접근할 수 있을 때 사용한다. protected : 같은 패키지 내에 있거나 상속을 받은 경우에만 접근할 수 있다. default : 접근 제어자를 별도로 설정하지 않는다면 default 또는 package-private이라고도 불린다... 2021. 9. 26.