본문 바로가기
728x90
반응형

프로그램/자바12

1. java jwt token 생성 및 jar 라이브러리 만드는 방법 목차 JWT TOKEN이란? JWT(Json Web Token)는 json 형식의 웹 토큰입니다. 예전에는 주로 세션 기반으로 로그인 인증을 많이 사용 하였는데, 최근에 프로젝트는 MSA(마이크로 서비스 아키텍처)로 구현을 하기 시작 하였습니다. 도커 기반으로 이미지를 생성하고 쿠버네티스에 배포를 하여 동시 접속자가 몰리면 스케일 아웃 및 스케일 인을 자동으로 배포 및 관리하기 위해서는 기존의 세션 방식으로는 불가능 해 졌습니다. 안드로이드 앱이나, 아이폰에 어플리케이션은 세션 방식으로 통신을 할 수 없습니다. 큰 대형 업체 구글이나,네이버, 다음 등 로그인이 세션이 아닌 Auth2.0 방식으로 로그인 인증을 하고 있습니다. Auth2.0이 토큰 방식이라고 보면 맞습니다. 토큰은 액세스키와 리프레쉬 키를.. 2024. 2. 22.
레이어드 아키텍처 레이어드 아키텍처(Layered Architecture)가 무엇인지 알아보자. 소프트웨어 아키텍처란? 소프트웨어 아키텍처란, 소프트웨어 시스템의 전체적인 구조와 구성요소들 간의 상호작용을 설계하는 것을 말한다. 쉽게 말해, 건축물의 뼈대를 잡는 것과 같은 과정이다. 건축물의 구조와 종류는 굉장히 다양하다. (철근 콘크리트, 철골, 목조, …) 어떤 자재를 사용하고, 해당 자재들을 어떻게 조립하는지에 따라 건축물의 특성은 크게 달라진다. 이와 같이 소프트웨어 아키텍처는 시스템의 전체적인 동작을 결정하고, 시스템의 품질 성능(성능, 확장성, 유지보수성, 보안 등)에 직접적으로 영향을 미친다. 소프트웨어 아키텍처를 선택할 때는 다양한 요소(요구사항, 복잡성, 기술 스택, 경험, 비용 및 시간 등)들을 고려하여.. 2023. 9. 10.
첨부파일 다운로드 & 업로드 /* 자바 첨부파일 다운로드 & 업로드 */ FileManagerController.java package logfarm.admin.file.controller; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import javax.servlet.ServletOutputStream; import.. 2023. 6. 7.
Java 에서 ValidatorException 등 인증서 관련 에러 해결 /* 사설인증서 아이피 인증서 자바에서 오류시 처리 방법 */ /* 자바 인증서 생성 */ c:\dataworks>keytool -genkey -alias dataworks -keyalg RSA -storetype PKCS12 -keystore keystore_local.p12 -validity 100000 키 저장소 비밀번호 입력: 새 비밀번호 다시 입력: 이름과 성을 입력하십시오. [Unknown]: 192.168.4.13 조직 단위 이름을 입력하십시오. [Unknown]: org 조직 이름을 입력하십시오. [Unknown]: local 구/군/시 이름을 입력하십시오? [Unknown]: Seoul 시/도 이름을 입력하십시오. [Unknown]: Seoul 이 조직의 두 자리 국가 코드를 입력하십시오.. 2023. 5. 10.
자바 cors 우회하기 get,post방식 get 방식 호출 자바 네이버 지도 get 방식 호출 처리 @RequestMapping(value="/map-direction/v1/driving.do") public ModelAndView driving(HttpServletRequest request) throws Exception{ ModelAndView mav = new ModelAndView("jsonView"); String start = EgovStringUtil.nvl(request.getParameter("start")); //시작좌표 String goal = EgovStringUtil.nvl(request.getParameter("goal")); //목적지좌표 String option = EgovStringUtil.nvl(request... 2022. 7. 12.
자바 랜덤 API 암호화 BASE64 KEY 생성 package egovframework.util; import org.apache.commons.codec.binary.Base64; import javax.crypto.KeyGenerator; import javax.crypto.SecretKey; import javax.xml.bind.DatatypeConverter; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; public class RandomAESKeyGen { public static String generate(final int keyLen) throws NoSuchAlgorithmException { KeyGenerator keyGen = .. 2022. 1. 13.
자바로 크로스 도메인 우회처리 /** * 크로스 도메인 우회처리 * @param map * @return */ public static String processHTTP(Map params ) throws Exception { int statusCode = 0; String url= params.get("url"); logger.debug("url : " + url); CloseableHttpClient httpclient = HttpClientBuilder.create().build(); HttpPost httpPost = new HttpPost(url); List nvps = makeParams(params); try { httpPost.setHeader("Content-Type", "application/x-www-form-ur.. 2021. 12. 14.
자바로 PWA PUSH 만들기 https://kmong.com/money-plus/gig/329800 스프링부트로 배우는 실전 PWA | 크몽 머니플러스 코딩전문님의 스프링부트로 배우는 실전 PWA, 14,000원에 크몽 머니플러스에서 만나보세요. | 자바로 PUSH 알리미 구현에 대해서 시중에 잘 나와 있지 않아서 자바로 개발이 필요한 분들을 위해서 kmong.com 자바로 PUSH 알림 기능 잘 정리된 전자책을 소개합니다. 위 링크 클릭 2021. 8. 6.
기본 Java 타입과 DB 필드 매핑 A.1. 개요 이 기본 매핑은 CMP Bean의 이 jeus-ejb-dd.xml에 지정되어 있지 않을 때 사용한다. 이런 경우에는 EJB 시스템은 Bean의 CMP 필드 중 Java 필드를 검색하여 Java 타입을 얻어 오고 은 다음의 각 절에 나오는 기본 매핑에 지정된 것과 같다고 여긴다. 다음의 테이블에서는 3가지의 컬럼들을 보여주고 있다. Java 필드 타입 검색을 통해 발견된 EJB CMP 필드의 종류 SQL 타입 java.sql.Types 클래스에서 정의된 일반적인 SQL 종류 DB 컬럼 타입 발견된 Java 필드 종류에 기반하여 새로운 테이블을 생성할 때 JEUS가 사용할 DB 컬럼 종류의 이름A.2. Tibero 필드 - 컬럼 타입 매핑A.7. Cloudscape 필드 - 컬럼 타입 매핑 [.. 2021. 8. 4.
사용자 정의 컬럼 추가하기 Expressions.constantAs(bookNo, book.bookNo), Expressions.as(Expressions.constant(pageNo), "pageNo") (1) asNumber(bookNo).as(book.bookNo), asNumber(pageNo).as("pageNo"), asString() asEnum() asDate() asTime() asDateTime() asBoolean() 등등 다양하게 제공 Entity에서 선언되지 않은 필드일때와 아닐때 둘다 같은 형식으로 사용할수 있고 좀더 select 1 as bookNo 처럼 쿼리를 읽는것 같은 자연스러운 느낌을 더 받게 됩니다. 그리고 해당 타입이 어떤 타입인지 dto를 확인 안하고도 알수 있습니다. (int, long 까.. 2021. 5. 25.
3장. Querydsl 입문 Querydsl 입문, 장점, Querydsl의 종류, 구문, SQLQuery, SQLQueryFactory, JPAQuery, JPAQueryFactory, Q 타입클래스 생성 3장. Querydsl 입문 Querydsl은 미리 작성한 쿼리타입 클래스를 사용해서 쿼리를 메소드 기반으로 작성할 수 있도록 도와주는 프레임워크입니다. 문자열로 작성하거나 XML 파일에 쿼리를 작성하는 대신 Querydsl이 제공하는 메소드를 사용해서 쿼리를 작성합니다. 3.1. 장점 문자열로 쿼리를 작성하는 대신 Querydsl을 사용하여 자바코드로 쿼리를 작성하게 되면 얻을 수 있는 장점은 다음과 같습니다. n IDE의 코드 자동완성 기능을 사용할 수 있어서 보다 빠른 개발이 가능하다. n 문법적으로 잘못된 쿼리를 거의 허.. 2021. 5. 24.
Lombok 어노테이션 빌더 자동 생성 다수의 필드를 가지는 복잡한 클래스의 경우, 생성자 대신에 빌더를 사용하는 경우가 많은데요. 빌더 패턴을 직접 작성해보면 코딩량이 의외로 상당함을 깨닫게 됩니다. 이 때, @Builder 어노테이션을 사용하면 자동으로 해당 클래스에 빌더를 추가해주기 때문에 매우 편리합니다. @Builder public class User { private Long id; private String username; private String password; @Singular private List scores; } 컬렉션으로 된 필드에는 @Singular 어노테이션을 선언해주면 모든 원소를 한 번에 넘기지 않고 원소를 하나씩 추가할 수 있습니다. User user = User.builder() .id(.. 2021. 5. 24.
728x90
반응형


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

loading