일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Java
- Bean Validation
- 메서드
- 코테
- 운영체제
- 브루트 포스
- OS
- 코딩테스트
- 백준
- programmers
- JPA
- 면접
- 검증
- 스파르타코딩
- 네트워크
- 정처기
- 반복문
- db
- 자바의 정석
- 스프링 MVC
- 스프링MVC
- 알고리즘
- 웹개발
- 자바
- 프로그래머스
- 쿼리dsl
- 객체지향프로그래밍
- 자료구조
- 스프링
- ModelAttribute
- Today
- Total
목록Spring (16)
개발일지

JPA는 기존의 반복 코드는 물론이고, 기본적인 SQL도 JPA가 직접 만들어서 실행해준다. JPA를 사용하면, SQL과 데이터 중심의 설계에서 객체 중심의 설계로 패러다임을 전환을 할 수 있다. JPA를 사용하면 개발 생산성을 크게 높일 수 있다 영속성 컨텍스트란? "엔티티를 영구 저장 하는 환경" 이라는 뜻이다. 어플리케이션이 DB에서 꺼내온 데이터 개체를 보관하는 역할을 한다. 영속성 컨텍스트는 엔티티 매니저를 통해 엔티티를 조회하거나 저장할 때, 엔티티를 보관하고 관리한다. 영속선 컨텍스트란특징 1. @id 어노테이션을 통해 지정한 멤버 변수가 영속성 컨테스트에 식별자 값으로 저장된다. 2. JPA는 보통 트랜잭션을 커밋하는 순간 영속성 컨텍스트에 새로 저장된 Entity를 데이터베이스에 반영한다..

목차 스프링 인터셉터는 공통 관심 사항을 효과적으로 해결할 수 있는 기술이다⭐ 스프링 인터셉터 흐름 더보기 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 스프링 인터셉터는 디스패처 서블릿과 컨트롤러 사이에서 컨트롤러 호출 직전에 호출된다. 스프링 인터셉터는 스프링 MVC가 제공하는 기능이기 때문에 결국 디스패치 서블릿 이후에 등장하게 된다. 스프링 MVC의 시작점이 디스패처 서블릿이라고 생각해보면 이해가 될 것이다. 스프링 인터셉터에도 URL패턴을 적용할 수 있는데, 서블릿 URL패턴과는 다르고, 매우 정밀하게 설정할 수 있다. 스프링 인터셉터 제한 더보기 HTTP 요청 → WAS → 필터 → 서블릿 → 스프링 인터셉터 → 컨트롤러 // 로그인 사용자 HTTP 요청 → WA..
목차 패키지 구조 설계 도메인 화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역이다. 향후 web을 다른 기술로 바꾸어도 도메인은 그대로 유지할 수 있어야 한다. web은 domain을 알고있지만, domain은 web을 모르도록 설계해야 한다. → web은 도메인을 의존하지만, domain은 web을 의존하지 않는다. 로그인 처리하기 - 서블릿 HTTP 세션1 서블릿은 세션을 위해 HttpSession이라는 기능을 제공하는데, 서블릿을 통해 HttpSession을 생성하면 JSESSIONID라는 쿠키를 생성하며, 이 값은 추정 불가능한 랜덤값이다. @PostMapping("/login") public String loginV3(@Valid @ModelAtt..
목차 스프링 MVC의 Bean Validator 적용 스프링 부트에 spring-boot-starter-validation 라이브러리를 넣으면 자동으로 스프링이 Bean Validator를 인지하고 스프링에 통합한다. 스프링 부트는 자동으로 글로벌 Validator로 등록한다. LocalValidatorFactoryBean(애노테이션을 보고 검증해주는 검증기 )을 글로벌 Validator로 등록한다. 예를 들어, @Notnull같은 애노테이션을 보고 검증을 수행하고, 글로벌 Validator가 적용되어 있기 때문에 @Vaild(자바 표준 검증 애노테이션), @Validated(스프링 전용 검증 애노테이션)만 적용하면 된다. 검증 오류가 발생하면, FieldError, ObjectError를 생성해서 Bi..
목차 직접 검증 코드를 작성하는 것은 상당히 번거롭다. 특히, 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 다음 코드를 보자 public class Item { private Long id; @NotBlank private String itemName; @NotNull @Range(min = 1000, max = 1000000) private Integer price; @NotNull @Max(9999) private Integer quantity; //... } 이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화한 것이 바로 Bean Validation이다. Bean Validation을 잘 활용하면, 애노테이션 ..