@Transactional과 AOP 트랜잭션의 차이점

@Transactional 특별한 설정 없이 쉽게 사용 가능 원하는 곳에만 트랜잭션을 설정해 성능에 대한 영향을 최소화 할 수 있다. Annotation이 누락되거나 여러 메소드에 걸쳐 사용될 경우 트랜잭션이 누락될 수 있다. 외부 라이브러리에 대해서는 사용이 불가능하다. AOP 트랜잭션 공통으로 트랜잭션이 적용되기 때문에 트랜잭션이 누락될 일이 없다. 외부 라이브러리에 적용 가능하다. 트랜잭션이 필요없는 곳까지 적용된다. → 필터를 잘 …
@Transactional과 AOP 트랜잭션의 차이점 더보기

Spring Web; MVC

MVC패턴 Model : 어플리케이션의 정보, 데이터를 의미한다. View : 사용자 인터페이스, 사용자가 보고 사용하는 화면을 의미한다. Controller : 모델과 뷰의 중계 역할. 사용자의 요청을 파악하고 그에 맞는 결과를 응답한다. 스프링 웹 MVC의 구조 요청당 컨트롤러에 매핑되는 서블릿이 각각 존재했다. 중복코드를 방지하고 일관된 관리를 위해 프론트 컨트롤러가 생겼다. Front controller : 프론트 컨트롤러는 컨트롤러 앞에 존재하는 …
Spring Web; MVC 더보기

스프링 부트; 훑어보기#5 – Spring Data JPA

스프링 데이터 JPA 구현체 없이 인터페이스만으로 리포지토리에 커밋이 가능한 코드를 만들 수 있다. 반복적으로 개발한 CRUD 기능도 스프링 데이터 JPA가 모두 제공한다. RDB에서 스프링 데이터 JPA는 아주 좋은 기능이다. 스프링 데이터 JPA 인터페이스 이외의 인터페이스 선언이나 구현체는 필요없다. 인터페이스 이름에 규칙이 있다. (JPQL) 예를들어 findByNameAndId 라고 하면 & 연산자를 넣을 수 있다. 간단한 요구사항은 인터페이스 …
스프링 부트; 훑어보기#5 – Spring Data JPA 더보기

스프링 부트; 훑어보기#4 – JPA

JPA (Java Persistent API) JPA → 인터페이스 (자바 표준) hibernate → 구현체 (여러 벤더들이 있음) 쿼리도 JPA가 직접 만들어서 실행해준다. 객체를 메모리에 넣듯 DB에 넣을 수 있게 해준다. SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환할 수 있다. build.gradle application.properties spring.jpa.show-sql: JPA가 날리는 쿼리를 볼 수 있다. spring.jpa.hibernate.ddl-auto: 테이블을 자동으로 만들어주는 기능이다. (none/create) ORM; …
스프링 부트; 훑어보기#4 – JPA 더보기

스프링 부트; 훑어보기#3 – JDBCTemplate

Spring 데이터 억세스 H2 데이터베이스 순수 JDBC 스프링 JdbcTemplate : JDBC 중복을 제거해서 만든 템플릿 JPA : 객체를 쿼리 없이 DB에 저장하는 방법 스프링 데이터 JPA : JPA를 간단하게 쓰기 위한 스프링의 Wrapping H2 데이터베이스 official site bin/h2.sh 실행 JDBC URL : jdbc:h2:tcp://localhost/~/h2/test 파일로 직접 접근하지 말고 TCP로 접속. build.gradle 추가 JDBC 간단한 정리 Connection …
스프링 부트; 훑어보기#3 – JDBCTemplate 더보기

스프링 부트; 훑어보기#2 – GetMapping, PostMapping

@GetMapping, @PostMapping 사용법 URI를 매핑하고 템플릿으로 반환한다. (String) 접근을 변수에 바로 하더라도 getter로 접근하여 (propperties방식) 반환받는다. @GetMapping 우선순위 Controller를 먼저 찾고 없으면 static 파일을 찾는다.