날짜 값 변환 사용자가 설정한 기간 사이에 회원가입을 한 멤버들을 확인하는 요청을 하고 싶은 경우가 있습니다. 이를 위해 MemberDao 클래스에 다음과 같은 메서드를 추가할 수 있습니다. private RowMapper memRowMapper = new RowMapper() { @Override public Member mapRow(ResultSet rs, int rowNum) throws SQLException { Member member = new Member(rs.getString("EMAIL"), rs.getString("PASSWORD"), rs.getString("NAME"), rs.getTimestamp("REGDATE").toLocalDateTime()); member.setId(rs...
Session 웹 프로그래밍은 여러 웹서버 프로그램들이 모여 이루어지는 것이라고 볼 수 있습니다. 클라이언트에서 특정한 요청을 하면 웹서버는 알맞는 프로그램을 찾아 실행한 후 종료하게 됩니다. 이 때 실행되는 프로그램은 실행이 완료된 후 메모리에서 제거됩니다. 이 때문에 다음 요청에서 이전에 실행한 결과를 담은 값들에 대해 접근을 할 수가 없습니다. 이 문제를 해결하기 위해 전역변수와 같이 저장공간을 두어야합니다. 이러한 저장공간은 크게 HttpSession과 Cookie로 나눌 수 있습니다. 우선 알아볼 것은 Session을 활용하여 로그인 상태를 유지하는 방법에 대해 알아보겠습니다. 우선적으로 세션에 저장할 객체를 정의해야합니다. package spring; public class AuthInfo {..
Validator 클라이언트가 작성한 폼 객체를 검사하지 않으면 데이터베이스에 잘못된 데이터가 들어가 오류를 일으킬 수 있습니다. 또한 확인을 통해 잘못된 값이 들어왔다는 것을 확인하더라도 클라이언트가 에러 메시지를 받지 못하면 어떠한 이유에서 가입을 실패했는지 알 수 없어 서비스를 제대로 이용할 수 없게 됩니다. 스프링은 이를 해결하기 위해 다음의 두 인터페이스를 제공합니다. org.springframework.validation.Validator org.springframework.validation.Errors Validator은 아래와 같은 인터페이스를 사용합니다. public interface Validator{ boolean supports(Class clazz); void validate(O..
요청 매핑 웹 개발은 크게 클라이언트 요청 URL을 처리할 코드를 작성하거나 처리 결과를 페이지에 출력해줄 코드를 작성하는 것입니다. 첫 번째는 dispatcherServlet이 요청받은 URL을 처리해줄 Controller을 작성하는 것입니다. 컨트롤러 클래스는 요청 매핑 어노테이션을 이용해서 메서드가 처리할 경로를 지정할 수 있습니다. package controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.spri..
Transaction 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용하는 것이 트랜잭션입니다. 한 트랜잭션에 묶인 쿼리들 중 한개라도 실패하면 이전상태로 돌아가는 rollback을 수행하고 모든 쿼리들이 성공하면 해당 상태를 업데이트하는 commit을 수행합니다. @Transactional 트랜잭션 처리를 편리하게 하기 위해 @Transactional 어노테이션을 사용합니다. 트랜잭션 범위에서 실행하고 싶은 메서드에 어노테이션을 붙이면 됩니다. package spring; import org.springframework.transaction.annotation.Transactional; public class ChangePasswordService { private MemberDao memberD..
web.xml 웹 요청이 발생하면 우선적으로 톰캣이 해당 요청을 받게 됩니다. web.xml은 톰캣의 환경설정에 해당하는 파일입니다. 들어가야할 내용은 Servlet에 대한 설정들입니다. dispatcher org.springframework.web.servlet.DispatcherServlet contextClass org.springframework.web.context.support.AnnotationConfigWebApplicationContext contextConfigLocation config.MvcConfig config.ControllerConfig 1 dispatcher / encodingFilter org.springframework.web.filter.CharacterEncoding..
프록시 생성방식 스프링은 프록시를 생성할 때, 실제 생성할 빈 객체가 인터페이스를 상속하면 프록시 타입 또한 해당 인터페이스를 상속해서 만들어지게 됩니다. 즉 다음과 같은 코드는 오류가 발생합니다. //in Configuration code.. @Bean public Calculator calculator() { return new REcCalculator(); } package main; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import chap07.Calculator; import chap07.REcCalculator; import config.AppCtx; public class MainAs..
AOP Aspect Oriented Programming의 약자입니다. aspect는 부가기능을 의미합니다. 즉 여러객체에 공통으로 적용할 수 있는 기능을 분리해서 재사용성을 높여주는 프로그래밍 기법입니다. 스프링은 이를 proxy객체를 사용함으로써 aop를 실현합니다. AOP 주요 용어들 Target 부가기능을 부여할 대상 객체를 의미합니다. 스프링에서는 주로 Service 객체들이 이에 해당합니다. Advice 실질적인 부가기능을 담은 구현체를 의미합니다. Aspect가 언제 무엇을 할지를 결정합니다. '언제'에 따라 advice는 5가지 종류로 나눌 수 있습니다. JoinPoint 프로그램의 실행중 Advice가 삽입될 수 있는 모든 위치들을 의미합니다. 메서드 호출, 예외 호출 등이 이에 해당하며..
- Total
- Today
- Yesterday
- Oracle
- Suffix Array
- dijkstra
- string
- dfs
- spring
- 트라이
- 동적계획법
- 세그먼트트리
- Segment tree
- hld
- sweeping
- 스위핑
- 2-SAT
- 정렬
- 이분매칭
- sorting
- greedy
- DP
- kmp
- union find
- 이분탐색
- 펜윅트리
- 좌표압축
- SCC
- Fenwick
- bfs
- implementation
- knapsack
- spring boot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |