분류 전체보기
스트림의 연산
스트림의 연산
2022.11.16스트림의 연산 스트림이 제공하는 기능 - 중간 연산과 최종 연산 1. 스트림 만들기 2. 중간 연산 (n번) 3. 최종 연산 (1번) 중간연산은 연산 결과가 스트림이다. 반복적으로 적용할 수 있다. 최종연산은 연산 결과가 스트림이 아닌 연산이다. 단 한번만 적용이 가능하다.(스트림의 요소를 소모) 그래서 만약 최종연산 이후에 뭔가 더 다른 작업을 하고 싶다면, 스트림을 새로 생성해서 진행해야 한다. 스트림의 연산 - 중간 연산 distinct()는 중복을 제거하는 메서드다. filter(Predicate predicate)는 매개변수로 조건식을 주면 조건에 안 맞는 요소는 제외하고 조건에 맞는 것만 남겨주는 메서드다. limit()는 스트림의 일부를 잘라내는 메서드다. skip()은 스트림의 일부를 건너..
스트림 만들기
스트림 만들기
2022.11.15스트림 만들기 - 컬렉션 1. 스트림 생성. 2. 중간 연산(0~n번) 3. 최종 연산 (0~1번) Collection 인터페이스의 stream() 으로 컬렉션을 스트림으로 변환 Collection 인터페이스에 stream() 이라는 메서드가 있는데, stream()은 컬렉션을 스트림으로 만들어서 반환해준다. Collection 인터페이스의 자손인 List와 Set 두 인터페이스를 구현한 Collection 클래스가 stream() 메서드를 가지고 있다 1, 2, 3, 4, 5가 저장되어 있는 list가 있을 때, 해당 list 에다가 .stream() 만 호출하면 스트림을 얻을 수 있다. 그리고 해당 stream으로부터 모든 요소를 출력하려면 forEach()를 사용하면 된다. 그 안에 System.o..
스트림, 스트림의 특징
스트림, 스트림의 특징
2022.11.14스트림(Stream) 다양한 데이터 소스(컬렉션, 배열)를 표준화된 방법으로 다루기 위한 것 CollectionFramwork 는 List, Set, Map 등 다양한 컬렉션 클래스들을 표준화된 방법으로 다루려고 정리한 것이다. 그런데, 사실 실패했다. 왜냐하면, List,Set 과 Map이 성격이 달라서 사용방법이 달랐기 때문이다. 그러니깐, 말만 표준화지, 반쪽짜리 표준화였던 것이다. 그런데, 드디어 JDK1.8부터는 스트림 이라는 것이 나와서 정말로 진정한 통일이 되었다. 다양한 데이터소스를 다루는 방법이 정말로 통일 되었다. 그래서 컬렉션에는 List, Set, Map 이 있고, 배열이 있는데, 이러한 다양한 데이터 소스로부터 Stream을 만들 수 있다. 일단 Stream을 만들고나면, 똑같은 ..
스프링 MVC 2 - 정리(파일 업로드)
스프링 MVC 2 - 정리(파일 업로드)
2022.10.20정리(파일 업로드) 파일 업로드 소개 HTML Form을 통한 파일 업로드를 이해하려면 먼저 폼을 전송하는 다음 두 가지 방식의 차이를 이해해야 한다. application/x-www-form-urlencoded multipart/form-data 프로젝트 생성 서블릿과 파일 업로드1 서블릿은 multipart를 지원한다. 그래서 request.getParts()를 하면 part를 받을 수 있다. 이것을 사용하려면 spring.servlet.multipart.enabled=true로 켜져있어야 한다. 이것이 꺼져있으면 WAS자체가 이것은 multipart를 사용하지 않는구나 하고서 아예 기능을 지원하지 않게된다. 서블릿과 파일 업로드2 서블릿이 제공하는 Part에 대해 알아보았다. 먼저 applicati..
스프링 MVC 2 - 예제로 구현하는 파일 업로드, 다운로드
스프링 MVC 2 - 예제로 구현하는 파일 업로드, 다운로드
2022.10.20예제로 구현하는 파일 업로드, 다운로드 실제 파일이나 이미지를 업로드, 다운로드 할 때는 몇가지 고려할 점이 있는데, 구체적인 예제로 알아보자. 요구사항 상품을 관리 상품 이름 첨부파일 하나 이미지 파일 여러개 첨부파일을 업로드 다운로드 할 수 있다. 업로드한 이미지를 웹 브라우저에서 확인할 수 있다. Item - 상품 도메인 ItemRepository - 상품 리포지토리 UploadFile - 업로드 파일 정보 보관 uploadFileName : 고객이 업로드한 파일명 stroeFileName : 서버 내부에서 관리하는 파일명 고객이 업로드한 파일명으로 서버 내부에 파일을 저장하면 안된다. 왜냐하면 서로 다른 고객이 같은 파일이름을 업로드 하는 경우 기존 파일 이름과 충돌이 날 수 있다. 서버에서는 저..
스프링 MVC 2 - 스프링과 파일 업로드
스프링 MVC 2 - 스프링과 파일 업로드
2022.10.19스프링과 파일 업로드 스프링은 MultipartFile 이라는 인터페이스로 멀티파트 파일을 매우 편리하게 지원한다. SpringUploadController 코드를 보면 스프링 답게 딱 필요한 부분의 코드만 작성하면 된다. @RequestParam MultipartFile file 업로드하는 HTML Form의 name에 맞추어 @RequestParam을 적용하면 된다. 추가로 @ModelAttribute에서도 MultipartFile을 동일하게 사용할 수 있다. MultipartFile 주요 메서드 file.getOriginalFilename() : 업로드 파일 명 file.transferTo(...) : 파일 저장 실행 http://localhost:8080/spring/upload 실행 로그 req..