프로젝트/개인 프로젝트 V28 8) 개선사항과 만났던 오류들 만났던 오류들 책 (자바 ORM 표준 JPA 프로그래밍), 블로그 글 - @OneToOne에서 Fetch 전략을 참고했다. 1. @OneToOne에서 Fetch 전략을 Lazy로 설정했을때 발생하는 이슈 우선 User와 Cart를 1:1 양방향매핑 했을 때 eager login 이슈가 있었다. User @Entity @Getter @Table(name = "users") @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User { @Id @GeneratedValue @Column(name = "user_id") private Long id; private String loginId; private String password; privat.. 2023. 6. 14. 7) 오류처리와 예외처리 검증 로직을 추가해야 한다. 컨트롤러의 중요한 역할중 하나는 HTTP 요청이 정상인지 검증하는 것이다. 웹 서비스는 폼 입력시 오류가 발생하면, 고객이 입력한 데이터를 유지한 상태로 어떤 오류가 발생했는지 친절하게 알려주어야 한다. 웹서비스 프로젝트에 검증 요구사항을 추가해보자. 상품 등록/수정 할 때, 가격, 수량에 문자가 들어가면 안된다. 이미지 1개 이상 필수 입력해야 한다. 상품명은 필수 입력값이다. 입력을 잘못한 경우, 다시 입력 폼으로 돌아오도록 한다. 로그인 요구사항 로그인 사용자만 상품에 접근하고, 관리할 수 있다. 로그인 하지 않은 사용자는 상품 관리에 접근하면 로그인 화면으로 이동된다. 로그인 할 때, 비밀번호 잘못 입력한 경우 null을 반환한다. 로그인에 실패한 경우, "아이디 또는.. 2023. 6. 14. 6) 파일 업로드 상품등록 서비스를 만들 때 이미지 업로드 기능이 필요하다. 상품 등록에 대한 요구사항은 아래와 같다. 요구사항 상품 정보 입력 (상품명, 가격, 수량, 상품상태, 상품 카테고리 등등) 이미지 파일 여러 개를 등록할 수 있다. 업로드한 이미지를 웹 브라우저에서 확인할 수 있다. 스프링은 MultipartFile 이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다. 스프링 MVC를 활용하여 구현해보자. application.properties 작성 file.dir=C:/newThing/chimm/ file.dir ( file.dir ) 이 부분을 원하는 이름으로 적고 원하는 파일저장경로를 설정해주면 된다. 후에 @Value("${file.dir}")로 불러다가 사용할 예정이다. 상품 등록 폼화면 작성.. 2023. 6. 14. 5) Paging Query 이전 프로젝트를 만들었을 때, Querydsl 사용하는 부분 코드가 아쉬었었다. 그래서 이번에 페이징 쿼리를 수정하면서 다시 복습하고자 한다. 고치고 싶었던 것 컨트롤러 부분에서 카테고리별로 페이징처리하는 부분 페이징 필터 수정 카테고리별로 상품 페이징하는 부분에서 아쉬운점이 있다. 이전 프로젝트에서 카테고리 구현을 하고자, 컨트롤러에서 아래 경로 매핑 2개를 작성했었다. /category/BOOK /category/MUSIC {code} 방식으로 받는 방법을 몰라서, 반복되는 코드를 적고 code를 문자열로 고정시켜 페이지 구현을 했었다. 하지만, queryDSL 쿼리를 작성하여 좀 더 코드개선을 할 수 있었다. 또한 페이징 필터를 "낮은가격순" "높은가격순"으로 고쳤다. 이전에 "이름순" "최신등록순.. 2023. 6. 13. 이전 1 2 다음