일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 자바
- http
- Servlet
- QueryDSL
- springdatajpa
- spring
- Exception
- jpa
- pointcut
- Android
- java
- kotlin
- JPQL
- 스프링 핵심 기능
- 알고리즘
- transaction
- SpringBoot
- 스프링 핵심 원리
- Greedy
- Thymeleaf
- db
- JDBC
- 김영한
- 그리디
- 백준
- 스프링
- Spring Boot
- AOP
- 인프런
- Proxy
- Today
- Total
목록인프런 (528)
개발자되기 프로젝트
Header - 쿠키 Set - Cookie: 서버에서 클라이언트로 쿠키 전달(응답) Cookie: 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달. 0. Stateless, Connectionless HTTP의 특징은 Stateless, Connectionless.. bsh-developer.tistory.com 1. 쿠키 서버에서 로그인에 성공하면 HTTP 응답에 쿠키를 담아서 브라우저에 전달 그러면 브라우저는 앞으로 해당 쿠키를 지속해서 보내준다. 쿠키 생성 쿠키 사용(client 쿠키 전달1) 쿠키 사용(client 쿠키 전달2) 영속 쿠키, 세션 쿠키 영속 쿠키: 만료 날짜를 입력하면 해당 날짜까지 유지 세션 쿠키: 만료 날짜를 생략하면 브라우저 종료시 까지만 유지->브..
로그인 기능을 개발해보자. 로그인 ID, 비밀번호를 입력하는 부분에 집중 1. LoginService 람다식을 이용하면 코드를 깔끔하게 정리할 수 있음. loginId로 찾은 결과에서 member의 password가 입력된 password와 일치하는 member만 다음 로직 진행. 일치하는 결과 없는 경우 null 반환 -> 로그인 실패. @Service @RequiredArgsConstructor public class LoginService { private final MemberRepository memberRepository; /** * @return null 로그인 실패 */ public Member login(String loginId, String password){ /* Optional f..
1. Member package hello.login.domain.member; import lombok.Data; import javax.validation.constraints.NotEmpty; @Data public class Member { private Long id; @NotEmpty private String loginId; //로그인id @NotEmpty private String name; @NotEmpty private String password; } 2. MemberRepository loginId로 찾는 메서드 추가 package hello.login.domain.member; import lombok.extern.slf4j.Slf4j; import org.springframewo..
1. Package 구조 설계 Package 구조 hello.login domain item member login web item member login Domain이 가장 중요함!! 도메인은 화면, UI, 기술 인프라 등등의 영역은 제외한 시스템이 구현해야 하는 핵심 비즈니스 업무 영역을 말함 향후 web 기술을 바꿔도 Domain은 그대로 유지할 수 있어야 함. 이렇게 하려면 web은 domain을 알고있지만 domain은 web을 모르도록 설계해야 한다. 이것을 web은 domain을 의존하지만, domain은 web을 의존하지 않는다고 표현한다. 예를 들어 web 패키지를 모두 삭제해도 domain에는 전혀 영향이 없도록 의존관계를 설계 반대로 이야기하면 domain은 web을 참조하면 안된다...
1. 로그인 요구사항 홈 화면 - 로그인 전 회원 가입 로그인 홈 화면 - 로그인 후 본인 이름(누구님 환영합니다.) 상품 관리 로그 아웃 보안 요구사항 로그인 사용자만 상품에 접근하고, 관리할 수 있음 로그인 하지 않은 사용자가 상품 관리에 접근하면 로그인 화면으로 이동 회원 가입, 상품 관리
@Valid , @Validated 는 HttpMessageConverter ( @RequestBody )에도 적용할 수 있음. 1. @ModelAttribute, @RequestBody @ModelAttribute : HTTP 요청 파라미터(URL 쿼리 스트링, POST Form)를 다룰 때 사용 @RequestBody : HTTP Body의 데이터를 객체로 변환할 때 사용한다. 주로 API JSON 요청을 다룰 때 사용 2. Controller @RestController = @Controller + @ReponseBody @RequestBody : JSON 데이터를 객체로 바꿔줌. @Slf4j @RestController @RequestMapping("/validation/api/items") pu..
1. ItemSaveForm @Data public class ItemSaveForm { @NotBlank private String itemName; @NotNull @Range(min=1000, max=1000000) private Integer price; @NotNull @Max(value = 9999) private Integer quantity; } 2. ItemUpdateForm @Data public class ItemUpdateForm { @NotNull private Long id; @NotBlank private String itemName; @NotNull @Range(min=1000, max=1000000) private Integer price; //수정에서는 수량은 제약 없음...
실무에서는 groups 잘 사용하지 않음. 왜냐? 등록시 Form에서 전달하는 data와 Item Domain 객체와 맞지 않기 때문임. 실제 회원 등록시 회원 정보외에도 약관 정보 등 Item과 관계 없는 데이터가 넘어옴. 따라서 ITem을 직접 받는 것이 아리나, 별도 객체를 만들어서 전달함. 예를들어 ItemSaveForm을 만들어 @ModelAttribute로 사용. 이를 통해 Controller에서 Form data를 받고, 이후 Controller에서 넘어온 data를 사용해서 Item 생성. 1. Form data전달에 Item Domain객체 사용 HTML Form -> Item -> Controller -> Item -> Repository 장점: 중간에 Item을 만드는 과정이 없어서 ..