개발Story
JAVA(RSA 암호화,복호화)
java/암호화 2021. 3. 22. 11:17

RSA 암호화는 공개키 암호화 방식이다. PRIVATE KEY PUBLIC KEY 두 키를 생성하여 . 암호화, 복호화 하는데 사용한다. PUBLIC KEY를 이용하여 암호화하고 PRIVATE KEY를 이용하여 복호화한다. JAVA CODE로 알아보자. 우선 util 기능은 이렇게 정의한다. /** * 키페어 생성 */ static HashMap createKeypairAsString() { HashMap stringKeypair = new HashMap(); try { SecureRandom secureRandom = new SecureRandom(); KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("RSA"); keyPairGene..

article thumbnail
템플릿 다운로드.
java/유틸 2020. 4. 29. 16:59

프로젝트를 진행하면서 엑셀 서식,또는 다른 기타 템플릿 을 다운로드 받을일이 많았다. document.location.href = '/excelTemplate/지방세_엑셀_서식.xlsx';

zip utill
java/유틸 2020. 3. 2. 17:20

records. import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import java.util.zip.ZipOutputStream; public class ZipUtil { /** * 디렉토리 압축 * @param path 압축 대상 경..

File 저장하기.
java/유틸 2020. 3. 2. 17:10

-----------controller------------- File convFile = null; convFile = new file("파일 디렉토리"); Utill.saveFile("convFile","업로드 경로","저장파일명") -----------utill--------------------- public static void saveFile(File origin, String saveDirPath, String fileName) throws IOException { saveDirPath = dirPathCheck(saveDirPath); //originFilePath = dirPathCheck(originFilePath); // 원본 파일 //File origin = new File(orig..

[전자정부 프레임워크] 중복로그인 방지.
java/유틸 2019. 12. 15. 16:28

로그인 구현 중 시큐리티 를 이요하지 하지 않고 세션을 이용한 로그인 구현에서 중복로그인을 구현해보았다. login 컨트롤러에 EgovHttpSessionBindingListener listener = new EgovHttpSessionBindingListener(); request.getSession().setAttribute(loginId, listener); 로그아웃 코드에 request.getSession().invalidate(); 리스너를 담는다. listener 는 HttpSessionBindingListener를 구현한 것이다. public class EgovHttpSessionBindingListener implements HttpSessionBindingListener { /** * 사..

Excel로 올라온 19리가 넘는 숫자데이터 controller에서 받기
java/유틸 2019. 12. 15. 16:05

프로젝트를 진행 중 pnu데이터를 엑셀로 받는작업이 있었다. 엑셀로 19자리가 넘는 데이터를 받으면 지수형태로 들어와 파싱하는 과정에서 pnu데이터가 값이 다르게 받아오는 경우가 있었다. MultipartHttpServletRequest request final Map files = request.getFileMap(); MultipartFile file = null; Iterator itr = files.entrySet().iterator(); Entry entry = itr.next(); file = entry.getValue(); while (itr.hasNext()) { fileName = file.getOriginalFilename(); fileSize = file.getSize(); } con..

싱글톤 패턴,인스턴스 ,클래스, 객체
java/유틸 2019. 2. 21. 14:56

싱글톤 패턴 : 프로그램안에서 이 클래스에 있는 개체가 하나가 있다고 강요하는 디자인 패턴입니다. (하나의 인스턴스만 생성할 수 있도록 구현) 사용하는 이유 : 고정된 메모리 영역을 얻으면서 한번의 new로 인스턴스를 사용하기 때문에 메모리 낭비를 방지할 수 있음또한 싱글톤으로 만들어진 클래스의 인스턴스는 전역 인스턴스이기 때문에 다른 클래스의 인스턴스들이 데이터를 공유하기 쉽다. 간단히 인스턴스 ,클래스, 객체에 대한 용어 정리 해보겠습니다. 객체 : 속성과 기능을 갖춘것클래스 : 속성과 기능을 정의한 것인스턴스 : 속성과 기능을 가진 것 중 실체하는 것 (힙에 올라온것) ex) 클래스 : Animal 객체 : Animal cat, dog; 인스턴스 : cat = new Animal(); cat은 An..

인터페이스와 추상클래스의 차이점
java/유틸 2019. 2. 21. 14:09

개발자 면접질문 단골질문인 인터페이스와 추상클래스의 차이점에대해서 설명해보겠습니다. 인터페이스란 내부 인스턴스를 둘 수 없으며 필드 선언시 static으로 정의해야 합니다. 메서드 껍데기만 가지고있습니다. 다중상속을 허용합니다. 인터페이스는 내부 인스턴스를 둘 수 없으며 필드 선언 시 public static final으로 정의해야 합니다. 그 이유는 인터페이스는 그 자체로 인스턴스화 할 수 없기 때문입니다. 따라서 메모리에 할당되는 시점 즉 초기화 시점에 할당해야 하는데, 해당 방식은 static으로만 가능합니다. 인터페이스는 메서드 껍데기만 가지고 있습니다. 따라서 인터페이스를 쓰는 경우 이를 구현하는 클래스가 추가될 때 마다 일일이 전부 구현을 해줘야 합니다. 하지만 소프트웨어의 전체적인 구조를 설..