crossorigin="anonymous">
[Java/Short] Object to Map 변환하는 방법 : Uncheked Cast, Jackson 라이브러리 활용
·
Java/Short 개발
해당 글에서는 객체(Object)를 맵(Map) 형태로 변환하는 다양한 방법에 대해 알아봅니다.1) Object to Map 💡 Object to Map- 객체를 Map 형태로 변환하는 이유는 여러 목적으로 가지고 있습니다.- 일반적으로 Object 형태의 객체를 접근하는 방식을 좀 더 편하게 이용하기 위해서 키-값 쌍으로 이루어진 Map 형태로 데이터를 접근하는데 유용합니다.Converting Object To Map in Java | Baeldung 1. 테스트 데이터 구성💡 테스트 데이터 구성- 해당 데이터 구조는 “userInfo”라는 키 내에 properties, additionalInfo, preferences 값으로 구성이 되어 있습니다.- properties는 사용자 정보를 담는 Map..
[Java/Short] 마스킹(Masking) 적용 방법 : 이름, 휴대폰 번호, 이메일, 계좌번호, 주소
·
Java/Short 개발
해당 글에서는 파라미터로 전달 받은 데이터를 마스킹 처리하여 반환하는 방법에 대해 알아봅니다. 1) 마스킹(Masking)💡 마스킹(Masking) - 민감한 정보를 보호하기 위해 데이터를 숨기거나 부분적으로 가리는 기술입니다. 이는 개인 식별 정보(PII)와 같은 민감한 데이터를 안전하게 유지하는 데 사용됩니다. - 예를 들어, 클라이언트가 사용자 정보를 서버로 요청하였을때, 응답값으로 노출이 될 수 있기에 클라이언트에게 전달을 할때 서버내에서 마스킹처리를 하여서 클라이언트로 사용자 정보를 반환해줍니다. 💡 [참고] 아래의 구성사항은.. - 해당 마스킹을 적용한 경우는 클라이언트로부터 어느정도 정재된 상태에 Java 서버로 전달된다는 가정하에 구성을 해보았습니다. - 또한 '정규식'으로 마스킹 처리가 ..
[Java/Short] 팩토리얼 및 끝의 0의 개수(팩토리얼 꼬리) 연산 방법 : Fatorial, Tail Zero
·
Java/Short 개발
해당 글에서는 Java에서 팩토리얼을 구하는 다양한 방법과 팩토리얼의 꼬리인 끝의 0자리 개수를 구하는 방법에 대해 알아봅니다. 1) 팩토리얼(Factorial) : 계승💡 팩토리얼(Factorial) : 계승- 주어진 수에서 1까지의 모든 정수를 곱한 값을 의미합니다.- 예를 들어, 5의 팩토리얼(표기법: 5!)은 5 x 4 x 3 x 2 x 1, 즉 120입니다. 팩토리얼은 조합론에서 주로 사용되며, 특정 숫자 집합에서 가능한 모든 순열의 수를 계산하는 데 사용됩니다.n팩토리얼 계산결과값11121 * 2231 * 2 * 3641 * 2 * 3 * 42451 * 2 * 3 * 4 * 512061 * 2 * 3 * 4 * 5 * 672071 * 2 * 3 * 4 * 5 * 6 * 7504081 * 2 ..
[Java/Short] 1차원 배열, 2차원 배열 간 변환 방법(One Dimension Array to Two Dimension Array)
·
Java/Short 개발
해당 글에서는 1차원 배열을 2차원 배열로 바꾸거나 2차원 배열을 1차원 배열로 바꾸는 방법에 대해 알아봅니다. 1) 1차원 배열을 2차원 배열로 변환방법 1. for문을 이용한 방법 💡 for문을 이용한 방법 1. 1부터 9까지의 숫자가 저장되어 1차원 배열을 구성합니다. 그리고 rows(행)와 cols(열) 변수는 각각 2차원 배열의 행과 열의 수를 저장하고 있습니다. 2. rows(행)와 cols(열)의 크기를 가진 빈 2차원 배열을 선언합니다. 3. row(행)과 cols(열)을 순회하면서 1차원 배열의 값을 2차원 배열에 대입합니다. 4. 결과값을 출력합니다. // 1 int[] oneDArray = {1, 2, 3, 4, 5, 6, 7, 8, 9}; int rows = 3; int cols =..
[Java/Short] SecureRandom을 이용한 랜덤 문자열 생성 방법: 숫자, 문자, 특수문자 조합, 임시 비밀번호
·
Java/Short 개발
해당 글에서는 SecureRandom 클래스를 사용하여서 랜덤 문자열을 생성하는 방법에 대해 알아봅니다. 또한 임시 비밀번호로 이용할 수 있는 방법에 대해서도 알아봅니다. 1) SecureRandom을 이용한 랜덤 숫자/문자(난수) 생성방법💡 SecureRandom을 이용한 랜덤 숫자/문자(난수) 생성방법 - 아래의 글을 참고하시면 이전에 작성한 글을 확인하실 수 있습니다.import java.security.SecureRandom; /** * 공통 유틸 * * @author : lee * @fileName : CommonUtils * @since : 1/22/24 */ public class CommonUtils { private CommonUtils() { } /** * 자릿수(digit) 만큼 랜덤..
[Java/Short] 소문자/대문자 범위 내에 합, 차이 구하는 방법 : ASCII Code 활용
·
Java/Short 개발
해당 글에서는 소문자, 대문자 범위 내에서 합과 차이를 구하는 방법에 대해 알아봅니다. 해당 방법은 ASCII Code를 이용하여 구합니다. 💡[참고] ASCII Code 표 1) 두 개의 문자 간의 차이 💡 두 개의 문자 간의 차이 - 두 개의 문자(char)가 존재하는 경우 소문자, 대문자 범위 내에서 차이를 구하는 방법에 대해 알아봅니다. 1. 소문자 내에서 문자 간의 차이 💡 소문자 내에서 문자 간의 차이 - 소문자의 ASCII Code 범위(97 ~ 122)를 이용하여 문자 간의 차이를 구합니다. 1. 함수는 두 개의 char형 파라미터 a와 b를 받습니다. 2. 두 문자 a와 b를 문자열로 변환한 후, 첫 번째 문자를 가져와 ASCII 코드값으로 변환합니다. 이후 두 ASCII 코드값의 차를 ..
[Java/Short] 소문자/대문자의 왼쪽/오른쪽 회전(이동) 방법
·
Java/Short 개발
해당 글에서는 제공받은 문자열을 기반으로 회전수(rotation) 값에 따라 각각 문자를 왼쪽으로 이동하거나 오른쪽으로 이동하는 방법에 대해 알아봅니다. 1) 소문자의 왼쪽/오른쪽 회전(이동) 방법 1. 그림으로 이해 💡 소문자의 왼쪽 회전(이동) 방법 - "abcdefghijk"의 문자열의 각각의 요소를 분리한 뒤 왼쪽으로 3칸 이동하는 과정입니다.(rotation = -3) 💡 소문자의 오른쪽 회전(이동) 방법 - "abcdefghijk"의 문자열의 각각의 요소를 분리한 뒤 오른쪽으로 3칸 이동하는 과정입니다.(rotation = 3) 2. 소스코드로 이해 💡 소문자 문자열 왼쪽/오른쪽 회전(이동) 방법 - “abcdefghijk”라는 문자열을 제공받았을 때 소문자를 기준으로 rotation(회전 수..
[Java/Short] 하나의 배열 내 요소 비교 방법 : 전체 요소, 독립적 비교
·
Java/Short 개발
해당 글에서는 하나의 배열을 기준으로 요소들 간의 비교 방법에 대해서 알아봅니다. 1) 하나의 요소를 기준으로 전체 요소 비교 방법 1. 하나의 요소 기준 전체 요소 비교 : 본인 포함 💡 하나의 요소 기준 전체 요소 비교 : 본인 포함 - 비교 기준이 되는 arr[i] 값을 기준으로 ‘내 자신’을 포함하여 다음 요소(arr[j])를 비교합니다. int[] arr = {1, 2, 3, 4, 4, 5, 6}; for (int i = 0; i < arr.length; i++) { for (int j = i; j < arr.length; j++) { System.out.println("arr[i] :: " + arr[i] + " arr[j] :: " + arr[j]); } } arr[i] arr[j] 1 1 ..
[Java/Short] IPv4, IPv6 정규 표현식(RegExp) 구성 방법
·
Java/Short 개발
해당 글에서는 IPv4, IPv6에 대한 정규식을 수행하는 방법에 대해 알아봅니다. 1) IPv4 💡 IPv4 - 인터넷 프로토콜 버전 4로 컴퓨터와 같은 디바이스가 인터넷을 통해 서로 통신하기 위해 사용하는 주소 체계입니다. - 각 디바이스에 고유한 식별자를 제공하며, 이를 통해 데이터 패킷이 올바른 위치로 전송될 수 있게 합니다. - IPv4 주소는 32비트로 구성되며, 일반적으로 점으로 구분된 4개의 숫자로 표현됩니다. 1. IPv4 💡 IPv4 형태 - Octet의 범위는 점(.)의 구분자를 기준으로 4자리 모두 0 ~ 255자리의 값을 가집니다. - 또한 0 ~ 255 범위 내에서 ‘0xx 형태의 값’을 가지는 경우 해당 경우에 포함되지 않습니다. Octet Start Range Octet En..
[Java/Short] SecureRandom을 이용한 랜덤 숫자/문자(난수) 생성 방법
·
Java/Short 개발
해당 글에서는 Math 함수가 아닌 SecureRandom 함수를 이용하여 랜덤 한 숫자/문자(난수) 생성방법에 대해 알아봅니다. 1) Math.random() 함수를 사용하지 않는 이유 💡 Random 함수를 사용하지 않는 이유 - SonarQube를 통해서 Security Hotspots로 Math.random() 함수에서 아래와 같은 문제점이 발생하였습니다. - 여기에서 이 의사 난수 생성기를 사용하는 것이 안전한지 확인하세요.(Make sure that using this pseudorandom number generator is safe here.) - 해당 문제는 ‘난수 생성‘에 대해 보안에 민감하다는 문제점이 발생합니다. 이는 Math.random() 역시 난수를 생성하는 데 있어서 보안적으..