본문 바로가기
728x90
반응형

자바32

액세스 및 리프레쉬 토큰을 사용한 JWT 전략 구현 안녕하세요 오늘은 jwt 토큰을 사용하여 보안 전략을 구현 해보겠습니다. 1. jwt 란? json web token의 줄임말로 json 개체로 인코딩된 두개체간의 인증 메시지 코드로써 암호화되어 디지털 서명이나 무결성을 보호 합니다. jwt 토큰을 사용한 웹 어플리케이션 보안 인증은 기존 세션을 이용한 보안 인증보다 상태를 비저장하고 정보 저장의 간편성이라는 장점이 있습니다. 2. 액세스 토큰 웹 어플리케이션 기능의 인증을 위해 액세스토큰을 사용합니다. 해당 토큰은 10분이라는 짧은 만료시간을 가집니다. 3. 리프레쉬 토큰 리프레쉬 토큰은 액세스 토큰을 얻기 위해서만 사용됩니다. 해당 토큰은 1일이라는 긴 만료시간을 가집니다. 4. 구현 userService(login) -> jwtProvider(액세.. 2024. 2. 17.
백그라운드에서 자바(Java) 어플리케이션 실행하기: nohup 명령어(start.sh)와 로그백(logback) 활용 안녕하세요 오늘은 자바 어플리케이션을 배포하기 위해 start.sh 을 사용하고 로그도 확인해 보겠습니다. 1. start.sh 만들기 리눅스에서 vi start.sh 명령어를 사용하여 start.sh을 만들어 봅시다. 해당 sh에 실행권한을 부여합니다. 명령어는 chmod +x start.sh 입니다. 이제 start.sh 을 작성해봅시다. 2. nohub 명령어 사용 nohub 이란 (no hang up) 즉 행업이 없이 계속 실행하겠다 라는 의미 입니다. 즉시 예제를 보며 설명하겠습니다. #!/bin/bash nohup /app/jdk/open-jdk-11.0.2/bin/java -DTESTAPP -server -Xms4g -Xmx4g -jar ../lib/test-app-0.1.0.jar --sp.. 2023. 11. 4.
java: constructor ~ in class ~ cannot be applied to given types 안녕하세요 오늘은 자바 개발중 발생한 에러건에 대한 내용입니다. java: constructor ~ in class ~ cannot be applied to given types; required: no arguments found: java.lang.String,java.lang.String,java.lang.String,java.lang.String,java.lang.String reason: actual and formal argument lists differ in length 이런 에러인데요 간단합니다. @Builder 를 사용할때 @RequiredArgsConstructor 를 사용하지 마세요 발생한 오류는 코드의 Lombok 주석( @Builder, @RequiredArgsConstructo.. 2023. 10. 14.
자바 코딩테스트 연습 안녕하세요 오늘은 자바 코딩 테스트 문제를 풀어보며 연습해보겠습니다. 문제 1: 배열 회전 다음과 같은 문제를 해결해 보세요. 정수형 배열이 주어졌을 때, 이 배열을 오른쪽으로 N번 회전시키는 메서드를 작성하십시오. 예를 들어, [1,2,3,4,5]의 배열이 있고 N=2라면 출력은 [4,5,1,2,3]이 되어야 합니다. 문제 2: 팔린드롬 체크 주어진 문자열이 팔린드롬인지 확인하는 함수를 작성하세요. 팔린드롬은 앞으로 읽으나 뒤로 읽으나 동일한 문자열을 의미합니다. 대소문자는 구분하지 않으며 공백도 무시합니다. 문제 3: 피보나치 수열 재귀함수를 사용하여 n번째 피보나치 수열의 값을 반환하는 함수를 작성하세요. 피보나치 수열은 다음과 같습니다: 0 (0번째), 1 (1번째), 1 = 0 + 1 (2번째).. 2023. 10. 5.
리눅스에 자바 설치하기 안녕하세요 오늘은 데비안 계열 리눅스에서 자바를 설치해 보겠습니다. 먼저 오라클로 입장해 주세요. 원하시는 자바를 다운받아 주세요. 저는 자바 8버전을 받겠습니다. 이것을 받아서 리눅스로 갑니다. tar -xzvf jdk-8u202-linux-x64.tar.gz -C /app/jdk/ 해당 명령어를 사용하여 원하시는 폴더에 압축을 풀어주세요 저는 app/jdk/ 에 압축을 풀었습니다. 아니면 cd .. 명령어를 이용하여 직접 폴더로 가서 tar -xzvf /path/to/jdk-8u202-linux-x64.tar.gz 해당 명령어를 사용해 주세요 이제 설정을 위해 다음 명령어를 사용합니다. update-alternatives --install /usr/bin/java java /app/jdk/jdk1.8.. 2023. 9. 19.
정보처리기사실기 - 프로그래밍 언어 활용 (2) 안녕하세요 오늘은 정보처리기사 실기 - 프로그래밍 언어 활용 2번째 시간입니다. 1. 예상 문제 #include void main(){ int a = 5; int s = 0; switch(a/2){ case 2 : s++; case 3 : a += s; default : a++; } printf("%d %d", s, a); } 출력값 1 7 #include void main(){ int a = 3; int b = 7; switch(a%2){ case 3 : b += a; } printf("%d %d", a, b); } 출력값 3 7 #include void main(){ int s = 0; for(int i=0; i 2023. 9. 3.
정보처리기사실기 - 프로그래밍 언어 활용 (1) 안녕하세요 오늘은 정보처리기사 실기 프로그래밍 언어 활용 단원에 대해 공부해보겠습니다. 1. 기본 문법 활용하기 #include void main(){ int i, j; int temp; int a[5] = {75, 95, 85, 100, 50}; for(i=0; i 2023. 8. 20.
친환경 쇼핑몰 프로젝트 구축하기: 백엔드 상품 관리 기능 구현 - 엔티티, 리파지토리, 서비스와 이미지 저장 방식 적용 (4) 이번에는 백엔드 상품 등록 및 변경 기능을 구현해보겠습니다. 먼저 상품 엔티티를 등록합니다. import javax.persistence.* @Entity @Table(name = "products") data class Product( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Long? = null, val name: String, val description: String, val price: Float, val imageUrl: String? = null ) 리파지토리 구현 import com.hsproject.envmarket.products.Product import org.springframework.data.jpa.re.. 2023. 6. 26.
친환경 쇼핑몰 프로젝트 구축하기: 스프링 부트와 JWT를 활용한 회원가입 및 로그인 기능 구현 - 보안 설정 및 인증 과정 개요 (2) 백엔드 회원가입 및 로그인 기능을 구현해보겠습니다. 자바 17, 스프링부트, 그래들, 코틀린, postgres, 스프링 security를 사용합니다. 가장 먼저 저는 사용자보안으로 jwt 를 사용할겁니다. import com.hsproject.envmarket.oauth.RoleName import com.hsproject.envmarket.util.JwtAuthenticationEntryPoint import com.hsproject.envmarket.util.JwtAuthorizationFilter import lombok.RequiredArgsConstructor import org.springframework.beans.factory.annotation.Autowired import org.spr.. 2023. 6. 26.
코틀린의 확장 함수, 유형 별칭, 봉인된 클래스를 알아보자 1. 확장 함수(Extension Functions): 확장 함수는 이미 존재하는 클래스에 새로운 함수를 추가하는 기능입니다. 다음은 문자열(String) 클래스에 확장 함수를 추가하는 예시입니다: fun String.removeWhitespace(): String { return this.replace(" ", "") } fun main() { val str = "Hello World" val newStr = str.removeWhitespace() println(newStr) // 출력: HelloWorld } 위의 예시에서 removeWhitespace()는 String 클래스에 새로운 함수를 추가합니다. str 변수에 대해 removeWhitespace()를 호출하면 공백을 제거한 새로운 문자열을.. 2023. 6. 26.
728x90
반응형