목록Java, SpringBoot 추가 공부 (33)
코드 그라데이션
1. 메서드 이름 위에 @Query 가 안 붙으면 이것만 보고 추론을 해서 쿼리를 만드는 것이고, 컴파일 에러를 잡아주진 않지만, 실행할 때 이 쿼리를 만든 다음에 시작하기 때문에 그래도 애플리케이션이 동작하면서보단 켜자마자 에러가 발생하는 게 나으니까, 이런 면에서 더 좋다. 2. Optional 은 원하는 걸 주거나 예외를 터뜨리거나 (매번 헷갈리는 내용...) 3. Timestamp 와 setStamp 등록시간과 수정시간이 중요한 경우가 있고, 등록자와 수정자가 중요한 경우가 있고, 어떤 건 다 중요한 경우가 있다. 즉, 어떤 테이블은 필요가 없을 수도 있다는 말이다. 더 많이 쓰는 것을 부모 클래스로 빼서 처리하자. 4. DB 설계에서 연관관계를 맺으면 여러 제약조건이 생기므로 지양하기도 한다. ..
예제 공부를 하다가, private boolean open; 과 private Boolean open; 이 나와서 chat GPT 를 통해 차이점을 찾아보았다. 관련된 개념적 내용은 다음과 같다. private boolean open; vs private Boolean open; Java에서 서로 다른 데이터 유형을 나타낸다. 1. private boolean open; 이것은 기본 데이터 유형인 boolean을 사용하는 변수를 선언한다. boolean은 두 가지 값 중 하나인 true 또는 false만을 가질 수 있는 원시 데이터 유형 따라서 open 변수는 true 또는 false 중 하나의 값을 가질 수 있다. 2. private Boolean open; 이것은 래퍼 클래스인 Boolean을 사용하..
파일 업로드 & 다운로드 예제 요구사항 1) 상품을 관리 상품 이름 첨부파일 하나 이미지 파일 여러개 2) 첨부파일을 업로드 다운로드 할 수 있다. 3) 업로드한 이미지를 웹 브라우저에서 확인할 수 있다. Item - 상품 도메인 package inflearn.upload.domain; import lombok.Data; import java.util.List; @Data // 예제이므로 @Data public class Item { private Long id; private String itemName; private UploadFile attachFile; private List imageFiles; } ItemRepository - 상품 리포지토리 package inflearn.upload.dom..
스프링과 파일 업로드 스프링은 MultipartFile 이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다. SpringUploadController @Slf4j @Controller @RequestMapping("/spring") // 이 컨트롤러의 요청 매핑(prefix)을 "/spring"으로 지정합니다. public class SpringUploadController { @Value("${file.dir}") // 스프링의 프로퍼티에서 값을 읽어와서 변수에 주입. private String fileDir; // 파일을 저장할 디렉토리 경로를 저장하는 변수. @GetMapping("/upload") public String newFile() { return "upload-form"; } @P..
서블릿과 파일 업로드2 서블릿이 제공하는 Part 에 대해 알아보고 실제 파일도 서버에 업로드 해보자. 1. 먼저 파일을 업로드를 하려면 실제 파일이 저장되는 경로가 필요하다. - 해당 경로에 실제 폴더를 만들어두자. - 그리고 다음에 만들어진 경로를 입력해두자. 나의 저장 경로 C:\Inflearn_Spring\file application.properties 에 파일 업로드 경로 설정 예시 내 application.properties file.dir=C:/Inflearn_Spring/file 주의 cf. 2번의 경우 요즘은 굳이 안 넣어도 되나봄. 특히 windows는 \\ 로 구분을 했으나, 요즘에는 / 로 써도 스프링이 전부 호환해줌. ServletUploadControllerV2 @Slf4j @..
controller/ServletUploadController @Slf4j @Controller @RequestMapping("/servlet/v1") public class ServletUploadControllerV1 { @GetMapping("/upload") public String newFile() { return "upload-form"; } @PostMapping("/upload") public String saveFileV1(HttpServletRequest request) throws ServletException, IOException { log.info("request={}", request); // 로깅을 통해 HTTP 요청 객체(request)를 출력한다. String itemNa..