Gradle 의존성 버전은 최신버전으로 추가한다. dependencies { implementation group: 'com.github.ulisesbocchio', name: 'jasypt-spring-boot-starter', version: '3.0.4' } 암호화 예시 코드 평문을 암호문으로 바꿔보겠다 import org.assertj.core.api.Assertions; import org.jasypt.encryption.pbe.StandardPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; import org.junit.jupiter.api.Test; import org.springframewor..
에러 내용 Invalid character found in method name. HTTP method names must be tokens 에러 상황 테스트 서버에 프로젝트를 배포한 뒤 테스트 하려고 Postman에서 POST 요청을 했더니 위와 같은 에러가 발생했다. 에러 설명 이 에러는 HTTP 요청에 유효하지 않은 문자가 포함되어 발생한 에러이다. 이 에러의 주요 원인은 서버가 SSL 설정이 안 되어 있어 HTTPS가 활성화 되어있지 않은 상태에서 HTTPS 요청을 보낸 경우이다. 테스트 용도로 사용하는 서버라서 SSL 설정을 하지 않았다. 당연히 HTTPS 설정을 하지 않았는데 HTTPS 요청을 보냈으니 에러가 난 것이다. 그 외에도 포트번호나 메소드 이름이 틀릴 수 있으니 URL을 잘 확인하고..
리액트 템플릿을 이용하여 페이지 이동 중 url에 #(해시)가 붙어 있는 것을 발견했다. 리액트에서 url 에 #(해시)가 붙는 경우는 단일 페이지 애플리케이션(SPA, Single Page Application)을 이용할 경우 발견할 수 있다. 하나의 HTML 페이지 안에서 모든 기능이 동작하는 것을 SPA라고 한다. 모든 기능이 하나의 HTML 페이지 안에서 동작하기 때문에, 페이지 로딩 속도가 빠른것이 장점이라고 할 수 있다. SPA 화면에서 #(해시)가 붙는 이유는 주로 웹 브라우저의 페이지 이동을 감지하고 해당 url을 분석해서 해당 페이지의 컴포넌트를 빠르게 렌더링하기 위해서이다. #(해시)가 없으면 웹 브라우저는 실제로 서버에 새로운 페이지를 요청할 수 있다. 본인은 템플릿 페이지를 커스텀하..
some() some 함수는 배열의 각 요소에 대해 제공된 함수의 조건을 최소한 하나의 요소가 만족하면 true를 반환하고, 모든 요소가 조건을 만족하지 않으면 false를 반환한다. 기본 문법은 아래와 같다. array.some(function(currentValue, index, array), thisValue) currentValue : 현재 처리 중인 요소의 값 index : 현재 처리 중인 요소의 인덱스 array : some을 호출한 배열 thisValue (옵션) : 함수 내에서 사용할 this 값 아래는 예시 코드이다. const array = [1, 2, 3, 4, 5]; // 배열의 요소 중 하나라도 3보다 큰지 확인 const result = array.some(function(e..
에라토스테네스의 체란? 에라토스테네스의 체(Sieve of Eratosthenes)는 소수를 찾는 알고리즘 중 하나로, 고대 그리스의 수학자 에라토스테네스가 개발했다. 이 알고리즘은 주어진 범위 내의 모든 소수를 찾아내는 효율적인 방법을 제공한다. 에라토스테네스의 체 동작과정 ① 초기화 - 2부터 시작해서 1부터 주어진 숫자(n)까지의 모든 수를 포함하는 리스트를 생성한다. ② 0, 1 제거 - 0과 1은 소수가 아니므로 제거하거나 제외한다. ③ 2의 배수 제거 - 0과 1의 다음 숫자인 2부터 시작한다. 2는 소수이므로, 2를 제외한 2의 배수들은 모두 제거한다. ④ 다음 소수 찾기 - 아직 제거되지 않은 가장 작은 수를 소수로 선택한다. 이를 편의상 p라고 칭한다. ⑤ p의 배수 제거 - p를 제외한..
문제 정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ n ≤ 10,000 입출력 예시 예시1 입력 : n = 24 출력 :[1, 2, 3, 4, 6, 8, 12, 24] 설명 : 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다. 예시2 입력 : n = 29 출력 :[1, 29] 설명 : 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다. 내 풀이 function solution(n) { return Array(n).fill(1).map((v,i) => v + i).filter((_, idx) => n % (idx+1) === 0); ..
1. byte[] → String 으로 변환하는 일반적인 방법 아래 4가지 방법을 사용할 수 있다. String happy = "Happy !!"; byte[] byteHash = happy.getBytes(); // 1번 String plainText1 = new String(byteHash); // 2번 String plainText2 = new String(byteHash, StandardCharsets.UTF_8); // 3번 String plainText3 = new String(byteHash, Charset.forName("UTF-8")); // 4번 String plainText4 = new String(byteHash, Charset.forName("EUC-KR")); 2. byte[] ..
문제 두 자연수 M, N을 입력 받아, M부터 N까지 각 자리수의 빈도수를 합하는 프로그램을 제작하시오. 예를 들어 129와 137이 주어졌을 때, 129, 130, 131, 132, 132, 133, 134, 135, 136, 137 숫자가 나오고, 이 숫자들의 자릿수 별 숫자 빈도수를 계산하여, 0부터 9까지의 빈도수 값을 반환한다. 입력 값은 M, N은 10,000 이하의 자연수이며, 0부터 9까지의 자릿수 별 빈도수를 배열 형태로 반환한다. 입력 형식 1번 예제 : M=129, N=137 2번 예제 : M=1412, N=1918 3번 예제 : M=4159, N=9182 출력 형식 1번 예제 : [1, 10, 2, 9, 1, 1, 1, 1, 0, 1] 2번 예제 : [100, 614, 101, 10..
문제 문자열 s가 주어진다. s가 pangram 인지 판단하는 함수, solution을 완성하라. pangram이란 모든 알파벳이 사용된 문장을 말한다. 입력 형식 s는 길이가 1이상 1,000 이하인 문자열이다. s는 소문자 알파벳과 공백('')으로만 구성된다. 출력 형식 문자열이 pangram인지 구한다. 문자열이 pangram이면 true, 그렇지 않으면 false를 출력한다. 내 풀이 function solution(s) { let map = new Map(); const alphabet = Array.from({length : 26}, (_,i) => String.fromCharCode(97+i)); let strSet = [...new Set(s)]; strSet.forEach((v,i) =>..