목록Spring (19)
JAVA를 잡아라!...

[ Spring MVC구조 ] ⭐ 웹의 흐름 : 요청 → 응답 (1cycle) 사용자(브라우저, Client)가 요청을 보냄 DispatcherServlet(FrontController)에서 요청을 확인 서블릿 컨테이너가 사용자 요청을 받고, web.xml 파일이나 어노테이션을 통해 DispatcherServlet에게 어떤 URL 패턴의 요청을 전달할지 설정 이후 DispatcherServlet은 해당 URL 패턴에 맞는 컨트롤러로 요청을 전달 사용자의 모든 URL요청(xxx.do)을 받아들이고, 요청을 적절한 Controller에 전달 web.xml 파일에서 설정 HandlerMapping에서 해당 요청에 대해 어떤 Controller가 처리할지 확인 팩토리 패턴을 활용해 요청(String)을 받으면 ..

[ Spring MVC구조 ] ⭐ 웹의 흐름 : 요청 → 응답 (1cycle) 사용자(브라우저, Client)가 요청을 보냄 DispatcherServlet(FrontController)에서 요청을 확인 서블릿 컨테이너가 사용자 요청을 받고, web.xml 파일이나 어노테이션을 통해 DispatcherServlet에게 어떤 URL 패턴의 요청을 전달할지 설정 이후 DispatcherServlet은 해당 URL 패턴에 맞는 컨트롤러로 요청을 전달 사용자의 모든 URL요청(xxx.do)을 받아들이고, 요청을 적절한 Controller에 전달 web.xml 파일에서 설정 HandlerMapping에서 해당 요청에 대해 어떤 Controller가 처리할지 확인 팩토리 패턴을 활용해 요청(String)을 받으면 ..

[ 트랜잭션(Transaction) ] #1 개념 쪼갤 수 없는 업무 처리의 최소 단위 여러 개의 SQL 쿼리가 하나의 트랜잭션으로 묶여서 처리 하나의 트랜잭션은 커밋되거나 롤백됨 커밋(commit) : 트랜잭션 내에서 모든 작업이 정상으로 완료되고 DB에 영구적으로 적용하는 것 롤백(rollback) : 트랜잭션 중 오류가 발생하면 모든 작업을 취소하고 DB를 이전 상태로 되돌리는 것 #2 ACID : 데이터베이스의 트랜잭션이 안전하게 수행되기 위한 4가지 조건 조건 내용 원자성(Atomicity) 하나의 트랜잭션이 더 이상 작게 쪼갤 수 없는 최소한의 업무 단위 일관성(consistency) 트랜잭션이 완료된 결괏값이 일관적인 DB 상태를 유지 고립성(Isolation) 동시에 실행되는 여러 트랜잭션..

[ Spring MVC구조 ] ⭐ 웹의 흐름 : 요청 → 응답 (1cycle) 사용자(브라우저, Client)가 요청을 보냄 DispatcherServlet(FrontController)에서 요청을 확인 서블릿 컨테이너가 사용자 요청을 받고, web.xml 파일이나 어노테이션을 통해 DispatcherServlet에게 어떤 URL 패턴의 요청을 전달할지 설정 이후 DispatcherServlet은 해당 URL 패턴에 맞는 컨트롤러로 요청을 전달 사용자의 모든 URL요청(xxx.do)을 받아들이고, 요청을 적절한 Controller에 전달 web.xml 파일에서 설정 HandlerMapping에서 해당 요청에 대해 어떤 Controller가 처리할지 확인 팩토리 패턴을 활용해 요청(String)을 받으면 ..

[ JdbcTemplate을 활용한 DAO version upgrade ] 기존 DAO에 템플릿 패턴을 활용한 클래스를 구현해서 코드 가독성 증가 JdbcTemplate : 템플릿 패턴을 활용한 클래스 반복되는 JDBC의 로직(DB연결 → SQL 생성 → 실행 → 결과 → DB연결해제)을 캡슐화한 클래스 템플릿 패턴 : 반복적인 로직, 복잡한(어려운) 로직을 캡슐화한 클래스 ex) 반복되는 JDBC의 로직(DB연결 → SQL 생성 → 실행 → 결과 → DB연결해제) ① JdbcTemplate으로 CRUD 수행 (+ RowMapper 클래스 작성) [ SELECTALL ] jdbcTemplate으로 selectAll executeQuery() → selectAll의 output은 List → jdbcTem..

#1 스프링 컨테이너의 장점 1. IoC 로 의존주입을 통한 낮은 결합도 보장 2. AOP 를 지원해서 높은 응집도 보장 #1-1 IoC new를 컨테이너가 대신 해줌 서블릿(FrontController)을 new == 서블릿 컨테이너(톰캣, 웹 서버) POJO(DAO, Action,...)를 new == 스프링 컨테이너 컨테이너 > .xml(설정파일) DI(의존주입)을 통한 낮은 결합도 보장 #1-2 AOP 어떤 비즈니스로직이어도 항상 등장하는 로직이 있음 하나의 컨트롤러(액션, 서비스)에서 C,R,U,D → 한번에 처리를 했지만 다른 파트에서도 수행하는 로직이 있다면 그것을 공통 로직이라고 인지를해서 분리해서 관리 C : 인증로깅C트랜잭션예외처리 R : 인증로깅R U : 인증로깅 (보안)U트랜잭션예외..