매일 매일, 차곡 차곡 쌓기



완벽하지 않은 것을 두려워 말며,
완성도를 높히는데 집중하자.

전체 글 77

영속성 컨텍스트란?

영속성 컨텍스트란? 인스턴스에 존재하는 엔티티를 관리하고 영속화 시키는 논리적인 영역 영속성 컨텍스트에서 엔티티를 관리하고 필요에 따라 DB 데이터를 CRUD 할 수 있는데 이러한 작업을 담당하는 객체를 엔티티 매니저라고 함 엔티티 생명 주기 비영속(New) : 영속성 컨텍스트와 전혀 관계가 없는 상태 영속(Managed) : 영속성 컨텍스트에 저장되어 관리되고 있는 상태 준영속(Detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제(Removed) : 영속성 컨텍스트와 DB에서 삭제된 상태. 영속성 컨텍스트의 특징 영속성 컨텍스트는 식별자 값이 반드시 있어야한다. JPA는 보통 트랜잭션을 커밋하는 순간에 영속성 컨텍스트에서 새로 저장된 엔티티를 데이터 베이스에 저장하는데 이를 플러시라고..

Spring/JPA 2023.12.03

JAVA 예외

자바 예외 자바 예외는 크게 3가지로 나눌 수 있습니다. 체크 예외(Checked Exception) 에러(Error) 언체크 예외(Unchecked Exception) 에러(Error)란? 에러는 시스템에 비정상적인 상황이 발생했을 경우를 지칭합니다. 예를들어, 메모리 부족(OutofMemoryError)이나 스택오버플로우(StackOverflowError)와 같이 복구할 수 없는 것을 말합니다. 에러는 개발자가 예측하기도 쉽지 않고 처리할 수 있는 방법도 없음. 예외(Exception)란? 예외는 프로그램 실행 중에 개발자의 실수로 예기치 않은 상황이 발생했을 때 입니다. 예를 들면 (ArrayIndexOutOfBoundsException), (NullPointerException), (FileNot..

함수형 프로그래밍

함수형 프로그래밍(Functional Programming)의 등장 명령형 프로그래밍 : 프로그래밍의 상태와 상태를 변경시키는 구문의 관점에서의 연산을 설명 절차 지향 프로그래밍 : 수행되어야 할 연속적인 계산 과정을 포함(C, C++) 객체 지향 프로그래밍 : 객체들의 집합으로 프로그램의 상호작용을 표현(C++, Java, C#) 선언형 프로그래밍 : 어떻게(HOW) 할 것인가 보다는 무엇(WHAT)을 할 것인가를 표현 함수형 프로그래밍 : 순수 함수를 조합하고 프로그램을 만드는 방식(Clojure, Haskell, Elixir) 명령형 프로그래밍을 기반으로 개발했던 개발자들은 개발하는 소프트웨어의 크기가 커짐에 따라, 복잡하게 엉켜있는 스파게티 코드를 유지보수하는 것이 매우 힘들다는 것을 깨닫게 되었..

JPQL 이란?

JPQL이란? JPQL(Java Persistence Query Language)은 JPA(Java Persistence API)에서 사용되는 객체 지향적인 쿼리 언어 JPQL은 엔티티 객체를 대상으로 쿼리를 작성하고 실행할 수 있으며, SQL과 유사하지만 데이터베이스 특정 기능에 의존하지 않는다는 특징이 있음. JPQL 특징 객체 지향 쿼리 언어: JPQL은 엔티티 객체를 대상으로 쿼리를 작성. 따라서 데이터베이스의 테이블이 아닌 엔티티 클래스와 그 안에 정의된 필드와 관계를 사용하여 쿼리를 작성. 포괄적인 쿼리 기능: JPQL은 다양한 쿼리 기능을 제공. 예를 들어, SELECT, INSERT, UPDATE, DELETE와 같은 다양한 유형의 쿼리를 작성할 수 있음. 엔티티와 필드 사용: JPQL은 ..

Spring/JPA 2023.12.02

JPA 란?

JPA는? Java Persistence API 로 자바 진영의 ORM 기술 표준입니다. 애플리케이션과 JDBC 사이에서 동작 ORM이란? (Object-Realtion Mapping) 객체와 관계형 DB를 매핑한다는 뜻으로, 객체와 데이터베이스간 패러다임 불일치 문제 해결하기 위해 만들어진 기술 표준이를 통해 객체는 객체대로 모델링, 데이터베이스는 관계형 데이버베이스 모델링이 가능하이버네이트 ORM 프레임워크를 기반으로 새로운 자바 ORM 표준이 만들어졌는데 이것이 JPA JPA 이전 기존 자바 애플리케이션은 JDBC API를 이용하여 SQL을 직접 전달했음. 이렇게 되면 SQL 에 의존적인 코드를 만들어 유지보수가 불편함. 또한 JDBC API를 사용하기 위해 보일러 플레이팅 코드가 반복적으로 사용되..

Spring/JPA 2023.12.02

Spring Framework 란?

Spring Framework 란? Spring Framework은 자바 애플리케이션을 개발하기 위한 오픈소스 애플리케이션 프레임워크 Spring Framework 의 주요 특징 POJO(Plain Old Java Object) 특정 기술이나 환경에 종속되지 않는 순수 자바 스펙으로 이루어진 자바 객체를 사용 자바객체는 객체 지향 설계원칙에 따라 만들어지며, 이를 통해 유연하고 확장 가능한 애플리케이션을 개발 IoC/DI(Inversion of Control / Dependency Injection) IoC 는 제어 역전으로, 개발자가 객체의 생명주기 관리를 직접하지 않고 스프링 컨테이너가 담당하는것 DI 는 객체가 필요로 하는 의존성을 외부에서 주입받아 사용하는것 IoC/DI를 통해 객체 간의 결합도..

객체 지향 프로그래밍

객체 지향 프로그래밍이란? 현실 세계의 사물을 갤체라고 했을 때, 그 객체로 부터 애플리케이션 개발에 필요한 특징들을 추출하여 프로그래밍하는 것입니다. 이를 통해 재사용성이 좋고 유지보수가 용이한 프로그램을 만들 수 있습니다. 객체지향의 특징 1. 추상화 추상화는 사물의 공통적인 속성과 기능을 추출하여 추상 클래스로 정의하는 개념입니다. 실제적인 구현은 구현체에 맡기면서 상속된 클래스는 일관된 기능을 가지고, 확장과 유지보수가 용이한 객체를 만들 수 있습니다. 2. 상속 상속은 상위 클래스를 기반으로 새로운 하위 클래스를 만드는 개념입니다. 상속을 통해 클래스간 계층 구조를 형성하고, 상위 클래스의 메서드를 사용할 수 있기 때문에 코드 재사용성이 높아집니다. 하위 클래스는 상위 클래스의 메서드를 구현하..