@Value 어노테이션 @Value 어노테이션은 스프링 빈에 있는 필드에 특정 값들을 주입하는데 도움을 주는 어노테이션이다. @Value 어노테이션이 정상적으로 동작하기 위해서는 해당 클래스가 스프링빈으로 반드시 등록이 되어있어야 한다. 1. @Value("...") 사용 @Controller public class HomeController { @Value("myName") private String myStr; } @Value가 붙은 곳에 "..."이라는 값을 바로 주입시켜준다. 위의 코드에서는 myStr = "myName"이 된다. 2. @Value("${...}") // application.properties file.dir=c:/abc/file/ // Controller @Controller ..
이 글은 인프런 김영한님의 강의를 복습하며 정리한 글입니다. 스프링 타입 컨버터와 포멧터 기본적으로 웹 서버에서 클라이언트로 전달되는 모든 값들을 String 타입이다. 그렇기 때문에 String 타입이 서버로 들어와서 적절하게 사용이 되기 위해서는 적절한 형태의 타입변경이 필요하다. 또한 View Template에 표시될 때도 모든 값은 String이다. 이 때도 적절한 형태의 타입 변경이 필요하다. 서버와 웹이 통신을 할 때는 적절하게 타입이 변경되어야 한다는 이야기다. 스프링은 내부적으로 "Type Converter"나 "Formatter" 같은 것들을 이용해서 개발자의 개발 편의를 돕고 있다. Paramter가 Binding되거나 Paramter가 View Templated에 랜더링 되는 시점에 ..
이 포스팅은 인프런의 김영한님의 강의를 복습하며 정리한 내용입니다. HTTP API 예외 처리 앞선 포스팅에서 요청 파라미터에 대한 예외처리를 하는 방법(Spring MVC : Error 관련)을 살펴봤다. 요청 파라미터를 예외처리하는 방법은 간단했다. 왜냐하면 Spring MVC가 제공하는 BasicErrorController에서 어떤 ErrorPage를 사용할지 정해져있기 때문에 개발자들은 사용할 에러 페이지만 만들어서 등록하면 됐다. 즉, 페이지 단위로 처리하기 때문에 고려할 내용들이 많지 않았다. 하지만 HTTP API 예외처리는 요청 파라미터 처리와는 다르다. API는 각 오류 상황에 맞는 API 스펙을 설정하고, 그에 대한 JSON 스펙을 내려주어야 하기 때문이다. 혹자는 요청 파라미터처럼 H..
이 포스팅은 인프런 영한님의 강의를 듣고 정리한 내용입니다. 로그인 처리의 필요성 지금까지 만들어온 웹 페이지에 로그인 처리기능을 추가하고자 한다. 회원인 사람들만 내가 만든 웹 페이지에서 어떠한 수정 작업을 할 수 있어야 하기 때문이다. 이런 기능을 위해서 아래 화면이 추가되고자 한다. 로그인이 되지 않은 사람은 가장 왼쪽의 홈 화면으로 접근해야만한다. 홈 화면에서 회원 가입 및 로그인 버튼을 통해 필요한 기능을 할 수 있다. 로그인이 된 회원은 홈 화면으로 들어왔을 때, 우측의 상품 목록으로 리다이렉트 해야한다. 위와 같은 기능을 추가해보고자 한다. 로그인 기능은 어떻게 구현할까? 로그인 로직은? 로그인 처리를 하기 위해서는 서버는 클라이언트에게 ID와 비밀번호만 전달해주면 된다. 그리고 서버는 클라..
이 포스팅은 인프런의 김영한님의 강의를 듣고 정리한 내용입니다. Spring MVC : Validation BeanValidation 도입이 필요한 이유 앞의 글에서 Validation을 하는 방법에 대해 확인을 해보았다. 직접 Validation 로직을 짜고, Validator를 등록하는 과정은 조금은 번거로울 수 있다. Validator의 모든 로직을 내가 직접 만들어야 한다. Validator의 조건문을 직접 작성해야하고, 등록하고, @InitBinder를 또 실행해줘야한다. 위의 번거로운 과정이 어려운 로직에 대한 내용이라면 직접 하는 것이 맞다. 그렇지만 앞서 실행했던 검증 과정들은 모두 일반적인 검증 과정이다. 예를 들어 특정 크기가 너무 크거나 작진 않은지, 값이 없지는 않은지에 대한 일반적..