Web (36) 썸네일형 리스트형 jpg파일 여러장 pdf로 변환하기 프로젝트 중에 jpg파일 여러장을 하나의 pdf로 변환해야하는 일이 생겼다. 하나의 도서를 페이지 별로 한장 한장 전달 받아서 한 권의 도서를 만들어야했던 것이다. 본인은 처음에 이 작업을 코드로 할 생각조차 못했다. 그래서 jpg를 pdf로 변환 해주는 웹 사이트를 찾아보고 있던 와중에 '자바 코드로 왠지 될 거 같은데?' 라는 생각이 들어서 시도 해봤다. 일단 사용한 라이브러리는 Apache에서 제공하는 pdfbox라는 라이브러리이다. 본인이 진행중인 프로젝트는 Maven 프로젝트이기 때문에 pom.xml에 라이브러리를 추가했다. org.apache.pdfbox pdfbox 2.0.24 이후 컨트롤러에서 코드를 작성해주었다. (주석으로 세세한 설명을 적어놨다.) package com.ttcc.wssd.. == vs equals == 연산자와 equals 함수는 무엇이 다를까 처음 == 과 equals를 배울 때 본인은 그저 String 자료형은 equals로 비교해야한다고만 배웠다. 그럼 왜 자료형이 int, char...등을 비교할 때는 == 연산자를 사용하면서 String을 비교할 땐 equals를 사용해야할까? 내가 찾아본 답은 String은 int, char와 같은 일반적인 자료형이 아닌 클래스이기 때문이다. 쉽게 int와 String 변수를 선언할 때를 생각해보자 먼저 자료형이 int인 변수를 선언할 때 int a = new int (123); 이런식으로 선언하면 오류가 발생할 것이다. int는 그냥 int a = 123; 이렇게 선언하면 된다. 하지만 자료형이 String인 변수를 선언할 때는 String b = ".. JAVA 오늘 날짜 구하기 'JAVA에서 오늘 날짜 구하기' 프로젝트 진행 중에 정말 자주 쓰이는 거 같아서 정리해둔다. LocalDate date = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String today = date.format(formatter); -> 2022-07-28 Maven 과 Gradle 본인은 어떠한 새로운 프로젝트를 받아 작업을 할 때 그 프로젝트가 Maven인지 Gradle인지를 알 수 있는 방법은 pom.xml에 유무였다. pom.xml 파일이 존재한다면 그 프로젝트는 Maven 프로젝트이다. 그리고 아직까지 이해한 것은 Maven과 Gradle은 라이브러리를 쉽게 받아오기위해 사용한다는 것이다. 물론 다른 많은 기능들이 있겠지만 아직까진 거기까지다. Spring Security녀석을 만났다. 이번 글은 Spring Security녀석에 대해 얘기 해보겠다.(나도 잘 모른다.) 일단 Spring Security는 Spring에서 제공하는 기능이다. 당연한 소리다. 쉽게 그냥 본인이 느낀대로 설명하면 Spring에서 제공하는 로그인기능인 거 같다. 오늘은 정말 간단히만 알아보겠다...왜냐면 나도 잘 모르겠다 아직... SecurityController 로그인 페이지 맵핑 -> WebSecurityConfig(로그인url) -> 여러가지 권한 설정 @Override protected void configure(HttpSecurity http) throws Exception { http .headers() .frameOptions().sameOrigin() //Spring Security 는 디폴트.. Apache struts 프로젝트에서 servlet으로 pdf 파일 읽기 이번 글은 제목부터 보이듯이 조건이 많아 상당히 머리가 아팠다. 일단 현재 진행하고 있는 프로젝트가 Apache struts라는 태어나 처음 본 framework였고(Spring framework가 너무 익숙하다.) pdf파일 view 또한 처음 진행 해봤다. 그리고 대망의 servlet... 얘는 아직도 잘 모르겠다. 시작해보자... 우선 파일 다운로드와 같이 a 태그에서 javascript를 호출하여 form을 전송하는 방식이었다. - html 읽기 - javascript function pdfView(saveFileName) { let form = document.getElementById("thisForm"); let tmpFormTarget = form.target; //form.target =.. 파일 업로드 / 다운로드 (다운로드) 이번에는 파일 다운로드 녀석이다. 우선 파일을 다운로드 하려면 저장된 파일 이름을 가져와야한다.(당연한 소리다.) 이전 업로드 글에서 얘기했듯이 db에는 originalFileName과 saveFileName이 들어있다. originalFileName 여기서 originalFileName으로 사용자에게 파일 이름을 보여주고 다운로드 기능에는 saveFileName을 보내주는 것이다. 그럼 스크립트에서 function file_download(saveFileName ) { var form = document.getElementById("thisForm"); form.cmd.value = "FILE_DOWNLOAD"; form.file1.value = saveFileName; form.submit(); } .. 파일 업로드 / 다운로드 (업로드) 오늘은 웹 프로젝트를 진행하면서 어떠한 프로젝트에도 거의 대부분 사용되는 파일 업로드/ 다운로드 기능을 알아볼까한다. 우선 html 코드이다. 파일을 업로드 할 때 form을 주로 사용하는데 위 코드와 같이 enctype="multipart/form-data" 를 꼭 작성 해줘야한다. 그리고 다음으로 id / name 은 본인 입맛대로 넣어주고 중요한 것은 type을 file이라 작성하는 것이다. 이후 form에 데이터를 담아 controller로 전달하고 String uuid = UUID.randomUUID().toString(); // 저장될 파일 이름이 중복되지 않게 uuid로 랜덤 스트링을 생성 FormFile att1 = form.getAtt1(); // 앞서 html input 태그에서 nam.. 스프링 스케쥴러란 녀석을 만났다. Spring Scheduler 오늘은 바로 코드부터 공개한다. @Slf4j @Component public class SchedulerController extends CommonController { @Autowired SchedulerService schedulerService; @Autowired RegistService registService; @Autowired AttendanceService attendanceService; @Scheduled(cron = "0 5 0 * * *") //@Scheduled(cron = "0/5 * * * * *") public void sampleSchedule() throws ParseException { System.err.println(""); Map .. lombok이란 녀석을 만났다. lombok... 이번 프로젝트에서 처음 lombok을 만났다. 본인이 이해한바로 lombok은 쉽게 getter/setter , toString등을 작성하지 않아도 사용할 수 있게 만들어주는 녀석이다. 우선 lombok을 사용하려면 본인이 사용한 프로젝트(IntelliJ, Spring, maven 프로젝트) 기준 pom.xml 파일에 dependency를 추가 해줘야한다. org.projectlombok lombok true ex) 원래 사용하던 방식. private String id; private String password; public String getId() { return id; } public void setId(String id) { this.id = id; } public void s.. application.properties 이해하기 개발을 하는도중 application.properties(이하 properties파일)라는 파일을 알게 되었고 이 파일 내에서 상당히 많은 일을 할 수 있다는 걸 알게 되었다. 대표적으로 본인이 사용한 기능으로는 database 접속 정보를 남겨놓는 것이다. properties파일 내에서 변수?를 선언을 할 때는 . 으로 연결하여 보통 사용하는 거 같다. ex) spring.datasource.jdbcUrl=jdbc:mysql://localhost:3306/xxxxx?allowMultiQueries=true&characterEncoding=utf8&useAffectedRows=true&noAccessToProcedureBodies=true log4jdbc.spylogdelegator.name=net.sf.. eclipse에서 IntelliJ로 개발 학원에서 부터 계속 사용해오던 IDE eclipse를 뒤로 이번 프로젝트부터 IntelliJ를 사용해봤다. 정말 간단히 느낀 그대로 적어보면 첫째로 프로그램 내에 검색에서 놀랐다. eclipse는 프로젝트 내에서 어떠한 단어를 검색하면 프로젝트 크기에 따라 다르지만 그래도 로딩이라는 절차가 꼭 있는 정도의 속도였던 거 같은데 확실히 IntelliJ는 검색하는 동시에 결과가 나오는 느낌이다. 두번째는 가독성 가독성은 물론 사람의 취향을 많이 타기도 하는 거 같고 동시에 개발을 하면서 정말 중요한 부분이라 생각한다. 본인은 IntelliJ를 사용하면서 확실히 가독성이 좋아졌다고 생각했다. 아직까지 느낀점은 여기까지이고 본인은 확실히 IntelliJ를 선호한다... 이전 1 2 3 다음