no image
[JS] Math.random() 보안 취약점과 해결방안
들어가며Math.random()에서 보안취약점이 걸려 코드를 수정해야 하는 일이 생겼다. 찾아보니 Math.random()은 완전 랜덤 값을 생성하지 않는다고 한다. Math.random()javaScript에서 0 이상 1 미만 (0 의 난수를 반환하는 함수이다.같은 값을 반복하지 않지만, 내부적으로 의사 난수 생성기(PRNG, Pseudorandom Number Generator)를 사용하기 때문에 완전 랜덤 값은 아니다. 보안 취약점1. 예측 가능한 난수 생성 (Deterministic)Math.random()은 랜덤한 수를 생성하는 것처럼 보이지만 사실 의사 난수 생성기(PRNG)를 기반으로 동작하는, 특정 알고리즘을 통해 계산된 값이다. 브라우저마다 Math.random()의 구현 방식은..
2025.03.15
no image
[후기] 현대IT&E 9기 채용연계형 교육과정 지원 후기 (현 현대퓨처넷, 채용확정형, 한국SW산업협회)
1. 서류2024-03-10 23:59서류는 간단한 인적사항과 자기소개서를 작성했다. 자기소개서 문항은 교육 지원동기, 성격의 특/장점, 채용연계기업 입사 후 포부 총 3가지였으며, 항목 별로 300-500자 이내 작성이었다. 참고로 내가 지원했던 9기의 지원자 수는 500명이었고, 면접은 1/10 이하였다고 한다. (1) 교육 지원동기나는 싸피 교육 중 지원하였기 때문에 싸피가 아닌 현대IT&E 교육이어야 하는 이유를 중점으로 작성했다. 현대 IT&E의 커리큘럼을 참고해서 다른 부트캠프와의 차별성을 적었다.(2) 성격의 특/장점자소설을 많이 작성했으면 쉬운 문항이겠지만 나는 현대IT&E가 두 번째 자소서(싸피가 첫 번재)였기 때문에 내가 생각하는 개발자의 특성과 교육에 대한 마음가짐을 중점으로 작성했다..
2025.03.15
no image
[JS] Symbol 타입 필요성
들어가며자바스크립트를 공부하던 중, ES6부터 Symbol이라는 데이터타입이 추가되었다는 사실을 알았다. Symbol이 대체 뭘까?   SymbolSymbol은 ES6에서 도입된 고유하고 변경할 수 없는 값을 생성하는 원시(primitive) 데이터 타입이다.다른 원시 타입(숫자, 문자열, 불리언 등)과 다르게, 심볼은 유일한 식별자로 사용되며 객체의 프로퍼티 키로 주로 활용된다.심벌 이외의 원시 값은 리터럴을 통해 생성하지만 심벌은 Symbol 함수를 호출해 생성한다.이때 생성된 심벌값은 외부에 노출되지 않으며, 다른 값과 절대 중복되지 않는 유일무이한 값이다.   1. 객체 프로퍼티의 고유한 키 생성문자열 키는 충돌할 위험이 있지만 Symbol을 사용하면 절대 중복되지 않는 고유한 프로퍼티 키를 만들..
2025.03.14
no image
모듈러 연산 (Modular Arithmetic)
Modular Arithmetic모듈러 연산은 어떤 수를 특정한 값(모듈러, modulus)으로 나눈 나머지를 계산하는 연산으로, 쉽게 말해 나머지 연산이다.A mod B = RA : 나눠지는 수 (피제수, Dividend)B : 나누는 수 (제수, Modulus)R : 나머지 (Remainder)   덧셈, 뺄셈, 곱셈의 모듈러 연산모듈러 연산에서 덧셈, 뺄셈, 곱셈은 분배 법칙을 따른다. 연산 후 모듈러를 취하는 것과, 각각 모듈러를 취한 후 연산하는 것이 동일하다는 뜻이다.덧셈(A + B) mod C = [(A mod C) + (B mod C)] mod C뺄셈 (음수가 나올 경우, C를 더해서 양수로 만들 수 있음)(A - B) mod C = [(A mod C) - (B mod C) + C] mod..
2025.03.02
no image
[JAVA | 백준] 15818. 오버플로우와 모듈러
🔗 오버플로우와 모듈러 풀이모듈러 연산에 대해 안다면 쉽게 풀 수 있는 문제이다.   코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(sc.readLine()); int N = Integer.parseInt(st.nextToken()); int M = Integer.parseInt(st..
2025.03.02
no image
[JAVA | 소프티어] 바이러스
🔗  바이러스  풀이K와 P의 최대값은 10⁸, N의 최대값은 10⁶이므로 단순계산은 오버플로우가 날 가능성이 농후하다. (사실 무조건) 따라서 계산할 때마다 1,000,000,007을 나눴다.long result = K;int mod = 1000000007;for(int i=0; i   코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new S..
2025.03.02
no image
[JS] forEach(console.log)
들어가며자바스크립트를 공부하던 중, 예제 1번의 실행결과가 이해되지 않아 forEach()에 대해 찾아보았고, parseInt()와 parseFloat()이 내부적으로 어떻게 실행되는지도 알게 되었다.   forEach()forEach() 함수는 반복문을 통해 배열의 요소를 접근하지 않고도 콜백 함수로 간편하게 배열 요소들을 처리할 수 있는 함수이다. 각 요소의 값뿐만 아니라 인덱스와 배열 자체도 콜백 함수에서 사용할 수 있다. 예제 1const arr = [1, 2, 3];arr.forEach(console.log);forEach는 콜백 함수에 세 개의 인자를 전달한다.1. 배열 요소 (value)2. 현재 인덱스 (index)3. 배열 자체 (array) 따라서 위 코드의 실행 결과는 1 2 3이 한..
2025.03.02
no image
[후기] 현대IT&E 9기 채용연계형 교육과정 지원 후기 (현 현대퓨처넷, 채용확정형, 한국SW산업협회)
현대IT&E 9기 채용연계형 교육과정 지원 후기서류2024-03-10 23:59서류는 간단한 인적사항과 자기소개서를 작성했다. 자기소개서 문항은 교육 지원동기, 성격의 특/장점, 채용연계기업 입사 후 포부 총 3가지였으며, 항목 별로 300-500자 이내 작성이었다. 참고로 내가 지원했던 9기의 지원자 수는 500명이었고, 면접은 1/10 이하였다고 한다.(1) 교육 지원동기나는 싸피 교육 중 지원하였기 때문에 싸피가 아닌, 현대it&e 교육이어야 하는 이유를 중점으로 작성했다. 현대it&e의 커리큘럼을 참고해서 다른 부트캠프와의 차별성을 생각하며 적었다.(2) 성격의 특/장점자소설을 많이 작성했으면 쉬운 문항이지만, 나는 현대it&e를 지원하기 전까지 자소설을 작성해본 적이 없었기 때문에 내가 생각하는..
2025.01.22
no image
'react' refers to a umd global but the current file is a module. consider adding an import instead
문제상황'react' refers to a umd global but the current file is a module. consider adding an import instead해결Vscode를 재시작했다.
2024.11.20