개발 20

React spreadsheet 조사

React에서 사용할 스프레드시트 조사 했습니다. (그리드 아님) 괜찮은 것 같으면 가격이 많이 비쌉니다. 아직 개발 전 단계이므로 내용들이 틀릴 수 있습니다. 1. SpreadJS https://demo.grapecity.co.kr/spreadjs/learn-spreadjs/ 자바스크립트, Angular, Vue, React 모두 지원 엑셀 수준의 기능 제공으로 좋아 보이나 가격이 비쌈 가격 ₩2,332,000 2. Google spreadsheet https://developers.google.com/sheets/api react 지원 안함 무료 3. Jspreadsheet v4 https://bossanova.uk/jspreadsheet/v4/ 자바스크립트, Angular, Vue, React 모두..

개발 2021.10.30

Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest]

오류 내용 파일 업로드 기능 구현에서 발생하는 오류 Current request is not of type [org.springframework.web.multipart.MultipartHttpServletRequest] ​ 원인 FrontEnd 요청이 잘못되었거나, BackEnd 요청을 처리하는 쪽이 잘못 되었을 수 있음 ​ 해결방법 3가지를 모두 확인 3가지 중에 하나라도 잘못되면 위와 같은 오류 발생 ​ ajax type : 'POST', enctype: 'multipart/form-data', processData: false, contentType: false, ​ pom.xml commons-fileupload commons-fileupload 1.3.1 commons-io commons-io..

개발 2021.03.24

RSA - javax.crypto.IllegalBlockSizeException: Data must not be longer than 245 bytes 오류

오류 내용 RSA 2048 크기의 Key로 큰 사이즈의 데이터를 암호화를 할 경우 발생 Exception in thread "main" javax.crypto.IllegalBlockSizeException: Data must not be longer than 245 bytes at com.sun.crypto.provider.RSACipher.doFinal(RSACipher.java:346) at com.sun.crypto.provider.RSACipher.engineDoFinal(RSACipher.java:391) at javax.crypto.Cipher.doFinal(Cipher.java:2168) at RSA.encrypt(RSA.java:58) at Main.main(Main.java:18) 오류 ..

개발 2021.02.02

JAVA object to byte[] 변환 방법

JAVA에서 object를 byte array로 변환 하는 방법입니다. ​ object를 byte array로 변환하는 가장 쉬운 방법으로는 Object 직렬화 ObjectOutputStream를 사용하는 방법이 있습니다. 하지만 Object 직렬화는 자바에 한해서만 호환이 된다는 문제가 있습니다. Object 직렬화는 이기종 (c언어, .NET 등)과 소켓통신할 때 사용할 수 없습니다. ​ 그래서 찾은 방법이 ByteArrayOutputStream 를 사용하는 것입니다. ​ 아래는 16바이트로 구성한 클래스 객체를 byte[] 로 변환한 예제 입니다. 범용적으로 사용할 수 있게 함수 형태로는 구현하려면 자바 리플렉션 개념을 사용해야 할 것 같습니다. public class ProtocolDto { pu..

개발 2021.01.30

JAVA RSA invalid key format 오류

자바에서 RSA 개인키와 공개키를 사용하려는데 헤맸던 오류입니다. ■ 오류 Exception in thread "main" java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key format at sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:252) at java.security.KeyFactory.generatePrivate(KeyFactory.java:372) at Main.main(Main.java:43) Caused by: java.security.InvalidKeyException: invalid key f..

개발 2021.01.24

openssl, java에서 RSA 개인키, 공개키 생성, 전자서명 방법

RSA 암호화 알고리즘 사용을 위한 개인키, 공개키 생성 방법입니다. 자바에서 사용하기 위해서는 PEM + PKCS#8 형식으로 하는 것이 간편해 보입니다. ■ PEM vs DER 공개키 기반 알고리즘의 키 파일 인코딩 방식은 PEM, DER이 있습니다. - PEM : BASE64로 인코딩된 아스키 형식 - DER : 바이너리 형식 ■ PKCS#1 vs PKCS#8 PEM형식은 PKCS#1, PKCS#8 형식이 있습니다. 무늬만 차이를 보면 이렇습니다. - PKCS#1 헤더가 BEGIN RSA PRIVATE KEY 으로 시작 자바에서 지원 안함 - PKCS#8 : 헤더가 BEGIN PRIVATE KEY 으로 시작 자바에서 지원함 ■ openssl에서 RSA 개인키, 공개키 생성방법 # 개인키 pkcs#1..

개발 2021.01.24

Spring Websocket info 404 에러 나는 경우

웹소켓이 처음 connection 시에 "http://localhost/컨텍스트/echo/info?t=1589183059903" 같은 형태의 URL을 호출해서 연결이 되는데 404에러 나는 경우 해결방법입니다. 스프링에서 호출 URL을 처리 못한다는 것이니, 맵팽 관련된 부분을 확인해야 합니다. 1. web.xml 에서 url-pattern appServlet / 2-1. [java로 설정한 경우] WebSocketConfig.java 에서 EnabledWebSocket 어노테이션, setAloowedOrigins, withSockJS 옵션 확인 package com.chat.config; import org.springframework.beans.factory.annotation.Autowired; i..

개발 2020.05.11

안드로이드 앱 Admob 광고 추가 예제

구글 광고배너인 Admob을 안드로이드 앱에 추가하는 예제 입니다. 1. build.gradle(app)에 추가 1 2 3 dependencies { implementation 'com.google.android.gms:play-services-ads:17.1.1' } Colored by Color Scripter cs 2. Layout 수정 1 2 3 4 5 6 7 8 9 10 cs ※ 발급 받은 Unit ID를 입력해 주세요. 3. Activity 수정 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import com.google.android.gms.ads.MobileAds; import com.google.android.gms..

개발 2018.12.01

안드로이드 앱 Adfit 광고 추가 예제

다음 광고배너인 Adfit을 안드로이드 앱에 추가하는 예제 입니다. 1. SDK 다운로드 1.1 adfit에서 제공하는 AdfitSDK.aar 파일을 다운로드 1.2 AdfitSDK.aar 파일을 프로젝트의 app/libs에 복사 2. build.gradle(app)에 aar 추가 1 2 3 4 5 6 7 8 9 repositories { flatDir { dirs 'libs' } } dependencies { implementation name: 'AdfitSDK-3.0.5', ext: 'aar' } Colored by Color Scripter cs 3. Layout 수정 1 2 3 4 5 6 7 8 /> Colored by Color Scripter cs 4. Activity 수정 1 2 3 4 5..

개발 2018.12.01