목록분류 전체보기 (718)
쌓고 쌓다
https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 방법 내가 박스를 최대로 담을 방법은 메인 벨트에서 꺼낼 수 있다면 꺼내고 서브 벨트에서 꺼낼 수 있다면 꺼내고 메인도 서브도 안된다면 메인것을 서브로 옮겨보고 꺼낼 수 있는지 확인하고 그래도 안된다면 방법이 없는것이다. 순서대로 아래의 로직을 작성했다. 1. 메인 벨트에서 꺼낼 수 있나? 2. 서브벨트에서 꺼낼 수 있나? 3. 메인벨트에서 서브벨트로 옮길 상자가 있다면 옮겨보자 4. 다 ..
List 게시글 작성시 파일을 선택하지 않았을떄 자꾸 빈 파일이 들어가는 이슈가 있다. @PostMapping("/poster/write") public String write(@RequestParam(required = false) List files) throws IOException { } https://stackoverflow.com/questions/46934460/null-check-for-multipart-file Null check for multipart file I'm processing two different multipart files in my Spring controller. Both files are then sent on to a service to set the entit..
upload_file 테이블 create table upload_file ( id bigint auto_increment, pno bigint, upload_file_name VARCHAR(255), store_file_name VARCHAR(255), PRIMARY KEY (id), FOREIGN KEY (pno) REFERENCES poster(id) ); 파일명 중복을 방지하고자 시스템상 저장하는 파일명 store_file_name이 존재한다. UploadFile @Entity @NoArgsConstructor @Getter @Setter public class UploadFile { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private ..
게시판이 여러 파일들을 업로드하여 관리하는 연관관계 매핑이 잘 안되어서 아주 흥미롭게 책을 펼쳐 정리해봤다. 연관관계 매핑시 3가지를 고려한다. 1. 다중성 다대일, 일대다, 일대일, 다대다가 있다. 2. 단방향, 양방향 테이블은 외래 키로 어떤 테이블에서든 두 테이블이 조인이 가능하니 양방향이 언제든 가능하다. 객체는 참조 필드를 가지는 객체만 조회가 가능하니, 한쪽만 있으면 단방향 양쪽에 있으면 양방향이다. 3. 연관관계 주인 DB는 외래 키 하나로 두 테이블이 연관관계를 맺을 수 있다. 이때 관리 포인트는 외래 키 하나로 한곳이다. 그런데 엔티티는 양방향으로 매핑했다면 관리 포인트가 두곳이 된다. A->B와 B->A. JPA는 관리 포인트를 한곳을 정해 외래 키를 관리하는데 이 한곳이 연관관계 주인..
org.springframework.web.bind.MethodArgumentNotValidException 파일 업로드 관련하여 업데이트를 위해 코드를 추가했다. @PostMapping("/poster/write") public String write(@Valid Poster poster,@RequestParam(required = false) List imgFiless, Errors errors) throws IOException { System.out.println("poster = " + poster.getImgFiles()); System.out.println("imgFiless = " + imgFiless); if(errors.hasErrors()) { System.out.println("ER..
게시판을 만들어보다보니 연관관계 부분을 공부할 필요가 느껴졌다! 파일 업로드 부분을 위해...! 그래서 JPA 책을 펼쳐 일부 읽고 조금 아하했다. 다음 챕터에 더 상세한 내용은 다음에 읽고 이해한 부분까지 정리한다. 엔티티는 다른 엔티티와의 관계를 맺는다. 선수는 팀과의 관계를 맺는 예시가 있다. 여기서 객체는 참조(주소)로 관계를 맺고, 테이블은 외래 키를 사용해 관계를 맺는다. 아래의 설명들을 보기전에 Member와 Team의 구조를 보자. Team (1) 테이블 CREATE TABLE team ( id VARCHAR(255) NOT NULL, name VARCHAR(255), PRIMARY KEY (id) ); (2) 클래스 @Entity @Getter @Setter @NoArgsConstruct..
URI (Uniform Resource Identifier) 리소스를 식별하는데 사용되는 문자열이다. 위치, 이름(식별자)으로 우린 리소스를 식별할 수 있다. 예를 들어 친구 이승민한테 연락을하고싶다고 하자. 이름 이승민이나 주소 111-11 1동 1호로 연락을 할 수 있다. 즉, 이름과 위치 어느것을 사용해도 또는 둘다를 사용해도 이승민을 식별할 수 있다. 이것이 URI이다. 이름(식별자), 주소로 식별할 수 있다. URL (Uniform Resource Locator) 마찬가지로 문자열인데 위치(주소)만을 참조한다. 주소 111-11 1동 1호 위치로 친구 이승민을 식별할 수 있다. 이것이 URL이다. 주소(위치)로 식별할 수 있다. => URL은 URI의 부분집합(서브셋)이다. URL은 위치로 식별..
기존의 MVC 패턴에서 공통 로직이 필요하면 공통 로직을 실행하고 별도의 로직을 수행하게 해야한다. 공통된 입구가 없기에 모든 입구마다 공통 로직을 깔아줬음. 프론트 컨트롤러 패턴 프론트 컨트롤러 패턴으로 입구를 하나로 만들어 공통 로직을 수행할 수 있다. 또한 프론트 컨트롤러의 뒤에 있는 나머지 컨트롤러는 요청에 맞는 컨트롤러를 서블릿을 사용하지 않고 호출할 수 있다. 스프링 웹 MVC의 핵심 "DispatcherServlet"도 FrontController 패턴으로 만들어져 있다고 한다. 프론트 컨트롤러 V1 만들어볼 프론트 컨트롤러 구조는 위와 같다. 프론트 컨트롤러로 들어온 요청 URL에 따라 컨트롤러를 호출하여 응답한다. Controller 인터페이스 public interface Control..