본문 바로가기

전체 글93

Spring의 Transaction Spring의 Transaction Spring은 코드 기반의 트랜잭션처리(Programmatic Transaction) 뿐만 아니라 선언적 트랜잭션(Declarative Transaction)을 지원 Spring이 제공하는 트랜잭션 템플릿 클래스를 이용하거나 설정파일, 어노테이션을 이용하여 트랜잭션의 범위 및 규칙을 정의할 수 있음 Spring에서는 주로 선언적 트랜잭션을 이용하는데, tx:advice태그 또는 @Transactional 어노테이션을 이용 Transaction(트랜잭션) 핵심 기술 트랜잭션 동기화 : 트랜잭션을 시작하기 위한 Connection 객체를 틀별한 저장소에 보관해두고, 필요할 때 꺼내쓸 수 있도록 하는 기술 트랜잭션 동기화 저장소는 작업쓰레드마다 Connection 객체를 독.. 2021. 9. 23.
Spring? Spring Boot? Spring MVC? Spring Spring은 Spring Framework, Spring Boot, Spring data 등 여러 프로젝트들의 모음이다 Spring Framework을 이용하면 웹개발 뿐만 아니라 클라우드 등 다양한 프로젝트 개발 가능하다. Spring의 핵심요소는 앱 수준의 인프라 지원이다. 앱 수준의 비즈니스 로직에 집중할 수 있게 하는 다양한 방법을 제공 JDBC, JSP 및 Java Servlet과 같은 기존 Java 프레임워크 및 API에 비해 웹 애플리케이션 개발이 훨씬 쉬워짐 DI와 IoC를 통해 객체간의 결합도를 느슨하게 만들어주어 코드의 재사용성을 높이고, 단위테스트를 용이하게 해줌 AOP (Aspect-Oriented Programming), POJO (Plain Old Java Obje.. 2021. 9. 23.
RDBMS의 트랜잭션과 병행제어 RDBMS의 트랜잭션 DBMS는 데이터베이스가 항상 정확하고 일관된 상태를 유지하도록 트랜잭션 단위로 일을 수행한다. 이를 통해 데이터베이스의 회복과 병행제어(동시성 제어)가 가능해져 일관성을 유지한다. 트랜잭션 하나의 작업을 수행하는데 필요한 데이터베이스의 연산들을 모아놓은 것으로, 데이터베이스의 논리적인 작업단위이다. 업무 처리에 필요한 세부 프로그램 단위 데이터베이스에 대한 연산(조회, 삽입, 삭제, 수정) SQL문들로 구성 데이터베이스에 장애 발생 시 데이터를 복구하는 작업 단위이다. 데이터베이스는 무결성, 일관성을 보장하기 위해 작업 수행에 필요한 연산들을 하나의 트랜잭션으로 정의, 관리한다. ex. 계좌이체 트랜잭션 성호 계좌에서 5000원을 인출 은영 계좌에서 5000원을 입금 → 계좌이체 .. 2021. 9. 23.
[JAVA 에러] java.lang.IllegalStateException: Ambiguous mapping found. 문제상황 IllegalStateException 에러가 발생했다는 뜻 ... java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'performanceController' method ~~~해결방법 알고보니, Controller의 @RequestMapping 의 값이 중복되어 나타나는 에러라고 한다! [에러가 발생할 수 있는 상황] 1. mapper id가 다를경우 - mapper파일(MyBatis의 쿼리문을 등록한 XML파일)에 2021. 9. 23.
Spring Boot 로그 설정 (Logback) Logging이 필요한 이유 운영중인 앱에서 문제가 발생했을 때 문제의 원인을 파악하기 위해선 정보가 필요. 이를 위해 Exception이 발생했거나 중요 기능이 실행되는 부분에 적절한 로그를 남겨 이후에 확인 가능하도록 해야 함 이런 로그를 생성해주는게 Logging Logging 이란? 정보를 제공하는 일련의 기록인 로그(Log)를 생성하도록 시스템을 작성하는 활동 로그를 출력할 때 System.out.println()를 이용하면 가장 쉽게 출력할 수 있긴 하지만, 양이나 수준(Level)을 조절할 수 없고, 파일에 저장하기 불편한 단점이 존재. 성능면에서도 좋지 않음. 자주 사용 시 앱의 속도가 느려짐! 그래서 실제 로깅 시 따로 라이브러리를 이용하는데 다양함! Logback 이란? Java에서 L.. 2021. 9. 23.
java.util.Optional T 클래스 Optional 객체의 생성 of() 메소드나 ofNullable() 메소드를 사용하여 Optional 객체를 생성 of() : null이 아닌 명시된 값을 가지는 Optional 객체를 반환 null이 저장될 경우, NullPointException 발생 ofNullable() : 명시된 값이 null이 아니면 명시된 값을 가지는 Optional 객체를 반환하며, 명시된 값이 null이면 비어있는 Optional 객체를 반환 null 값이 발생된 가능성이 있을 경우 사용 Optional opt = Optional.ofNullable("자바 Optional 객체"); System.out.println(opt.get()); empty() : Optional 객체를 null로 초기화 Optional 객체에 .. 2021. 9. 23.