안드로이드&IOS 앱 개발자 양성

안드로이드&IOS 앱 개발자 양성(65일차)

HRuler 2020. 7. 8. 13:11
더보기

※ 어제까지 한 프로젝트
1. 자신의 데이터베이스를 사용하고자 하는 경우
2. ItemDAO 클래스에서 하이버네이트 사용을 하려면 그대로 두고 MyBatis를 사용하려면 메소드 안의 주석을 해제하고 하이버네이트 호출 구문을 주석 처리
3. ItemServiceImpl 클래스에서 ItemDAO를 가지고 작업을 하면 xml 파일을 사용하는 MyBatis가 되고 ItemMapper를 이용하면 인터페이스를 이용하는 것이 된다.

** File 클래스

** 파일 다운로드 뷰 생성

** Excel 출력

** PDF 출력

** REST(REpresentational State Transfer)

** Spring에서 json 출력하는 방법
1. jsp 파일에서 JSONArray나 JSONObject를 출력하는 방법
2. 출력할 View를 JacksonView를 이용해서 출력하는 방법
3. Controller에서 ResponseBody를 출력하는 방법
4. RestController를 만들어서 String을 리턴하는 csv가 만들어지고 그 이외 객체 파일이나 List를 리턴하면 JSON으로 생성해서 출력하는 방법

※ 어제까지 한 프로젝트

- github.com/itggangpae/springmvc0708.git

1. 자신의 데이터베이스를 사용하고자 하는 경우

 - root-context.xml 파일의 DataSource 수정

 - 위의 주석을 해제하면 Oracle이고 그대로 두면 MySQL

2. ItemDAO 클래스에서 하이버네이트 사용을 하려면 그대로 두고 MyBatis를 사용하려면 메소드 안의 주석을 해제하고 하이버네이트 호출 구문을 주석 처리

3. ItemServiceImpl 클래스에서 ItemDAO를 가지고 작업을 하면 xml 파일을 사용하는 MyBatis가 되고 ItemMapper를 이용하면 인터페이스를 이용하는 것이 된다.

 

 ** File 클래스

 - java.io.File 클래스이다.

 - 인스턴스 생성법, 디렉토리인 경우 내부 파일 목록을 가져오는 방법, 파일의 존재여부 확인, 파일의 크기나 마지막 업데이트된 날짜를 가져오는 API는 중요하다.

 - 애플리케이션을 만들게 되면 애플리케이션 안에 파일을 저장해서 사용하는 경우가 많은데 없으면 생성하고 있는 경우에는 서버에서 업데이트된 날짜와 비교해서 수정하는 작업들을 수행해야 한다.

 

 ** 파일 다운로드 뷰 생성

 - AbstractView로 부터 상속받는 View 클래스를 생성

 - renderMergedOutputModel이라는 메소드를 오버라이딩해서 그 안에 파일명, 파일의 크기 등을 설정해줘야 한다.

 - 다운로드 요청이 왔을 때 생성한 View를 이용해서 출력하도록 설정한다.

 

** Excel 출력

 - apache poi 라이브러리를 이용

 - AbstractExcelView로 부터 상속받는 클래스를 만들어서 출력한다.

 - WorkBook이 파일이고 파일 안에 WorkSheet가 있고 WorkSheet 안에 Row가 있고 Row 안에 Cell이 존재 - 출력은 Cell을 생성해서 하면 된다.

 - Excel은 2003 이전에는 확장자가 xls였고 2003부터는 xlsx 인데 2개의 포맷이 다르다.

 - 생성할 때 개념은 같은데 클래스 이름의 앞글자가 다름 하나는 H로 시작하고 나머지는 X로시작

 - 엑셀로 보여주는 요청이 파일 이름이 된다.

 - 확장자를 xls나 xlsx로 만드는 것이 좋다.

 

 ** PDF 출력

 - iText API를 이용해서 출력

 - 거의 모든 프로 그래밍 언어에서 사용이 가능하다.

 - AbstractPdfView 클래스를 상속받는 클래스를 만들어서 출력한다.

 - 기본적으로 한글 출력이 안된다.

 - 한글 폰트를 별도로 설정해야 한다.

 

 ** REST(REpresentational State Transfer)

 - 하나의 URI는 하나의 서비스를 대표하도록 설계한다.

 - 서버에 접근하는 기기의 종류에 상관없이 동일한 URI로 처리하도록 설계한다.

 - 이전에는 서버가 데이터를 가지고 뷰를 만들어서 클라이언트에 전송을 하는 구조였는데 서버는 데이터를 전송해서 클라이언트가 자신의 특성에 맞게 데이터를 골라서 출력할 수 있도록 설계한다.

 - 최근에는 Server에서 Client에게 데이터를 넘길 때 JSON 형식을 가장 많이 사용

 - XML과 JSON을 표준 포맷으로 보는데 XML은 인간이 보기에는 쉽지만 사이즈가 크고 JSON은 인간이 보기에는 어렵지만 사이즈가 작고 클라이언트 언어들이 해석을 쉽게 한다.

 - 인간이 직접 설정하는 곳에서는 아직도 XML을 더 많이 사용한다.

 

 ** Spring에서 json 출력하는 방법

1. jsp 파일에서 JSONArray나 JSONObject를 출력하는 방법

2. 출력할 View를 JacksonView를 이용해서 출력하는 방법

3. Controller에서 ResponseBody를 출력하는 방법

4. RestController를 만들어서 String을 리턴하면 csv가 만들어지고 그 이외 객체 파일이나 List를 리턴하면 JSON으로 생성해서 출력하는 방법

 - 데이터를 리턴할 때는 Object(Map 같은 객체)를 리턴하는 것이 좋다.

 - Array나 List를 리턴하는 것은 좋지 못하다.