본문 바로가기

Back-End10

[SpringDB]트랜잭션 관리 선언적 트랜잰션 관리 Declarative Transaction Management @Transactional 애노테이션 하나만 선언해서 매우 편리하게 트랙잰션을 적용하는 것을 선언적 트랜잭션 관리라 한다. 애노테이션 이전에는 XML에 설정하여 트랜잭션 처리했다. 프로그래밍 방식 트랜잭션 관리 트랜잭션 매니저 또는 트랜잭션 템플릿 등을 사용해서 트랜잭션 관련 코드를 직접 작성하는 것을 프로그래밍 방식의 트랜잭션 관리라 한다. 정리 선언적 방식이 훨씬 간편하고 실용적이기 때문에 대부분 선억적 트랜잭션을 사용한다. 프로그래밍 방식은 스프링 AOP 기술없이 사용이 가능하지 대부분 실무에서는 스프링 컨테이너와 스프링 AOP를 사용하기 때문에 거의 사용되지 않는다. 프로그래밍 방식은 테스트에서 가끔 사용된다. 2022. 5. 20.
[EffectiveJava]생성자 대신 정적 팩터리 메서드를 고민하라. 생성자란? 정적 팩터리 메서드란? 생성자 대신 정적팩터리 메서드를 사용시 이점 이름을 가질수 있다. 호출될 때마다 인스턴스를 새로 생성하지 않아도 된다. 반환 타입의 하위 타입 객체를 반활할 수 있는 능력이 있다. 입력 매개변수에 따라 매번 다른 클래스의 객체를 반환할 수 있다. 정적 팩터리 매서드를 작성하는 시점에는 반환할 객체의 클래스가 존재하지 않아도 된다. 정적 팩토리 메서드 네이밍 컨벤션 from : 하나의 매개 변수를 받아서 객체를 생성 of : 여러개의 매개 변수를 받아서 객체를 생성 getInstance | instance : 인스턴스를 생성. 이전에 반환했던 것과 같을 수 있음. newInstance | create : 새로운 인스턴스를 생성 get[OtherType] : 다른 타입의 인.. 2022. 5. 4.
[JAVA]오버로딩 자바에서는 클래스내에 같은 이름의 메소드라도 매개변수의 타입, 순서, 개수가 다른 형태의 메소드를 허용한다. 이를 오버로딩이라고 한다. 위에 처럼 설명한다면 이해하기는 어려울 것이다. 우리는 차를 가지고 주유소에 방문하여 주유한다고 가정하자. 주유소는 주유를 해주면서 돈을 받아야한다. 이때 우리가 현금결재를 CashRefuel, 신용카드를 CreditRefuel이라 할수 있다. class Car{ private int energy; private void cashRefuel(int cash){ //금액에 따른 주유량을 구하는 로직이 들어갈수 있다. energy++; } private void creditRefuel(int cash){ //금액에 따른 주유량을 구하는 로직이 들어갈수 있다. energy++.. 2022. 5. 4.
[JAVA]데이터 타입 데이터 타입 기본 타입 정수, 실수, 문자, 논리 리터널을 저장하는 타입 정수타입 byte, char, short, int, long 실수타입 float,double 논리타입 boolean 참조타입 객체의 주소를 참조하는 타입으로 배열, 열거, 클래스, 인터페이스 타입을 말한다. 배열타입 열거타입 클래스 인터페이스 기본 타입은 실제 값을 가지고 있고 참조타입은 메모리의 저장된 실제값의 주소값을 가진다. 기본타입의 비교는 실제 값이 같은지를 판단하지만 참조타입은 동일한 객체(객체의 주소값)를 참조하는지 비교한다. 2022. 4. 25.