본문 바로가기

분류 전체보기74

[Java & Spring] Version 비교 방법 - version4j Spring (Java) Version 비교 방법 - version4j다양한 상황에서 버전 체크, 비교를 해야하는 경우가 존재한다. git, 앱 버전, java, 자체 프로그램 버전 등등,,  1. Version 이란? version 은 특정 매체에서 제작, 또는 수정이 이루어질때의 제작되거나, 수정된 각각의 판본을 뜻한다.소프트웨어에서의 버전은 수정사항, 기능의 추가사항, 버그수정 등 다양한 작업이후 배포될때 각각의 의미에 맞는 버전을 올리고 배포 작업이 이루어 지게 된다.  Version 은 (.) dot(점) 을 기준으로 구분되며, 다음과 같은 순서에 의해 정의되어있다.Major Version . Minor Version . Build or Maintenance Version = 1.0.1 Majo.. 2024. 6. 25.
AES-256 - Encrypt(암호화) For Java 얼마전, 외부 서비스 업체에서 제공하는 데이터를 DB 에 적재해야 하는 신규 기능 개발이 있었고,필수 요구사항중에서 'AES256 암호화 필수 (Base64)' 항목이 존재 했고 설계,분석,개발 과정에서 알게된 내용을 정리한다.  해당 글에서는 AES/CBC/PKCS5Padding 방식으로 Java 테스트 코드를 구현했다.  요구사항 및 Flow 1. 외부 업체 -> 관리서버 API 요청 (필수 파라미터 3개, 전부 암호화) 2. 요구 데이터 응답(암호화) 3. 응답 데이터 기반, 데이터 생성 4. Batch Task 로 데이터 Receive 및 DB 적재 해당 요구사항을 만족하기 위해 AES256(Base64) 암호화에 대해 알아보자.   1. AES256 이란?AES (Advanced Encrypti.. 2024. 5. 26.
[Spring Security] x-frame-option 헤더 설정(iframe) 목차 개요 iframe 이란 해킹 공격 방어 방법 해결 방법 * 도메인 ~ 에서 연결을 거부 했습니다 (net::ERR_BLOCKED_BY_RESPONSE) 최근 같은 그룹사의 다른 도메인에서 iframe 으로 내가 관리하는 도메인의 화면을 호출 하는 작업이 있었다. 하지만, 그룹사 서버 배포 이후 ERR_BLOCKED_BY_RESPONSE 등의 오류 메시지가 출력되며, 해당 화면이 노출 되지 않는 문제가 발생했다. 관련된 내용들을 알아보고, 어떤 흐름으로 해결방법을 찾았는지 기술하겠다. 단순 적용 방법이 급한 분은 목차의 '해결방법' 클릭하세요. 1. iframe 이란 우선 iframe 에 대해서 알아야 할것 같다. iframe 이란? 웹 페이지 안에 또 다른 웹페이지를 삽입하는것. 최근에는 ifram.. 2024. 4. 3.
[Redis] Spring Boot - Redis Pub, Sub 구현&응용 목차 Spring Boot - Redis 환경 구성 테스트 개요 서버간 데이터를 동기화 하기 위해, 방법을 찾다가 Redis Pub/Sub 을 사용하는것이 현상황에서 최선이라는 판단을 내리고, 알아보게 되었다. (A - B 각서버간 방화벽 오픈 X, 통신불가 , 하지만 Redis 가 존재하는 C 서버에는 A, B 서버 모두가 바라보고 있음.) Redis를 채택한 또하나의 이유중 하나는, Message를 저장하지 않는 이유때문도 존재한다(Kafka는 메세지내용도 저장함) 메시지 브로커를 구현하는 것이기 때문에, 구현자가 원하는 비지니스 로직을 덧붙힌다면 채팅, 알림, 작업 큐, 동기화 등등 다양한 작업을 할 수 있을것이다. 흐름 Client Message 요청 -> Controller -> Service .. 2024. 3. 29.
[Redis] Redis를 이용한 임시번호 발급(OTP, 임시비밀번호, 인증문자) - Spring Boot 목차 Random String(임시 인증 번호 생성 OTP) Redis에 OTP(임시번호) 저장 유효 OTP 인증 추가적인 흐름 개요 임시 비밀번호 발급, 제한시간내에 발송된 SMS, LMS 와 같은 기능 구현을 위해 테스트 코드 작성. 요건 영어 대,소문자 + 숫자 조합 n자 Random String 인증번호 발급 이후 n분 후 파기 환경 Spring Boot 2.7.10 Redis 7.0.10 Docker 기본적인 Spring Boot 환경 + Redis 연동 및 설정 완료 기준으로 작성합니다. * 연동 설정 관련은 아래 포스팅 참고 https://lucas-owner.tistory.com/57 [Redis] Redis + Spring boot 연동 (2) 1. Redis + Spring Boot 연.. 2024. 3. 23.
[운영 장애 회고] TypeError: undefined is not an object 에러(JS) -#1 오류 발생에 대한 전체적인 흐름 및 회고. 아래 JS 문법에 대한 방법은 2-2번 항목에 존재. TypeError: undefined is not an object (evaluating 'this.error.use = msg') **환경 Front: Vue2 + option API Back: Spring Boot(Rest) 1. 장애 상황 및 이슈 - 글 작성일 기준일 오후중 운영환경에서 발생한 장애 이슈. 클라이언트에게 보여지면 안되는 오류얼럿 메시지가 노출되고, 사용자의 요청 결과를 출력하지 않는 이슈발생 - 흐름 프론트단에서의 클릭 이벤트 발생 -> 서버단에서의 각종 유효성 조회 및 검증 -> 검증통과시 http status 200 return - end front 의 콜백함수에는 서버단에서 발생할.. 2024. 1. 10.
[Oracle] ORA-28002: the password will expire within 7 days 메시지 ORA-28002: the password will expire within 7 days 오류 Spring Boot 다중 DataSource 를 설정하기 위해, 오랜만에 Oracle DB 를 확인 하던중 발생한 에러 메시지였다. 에러메시지 뜻: 해당 계정은 7일뒤 비밀번호가 만료된다. 필자의 경우, DB관리 최고 권한인 SYSDBA 권한이 있는 ROOT 계정의 경우였다. 이러한 경우, 해결방안으로 간단하게 계정의 비밀번호 만료일자를 업데이트 시켜주면 된다. 우선 계정의, 패스워드 만료일자를 확인해보자. # select EXPIRY_DATE, CREATED from dba_users where username='계정명'; select EXPIRY_DATE, CREATED from dba_users wher.. 2023. 12. 12.
[Linux] alias로 자주쓰는 커맨드 설정 alias 설정으로 자주쓰는 명령어 커맨드 설정 Shell 커맨드는 다양한 분야에서 사용하고 있고, 커맨드의 수 또한 굉장히 많다. (조합하거나, 다양한 옵션들 등등) alias 설정을 해야겠다고 생각한 이유는, 현재 진행중인 사내 프로젝트의 경우 수동으로 배포를 진행하는데, WAS 서버에 있는 Tomcat 에 war 파일을 배포하는 방식을 사용하고 있다. 물론 Shell Script 를 통해서 war 파일 이름 변경, tomcat 실행 등등 자동으로 하긴 하지만, 서버 1대당 2개의 war 파일을 배포하고, 로그확인까지 해야 한다. 현재 프로세스로 진행한다면 수많은 cd 커맨드,, tail 등등 폴더 이곳저곳을 옮겨 다니며 많은 커맨드를 작성해야 한다. 이걸 자동화를 할 수 없을까,, 생각하다가 ali.. 2023. 10. 25.
[Java] var 키워드란? (간단예제포함) Java - Var 키워드 java의 var 키워드는 java 10 부터 도입된 키워드 이다. 해당 키워드는, 지역 변수의 타입 추론을 위한 키워드 이다. 변수 선언시, 타입을 생략 가능하게 한다. var 키워드의 경우 Compile 시점에 타입을 추론하게 된다. 즉 Compile 시점에 타입이 이미 결정된다. 이때 컴파일러가 타입을 추론할 수 없을 경우, Compile Error 가 발생하게 된다. 즉 이걸 반대로 생각한다면, RunTime 시점에 타입에 대한 연산이 일어나지 않는다는 말이다. var 키워드의 장단점 장점 가독성 향상: 코드가 간결해지고, 중복된 타입 선언을 제거하여 가독성이 향상된다. 유지 보수성 증가: 코드의 변경이 있을때, 변수의 타입을 모두 변경하지 않아도 되어, 유지보수성이 증.. 2023. 9. 26.