프로그래밍/Spring 4

@Validated 테스트 코드 작성

비밀번호 범위를 테스트하자 Member라는 클래스를 작성 public class Member { @NotNull @Length(max = 30) private String memberId; @NotEmpty @Range(min = 8, max = 16) private String memberPwd; @NotEmpty private String memberNM; public Member() { } public String getMemberId() { return memberId; } public void setMemberId(String memberId) { this.memberId = memberId; } public String getMemberPwd() { return memberPwd; } publ..

싱글톤 패턴

싱글톤 패턴 - 클래스의 인스턴스가 1개만 생성되는 것을 보장하는 디자인 패턴 - 객체 인스턴스를 2개 이상 생성하지 못하도록 막아야함 싱글톤 방식의 주의점 - 무상태(stateless)로 설계해야함 : 특정 클라이언트에 의존적인 필드가 없어야함 : 특정 클라이언트가 값을 변경할 수 있는 필드가 있으면 안됨 : 가급적 읽기만 가능 - 스프링 빈의 필드에 공유 값을 설정하면 장애가 발생할 수 있다 싱글톤 방식의 문제점 - 멀티스레딩 환경에서 발생할 수 있는 동시성 문제 해결을 위해 syncronized 키워드를 사용해야 한다. - 테스트하기 어렵다. :격리된 환경에서 수행되려면 매번 인스턴스의 상태를 초기화시켜주어야 한다. 그렇지 않으면 어플리케이션 전역에서 상태를 공유하기 때문에 테스트가 온전하게 수행되..

Spring 이해

Spring 생태계 - 스프링 프레임 워크 - 스프링 부트 - 스프링 데이터 - 스프링 세션 - 스프링 시큐리티 - 스프링 Rest Docs - 스프링 배치 - 스프링 클라우드 Spring 프레임워크 특징 - 자바 언어 기반 프레임워크(자바는 객체 지향 언어) - POJO(Plain Old Java Object) : 평범한 자바 오브젝트 : EJB(Enterprise JavaBeans)는 한가지 기능을 위해 불필요한 복잡한 로직이 과도하게 들어가는 단점 : POJO는 gettet/setter를 가진 단순 자바 오브젝트로 정의를 하고 있습니다. 이러한 단순 오브젝트는 의존성이 없고 추후 테스트 및 유지보수가 편리한 유연성의 장점을 가진다. - 의존성 주입(DI) : 객체가 서로 의존하는 관계가 되게 의존성..

Spring과 Spring Boot 차이점

Spring - Transaction Manager, Hibernate Datasource, Entity Manager, Session Factory와 같은 설정을 하는데에 어려움이 많이 있음. - 최소한의 기능으로 Spring MVC를 사용하여 기본 프로젝트를 셋팅하는데 개발자에게 너무 많은 시간이 걸림. Spring Boot - 자동설정(AutoConfiguration)을 이용하여 어플리케이션 개발에 필요한 모든 내부 디펜던시를 관리함. - 내장형 톰캣(Embed Tomcat)을 가지고 있기 때문에 별도의 톰캣을 설치할 필요가 없음. - 독립적으로 실행 가능한 jar로 배포 가능. - xml 설정을 하지 않아도 됨. 한마디로 Spring에서 어렵게 설정하던 것들을 Spring Boot가 알아서 관리해..

1