본문 바로가기

Spring16

Spring - Filter / Interceptor 필터와 인터셉터 이 둘은 모두 웹과 관련된 공통 관심사를 처리할 때 사용한다. 그렇다면 이 둘은 뭐가 다른 것일까? 이번 포스트에서는 필터와 인터셉터에 대해 알아보겠다. Filter 필터는 J2EE 표준 스펙 기능으로 정확한 이름은 서블릿 필터이다. Dispatcher Servlet에 요청이 전달되기 전후에 URL패턴에 맞는 모든 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 따라서 스프링 컨테이너가 아닌 WAS같은 웹 컨테이너에 의해 관리된다. 필터는 체인으로 구성되며 중간에 필터를 자유롭게 추가 및 제거할 수 있다. 예를 들면 로그를 남기는 필터를 먼저 적용한 후 로그인 여부를 체크하는 필터를 이후에 추가할 수 있다. 필터는 적절하지 않은 요청이 들어올 경우 HTTP요청이 서블릿까지 도달하.. 2022. 11. 23.
Spring - MyBatis MyBatis 지난 포스트에서 데이터베이스에 접근하는 방법으로 복잡하고 반복되는 알고리즘을 대신 처리해주는 API, JdbcTemplate에 대해 다룬 적 있습니다. 오늘은 JdbcTemplate보다 더 편하게 데이터를 매핑하고 액세스할 수 있는 MyBatis에 대해 알아보도록 하겠습니다. MyBatis는 SQL 기반 웹 애플리케이션을 개발할 때 많이 사용되는 SQL Mapper / ORM 프레임워크이며 스프링과는 상관없는 독립적인 프레임워크입니다. ORM 이란 Object Relational Mapping의 약어로 자바 객체 필드와 관계형데이터베이스(RDB) 데이터를 자동으로 매핑해주는 것을 말합니다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용하기 때문에 객체 모델과 .. 2022. 11. 21.
Spring - Transaction Manager 스프링에서는 @Transaction 어노테이션을 이용한 트랜잭션 처리를 지원합니다. 이번 포스트에서는 트랜잭션이란 무엇이고 스프링에서 트랜잭션 처리를 어떻게 하는지에 대해 살펴보겠습니다. 트랜잭션이란? 트랜잭션은 DB 상태를 변화시키기 위해 수행하는 작업의 논리적인 단위를 말합니다. 여기서 DB 상태를 변화시킬 수 있는 행동이란 SELECT, UPDATE, INSERT, DELETE, CREATE, DROP 같은 행위를 말합니다. 여기서 SELECT는 데이터베이스 상태를 변화시키진 않지만 트랜잭션으로 관리하면 좋습니다. 왜냐하면 SELECT를 수행하는 동안 해당 테이블을 업데이트할 수 없도록 하고, 보통 SELECT를 한 결과를 UPDATE,INSERT,DELETE의 매개변수로 이용할 수 있기 때문입니다.. 2022. 11. 21.
Spring - JdbcTemplate JdbcTemplate 데이터베이스에서 모든 고객 정보를 반환하는 메소드 코드입니다. @Override public List selectAll() { List memberList = new LinkedList(); try { conn = JDBCMgr.getConnection(); // DB 커넥션 객체 생성 stmt = conn.prepareStatement(MEMBER_SELECT_ALL); // 쿼리문 저장 및 컴파일 rs = stmt.executeQuery(); while (rs.next()) { String uId = rs.getString("uId"); String uPw = rs.getString("uPw"); String uEmail = rs.getString("uEmail"); membe.. 2022. 11. 21.