목록Java/Spring (28)
진이의 Developer Story
파일업로드를 할때 PDF를 업로드할 경우, 이미지 형식으로 변환하여 올려달라는 요청을 받았습니다. (PDF뷰어가 설치되지 않은 PC도 있기 때문에 몇몇 이용자는 볼 수 없다는 이유였습니다.) 그런고로 PDF 파일 형식을 이미지로 바꾸는 작업을 하게 되었습니다. 생각보다는 간단하네요. 일반적으로 변환을 하게 되면 페이지 당 1개의 이미지 파일이 생성됩니다. 저는 하나의 이미지에 합쳐서 출력했습니다. MultipartFile file; // 스프링 MultipartFile /* * 파일이 PDF라면 이미지로 변환 */ if ("application/pdf".equals(file.getContentType())) { // 파일타입이 pdf형식 일 경우, PDDocument document = PDDocumen..
기본적인 틀만 잡아놓고 방치한지 한참 되었습니다만, 콩콩님 요청으로 수정 및 삭제를 추가해보려고 합니다. 1. BoardService.java (인터페이스) 수정 public interface BoardService { public List getBoardList(); public BoardVO getBoardView(int idx); public int insertBoard(BoardVO board); // updateBoard 추상메소드 추가 public int updateBoard(BoardVO board); // deleteBoard 추상메소드 추가 public int deleteBoard(int idx); public int updateHit(int idx); } 위와 같이 인터페이스의 2개의 ..
고객이 에디터로 작성한 글의 내용을 EXCEL, PDF로 출력해달라고 요청을 해왔습니다. 보통 에디터로 작성할 경우, HTML로 저장이 되겠죠. 해당 HTML을 가지고 EXCEL과 PDF로 출력하는 방법은 서버단, 클라단에서 할 수 있는데요. 저는 서버 사이드 측면에서 해결을 해봤습니다. 1. HTML TO EXCEL 엑셀로 출력하는 방법은 간단합니다. 엑셀 다뤄보신 분들은 알겠지만 저장할때 파일형식을 htm, html로 저장이 가능하다는 점 아시겠죠. 그 방법을 이용해보는거에요. 여러가지 어플리케이션에 적용할 수 있겠지만, 저는 웹서비스를 가정하고 작성하겠습니다. 게시판은 글제목과 글내용이 있겠죠. 그리고 글내용은 에디터로 저장이 되어, HTML 로 저장됩니다. 따라서 전제조건은 (1) DB에서 저장된..
어느덧 8월이 되었습니다. 더운 날씨에 잘들 보내고 계신가요? 저는 프로젝트도 완료되고, 많이 안정화되었답니다. 다시 블로그에 포스팅할 시간이 생겼네요. 프로젝트 유지보수 도중, 파일을 업로드 할 수 있도록 해달라는 요청건이 들어왔습니다. 일반적으로 파일 업로드 & 다운로드, 어렵게들 생각하시는데요. 스프링을 이용하면 간단하게 파일을 업로드할 수 있습니다. 스프링을 사용하지 않는다면, I/O에 대해 이해를 하고 InputStream, OutputStream으로 바이트를 받아서 만드는게 옳겠지만, 스프링이라는 좋은 프레임워크를 이용한다면 간단한 설정만으로 가능하다는 사실! 스프링 너무 좋아요. 아무튼, 파일을 업로드 하기 위해서는 사전 설정이 필요합니다. 일단 라이브러리가 필요한데요, commons-fil..
이번 프로젝트 도중 구글 통계를 사용해야하는 경우가 생겼다. 아래는 구글에서 제공하는 레퍼런스와 p12 파일을 사용하여 엑세스 토큰을 가져오는 예제이다. 이거 때문에 하루종일 고민했다... 한국어로 된 가이드도 없을뿐더러, 스택오버플로우에 올라온 내용 중에서도 제대로 된게 없었다. 이리저리 삽집하다가 겨우겨우 해결했다. 나와 비슷한 누군가가 이글을 보고 도움을 얻었으면 좋겠다. Using OAuth 2.0 for Web Server Applications | Google Identity Platform | Google Developersw String accountId = ""; JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); File p1..
%-12.12d %5p %50.50C:%4.4L - %m%n
안녕하세요. 이번 포스팅에서는 라이엇게임즈에서 제공해주는 API를 사용하는 방법에 대해 포스팅해보려고 합니다. 본견적인 포스팅에 앞서 라이엇에서 제공해주는 API의 정보들을 정리해보았습니다. API 리턴값 champion-v1.2 챔피언 정보를 반환합니다. championmastery 챔피언 숙련도 정보를 반환합니다. current-game-v1.0 현재 진행중인 실시간 게임정보를 반환합니다. (관전요약 부분을 나타낼 때 사용합니다.) featured-games-v1.0 라이엇에서 제시해주는 현재 진행중인 실시간 게임들을 반환합니다. game-v1.3 최근 진행한 게임의 리스트를 반환합니다. (최대 10게임) league-v2.5 리그 정보를 반환합니다. lol-static-data-v1.2 게임에서 사..
1. POST 방식 web.xml 에 아래의 내용을 정의한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter false encoding UTF-8 2. GET 방식 server.xml 에 아래의 내용을 추가한다. (톰캣서버) // before // after
마이바티스 사용중 다음과 같은 에러가 발생하였을 시... WARN : org.springframework.beans.factory.support.DisposableBeanAdapter - Invocation of destroy method 'close' failed on bean with name 'sqlSessionTemplate': java.lang.UnsupportedOperationException: Manual close is not allowed over a Spring managed SqlSession 스프링 설정 중 매퍼 빈 정의 부분을 destroy-method="clearCache" 를 추가한다.
package com.sample.board; import java.util.Iterator; import java.util.List; import javax.annotation.Resource; import org.junit.After; import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.A..