본문 바로가기

Spring(12) - 파일업로드 파일업로드를 할경우 가장 기본적으로 뷰에있는 폼에 enctype="multipart/form-data"를 추가해주어야한다. 그 후 스프링 설정으로 multipartResolver를 등록해주어야한다. 이때 빈의 이름은 꼭 multipartResolver 여야만한다. DispatcherServlet은 multipartResovler라는 이름만을 사용하기 때문에 다른이름을 사용해서는 안된다. 이렇게 스프링에 설정을 하고 원하는 속성이 있으면 maxUploadSize, maxInMemorySize, defaultEncoding을 설정해 줄 수 있다. 설정이 끝난 후 컨트롤러에서 요청된 파일을 사용하려면 MultipartFile 인터페이스를 사용하면 된다. MultipartFile인터페이스가 제공하는 메서드를 사..
Spring(11) - XML/JSON, @RequestBody, @ResponseBody XML/JSON 서비스나 데이터를 HTTP 기반 API형태로 제공하는 곳이 많다. 예를들어 트위터, 네이버가 각자 사이트에서 사용하는 기능을 제공해 주는방식으로 HTTP 기반 API형태로 제공해준다. 이들 API특징 중 하나는 응답으로 XML/JSON형식을 사용한다는 것이다. 스프링 MVC에서는 응답생성을 위한 뷰클래스를 만든다던지, HttpServlerResponse를 이용해서 원하는 응답을 생성할 수 있지만, 좀더 쉬운 방법을 제공해주고 있다. 그것이 바로 @RequestBody, @ResponseBody 이다. @RequestBody @RequestBody는 요청몸체를 자바객체로 변환시킬 때 사용한다. 예를들어 요청 파라미터 문자열을 자바 String객체로 변환 시키거나 JSON형식의 몸체를 자바객..
백준(2839) - 설탕배달하기(java) 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 첫번째오답 import java.util.Scanner; pub..
백준(11718) - 그대로출력하기(java) 문제 - 그대로출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다. import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String [] args) { Scanner sc = new Scanner(System.in); ArrayList al = new ArrayList(); while(true) { String a = sc.nextLine(); if(a.equals(" ") || a.isE..
JavaScript(1) - 캡슐화와 상속 1. 캡슐화 자바스크립트에서 캡슐화란 잘못 사용될 수 있는 객체의 특정 부분을 사용자가 직접 사용할 수 없게 막는 기술이라고 할 수 있다. 캡슐화를 구현할때는 클로저를 사용해서 구현하는게 보편적이다. 이런식으로 사용자가 아예 음수를 입력하지 못하게끔(음수를 입력하면 페이지에서 에러를 발생시킨다)해서 캡슐화를 할 수 있다. 사용자는 setOOO을 이용해서만 길이를 설정할 수 있기 때문에 음수가 들어갈 일은 없다. getter, setter자체를 만드는것이 캡슐화가 아니고, 만일의 상황이나 특정상황을 대비해서 메서드나 속성을 사용하지 못하게끔 숨겨놓는 것이 바로 캡슐화이다. 2. 상속 상속은 기존의 생성자 함수나 객체를 기반으로 새로운 생성자 함수나 객체를 쉽게 만들 수 있게 해주는 것을 뜻한다. 자바에서의..
Oracle(2) - SQL함수 1. DUAL 테이블 SQL함수에는 한줄로 데이터를 꺼낼수 있는 DUAL테이블이 존재한다. ex) select 60*24 from dual; 2. SUM함수 SUM함수를 사용해서 칼럼에해당하는 값을 더한 총합을 출력할 수 있다. 그룹함수의 값은 여러개의 행에 대해서 1개의 행만을 출력해준다. ex) 부서번호가 30인 사원의 총 급여 select deptno, sum(sal) from emp group by deptno having deptno = 30; 3. 단일행함수 - 행마다 함수가 적용되어 결과를 반환 - 문자, 숫자, 날짜, 변환, 일반함수 - 문자함수(LOWER, UPPER, SUBSTR, LENGTH, INSTR, TRIM등) - 숫자함수 ABS - 절대값 반환 ROUND - 원하는 자리에서 ..
Spring(10) - Restful방식을 스프링에서사용하기 웹브라우저는 전송방식으로 GET, POST만 사용할 수 있어서 DELETE, PUT방식은 제외된다. 하지만 스프링에서는 웹브라우저에서도 Restful을 사용할 수 있도록 지원해주는데 방법은 다음과 같다. 1. web.xml에서 HiddenHttpMethodFilter 추가하기 httpFilter org.springframework.web.filter.HiddenHttpMethodFilter httpFilter 사용하는 servlet 2. view파일에서 태그의 method속성에 delete 혹은 put 이용 HiddenHttpMethodFilter는 요청 파라미터에 _method가 존재할 경우, _method의 파라미터 값을 요청방식으로 사용하도록 스프링 MVC관련정보를 설정해준다. 덕분에 Dispatc..
Spring(9) - View구현 컨트롤러가 지정한 뷰이름으로부터 응답결과를 출력해주는 View객체를 구할 때 사용하는 것이 ViewResolver이다. 스프링이 제공하는 주요 ViewResolver는 InternalResourceViewResolver, BeanNameViewResolver가 있다. InternalResourceViewResolver - InternalResourceViewResolver는 JSP나 HTML과 같이 웹 어플리케이션의 내부 자원을 이용해서 응답 결과를 생성한다. JSTL이 존재할 경우 하위타입으로 JstlView객체를 리턴한다. 설정방법은 다음과 같다. BeanNameViewResolver - BeanNameViewResolver 클래스는 뷰이름과 동일한 이름을 갖는 빈을 뷰로 사용한다. 주로 커스텀 Vi..