목록분류 전체보기 (70)
진이의 Developer Story
안녕하세요. 저희는 ckeditor를 사용하고 있었는데요. 클라이언트가 불편하다고 해서, 대체 에디터를 찾다가 스마트에디터를 발견했습니다. (클라이언트가 가장 많이 쓰는건 엑셀에서 작업한 내용을 올리는 것이라고 했습니다.) * 스마트에디터는 네이버에서 개발한 오픈 위지윅스입니다. 가장 좋은건 엑셀에서 표 붙여넣기 할때 가장 똑같이 만들어서 복사가 되더군요. 표를 제어할때도 편리하고요~ 일단 변경하기에 앞서서 적용이 일단 잘 되어야 변경계획을 수립할지 결정을 하겠지요. 스마트에디터의 기능으로 html은 잘 작성이 되는데요. 문제는 이미지를 첨부할 때가 문제란 말이죠. 스마트에디터 내에서도 php는 기본적으로 지원이 되는데, 자바로는 포팅해서 사용해야 하더라구요. 인터넷을 찾아봐도 스프링에 맞춘 셋팅 방법은..
ajax를 처리하다 보면, 순차적으로 실행이 되어야 할때가 있습니다. 예로 들자면, A,B,C를 각각 호출해야 하는 상황입니다. B는 A에 의존적이며, C는 B에 의존적이죠. 그럼 A가 완전히 호출된 다음에, B 그리고 C가 순서대로 호출이 되어야 합니다. 그런데 ajax의 비동기 방식으로 실행을 한다면, 호출은 순서대로 되겠지만 처리되는 순서는 다를 수 있습니다. 이런 경우에는 ajax 옵션에 async (기본값 : true, 비동기식) 를 false (동기식)로 해주시면 되지만, 최신 jQuery에서는 지원이 되질 않는 것 같더라구요. 그래서 알아본 것이 바로 when()함수입니다. jQuery 1.5 이상부터 추가가 되었다고 합니다. 사용법은 다음과 같습니다. // done 의 경우 성공적으로 호출..
파일업로드를 할때 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개의 ..
iCheck는 checkbox, radio 버튼을 이미지와 css를 이용하여 예쁘게 보여줍니다. 하지만, 여러가지 면에서 매우매우매우 불편한데요. 제가 느낀 단점. 1. 마지막 업데이트 이후 유지보수가 되지 않고 있습니다. (에러는 본인이 수정해야 하며) 2. 익스플로러에서는 속도가 매~우 느립니다. (익스 외의 크롬 등에서는 빠름, 브라우저의 렌더링 속도가 느린탓.) 3. jQuery Form Validation 사용시 메세지가 이상한 위치(?)에 출력됨 오늘은 3번째 단점 때문에 이 포스팅을 올립니다. iCheck의 경우 렌더링을 할때 div를 여러개 생성하기 때문에 에러메세지의 위치는 iCheck의 가장 바깥쪽에 있는 엘리먼트의 다음에 와야합니다. 따라서 iCheck에는 사용이 부적합한데요. [에러..
고객이 에디터로 작성한 글의 내용을 EXCEL, PDF로 출력해달라고 요청을 해왔습니다. 보통 에디터로 작성할 경우, HTML로 저장이 되겠죠. 해당 HTML을 가지고 EXCEL과 PDF로 출력하는 방법은 서버단, 클라단에서 할 수 있는데요. 저는 서버 사이드 측면에서 해결을 해봤습니다. 1. HTML TO EXCEL 엑셀로 출력하는 방법은 간단합니다. 엑셀 다뤄보신 분들은 알겠지만 저장할때 파일형식을 htm, html로 저장이 가능하다는 점 아시겠죠. 그 방법을 이용해보는거에요. 여러가지 어플리케이션에 적용할 수 있겠지만, 저는 웹서비스를 가정하고 작성하겠습니다. 게시판은 글제목과 글내용이 있겠죠. 그리고 글내용은 에디터로 저장이 되어, HTML 로 저장됩니다. 따라서 전제조건은 (1) DB에서 저장된..
어느덧 8월이 되었습니다. 더운 날씨에 잘들 보내고 계신가요? 저는 프로젝트도 완료되고, 많이 안정화되었답니다. 다시 블로그에 포스팅할 시간이 생겼네요. 프로젝트 유지보수 도중, 파일을 업로드 할 수 있도록 해달라는 요청건이 들어왔습니다. 일반적으로 파일 업로드 & 다운로드, 어렵게들 생각하시는데요. 스프링을 이용하면 간단하게 파일을 업로드할 수 있습니다. 스프링을 사용하지 않는다면, I/O에 대해 이해를 하고 InputStream, OutputStream으로 바이트를 받아서 만드는게 옳겠지만, 스프링이라는 좋은 프레임워크를 이용한다면 간단한 설정만으로 가능하다는 사실! 스프링 너무 좋아요. 아무튼, 파일을 업로드 하기 위해서는 사전 설정이 필요합니다. 일단 라이브러리가 필요한데요, commons-fil..
조인도 종류가 많습니다. INNER JOIN, LEFT OUTER JOIN 등... 처음 접하시는분은 이해가 가지 않을텐데요. 다이어그램을 보면 이해가 빠르더라구요~
이번 프로젝트 도중 구글 통계를 사용해야하는 경우가 생겼다. 아래는 구글에서 제공하는 레퍼런스와 p12 파일을 사용하여 엑세스 토큰을 가져오는 예제이다. 이거 때문에 하루종일 고민했다... 한국어로 된 가이드도 없을뿐더러, 스택오버플로우에 올라온 내용 중에서도 제대로 된게 없었다. 이리저리 삽집하다가 겨우겨우 해결했다. 나와 비슷한 누군가가 이글을 보고 도움을 얻었으면 좋겠다. Using OAuth 2.0 for Web Server Applications | Google Identity Platform | Google Developersw String accountId = ""; JsonFactory jsonFactory = JacksonFactory.getDefaultInstance(); File p1..