Spring/용어5 @Transaction의 개념 @Transaction Transaction 기본 방법 Transaction은 2개 이상의 쿼리를 하나의 커녁센으로 묶어 DB에 전송하고, 이 과정에서 에러가 발생할 경우 자동으로 모든 과정을 원래대로 되돌려 놓는다. @Transactional 성질 - ACID 1. 원자성 (Atomicity) 트랜잭션과 관련된 작업들이 부분적으로 샐행되다가 중단되지 않는 것을 보장하는 능력이다. 즉 모두 성공이거나 모두 실패를 만든다. 예를 들어 돈 거래를 할때 이체를 할 때 성공하거나 실패할 수 있지만 돈을 빼는 이체 작업만 성공하고 받는 쪽에서 돈 입금이 실패 되면 안되기 때문에 이를 막기 위한 역할을 한다. 2. 일관성 (Consistency) 언제나 일관성 있는 데이터베이스 상태로 유지한다. 3. 격리성(Iso.. 2022. 6. 7. @Bean vs @Component 빈을 사용할 수 있도록 해주는 어노테이션 @Bean와 @Component의 차이는 @Bean, @Component는 빈을 스캐닝을 하기 위해 사용되는데 정확히 언제 사용되는지 정의를 알아보자 @Bean 개발자가 직접 제어가 불가능한 외부 라이브러리를 사용할 때 사용한다. @Congfiguration을 선언한 클래스 내부에서 사용해준다. 메소드를 통해 반환되는 객체를 Bean을 만든다. @Component 개발자가 직접 작성한 Class를 Bean으로 등록할 수 있게 만들어 준다. 개발자가 직접 생성한 Class에 @Bean을 사용하지 못하는 이유 각 어노테이션에 선언할 수 있는 타입이 정해져 있어 해당 용도 외에 사용하는 것은 불가능하다. @Bean @Component ※ElementType 참고 2022. 6. 1. JAP Entity 클래스에서 id를 Long 타입으로 해야하는 이유와 Wrapper 클래스 Entity 클래스의 id 컬럼 변수 타입을 보면 Long으로 지정하는 경우를 볼 수 있다. 왜 int, long이 아닌 Long 타입으로 사용했을까? 기본타입(primitive type) 기본 값은 0인데 만약 id에 입력 값이 없을 때 0인지, 아니면 null 값인지 구분하기 어려워 null 값을 정확하게 처리하기위해 Wrapper 클래스인 Long, Integer 등을 쓴다. 래퍼 클래스(Wrapper class) 자바의 자료형은 기본타입(primitive type)과 참조 타입(reference type)으로 나눠진다. 기본 타입은 정수, 실수, 문자, 논리 리터럴을 저장하는 타입이고 참조타입은 배열, 열거, 클래스, 인터페이스 등 객체의 위치를 참조하는 타입니다. 래퍼클래스란 8개의 기본 타입에.. 2022. 5. 24. JPA의 개념 JAP(Java Persistence API)란 무엇일까? JAP는 Java ORM 표준 스팩이다. 여기서 ORM은 Object-Relational Mapping을 의미하는데 객체와 관계형 데이터베이스를 매핑한다는 뜻이며, 기술적으로는 객체와 데이터베이스를 매핑해 각자의 역할에 맞게 설계를 가능하도록해 패러다임의 불일치한 부분을 개발자 대신 해결해준다. JAP란 Java 진영의 ORM 기술 표준으로 사용 자바 어플리케이션에서 관계형 데이터 베이스를 사용하는 방식을 정의한 인터페이스 모든 SQL를 개발자 대신해서 JPA가 자동으로 해결 JAP 사용하는 이유 ☞ 생산성 데이터베이슬르 SQL 쿼리문을 작성하고 그것을 JDBC API를 사용하는 지루하고 반복적인 일을 JPA가 해결해준다. 즉, 지루하고 반복적인.. 2022. 5. 22. Java 객체지향 Java 객체지향 정리 클래스, 인스턴스, 메소드 개념 생성자, 상속 개념 접근제어자, 추상클래스, 인터페이스 개념 클래스 - 표현하고자 하는 대상의 공통 속성을 정의해 놓은 것, 클래스 내부 정보를 맴버 변수라고 한다. 인스턴스 - 어떠한 클래스로 부터 만들어진 객체를 그 클래스의 인스턴스 메소드 - 어떠한 작업을 수행하는 코드를 하나로 묵어 놓은 것 생성자 - 인스턴스 초기화 메소드, 모든 메소드에 반드시 하나 이상의 생성자가 존재해야만 한다. 상속 - 부모, 자식 클래스를 생성해 클래스간의 계층구조를 만든다. 접근제어자 - 맴버 변수/함수 혹은 클래스에 사용되며 외부에서의 접근을 제한하는 역할 private - 같은 클래스 내에서만 접근 가능, default(nothing) - 같은 패키지 내에서만.. 2022. 5. 15. 이전 1 다음