전체 글(113)
-
배열
배열의 선언과 생성int[] students; //1. 배열 변수 선언students = new int[5]; //2. 배열 생성배열을 사용하려면 `int[] students;` 와 같이 배열 변수를 선언해야 한다.일반적인 변수와 차이점은 `int[]` 처럼 타입 다음에 대괄호( `[]` )가 들어간다는 점이다.배열 변수를 선언한다고해서 아직 사용할 수 있는 배열이 만들어진 것은 아니다!`int a` 에는 정수를, `double b` 에는 실수를 담을 수 있다.`int[] students` 와 같은 배열 변수에는 배열을 담을 수 있다. (배열 변수에는 10, 20 같은 값이 아니라 배열이라는 것을 담을 수 있다)배열을 사용하려면 배열을 생성해야 한다.`new int[5]` 라고 입력하면 오른쪽 그림과 같..
2025.09.15 -
Scanner 학습
Scanner`System.out` 을 통해서 출력을 했듯이, `System.in` 을 통해서 사용자의 입력을 받을 수 있다. 그런데 자바가 제공하는 `System.in` 을 통해서 사용자 입력을 받으려면 여러 과정을 거쳐야해서 복잡하고 어렵다.자바는 이런 문제를 해결하기 위해 `Scanner` 라는 클래스를 제공한다. 이 클래스를 사용하면 사용자 입력을 매우 편리하게 받을 수 있다.Scanner scanner = new Scanner(System.in);`이 코드는 객체와 클래스를 배워야 정확히 이해할 수 있다. 지금은 `Scanner` 의 기능을 사용하기 위해 `new` 를 사용해서 `Scanner` 를 만든다 정도로 이해하면 된다. `Scanner` 는 `System.in` 을 사용해서 사용자의 입..
2025.09.15 -
LWE, Lattice, Reduction 이해하기
📘 LWE, Lattice, Reduction 이해하기1. LWE (Learning With Errors)정의문제: 비밀 벡터 s ∈Zqn를 찾는 문제.주어진 식은 정확하지 않고 작은 오차(error) 가 포함된 선형방정식들.(a, a⋅s+e) where a∈Zqn, e∼χ목표: 여러 샘플로부터 비밀 s를 추측.왜 어려운가?오차가 없다면 → 가우스 소거법으로 쉽게 풀림.오차가 있으면 → 소거 과정에서 잡음이 증폭되어 비밀을 알아낼 수 없음.활용양자 이후(Post-Quantum) 암호의 핵심 기반:키 캡슐화 (KEM), 전자서명동형암호, 속성 기반 암호영지식증명2. Lattice (격자)정의격자(Lattice): 선형독립 벡터 e1,…,em로 생성된 이산 집합.벡터공간과 유사하지만 불연속적(discre..
2025.09.09 -
보안 예비 지식 (Preliminaries)
1. 나눗셈 정리 (Division Theorem)정의임의의 정수 a, 양의 정수 n에 대해,유일한 정수 q,r이 존재하여 다음을 만족: a=nq+r, 0≤rq: 몫(quotient)r: 나머지(remainder)예시a=39, n=7 ⇒ q=5, r=4 a = 39, 39 = 7 × 5 + 4.2. 자연수의 최소원리 (Well-Ordering Principle)정의자연수 집합 N의 임의의 공집합이 아닌 부분집합 S는 최소 원소 m을 가진다.∀S⊆N, S≠∅ ⇒ ∃m∈S s.t. ∀s ∈ S, m≤s활용나눗셈 정리와 같은 기본 정리를 증명하는 데 사용.3. 합동 (Congruence)정의m≥1인 정수에 대해, 두 정수 a, b가 mod m에서 합동이면:a ≡ b (mod m) ⇔ m ∣ (a−b)..
2025.09.09 -
spring 환경설정
최근에는 IntelliJ, springboot, Gradle을 많이 쓰는 추세이다.라이브러리 살펴보기Gradle은 의존관계가 있는 라이브러리를 함께 다운로드 한다. 스프링 부트 라이브러리spring-boot-starter-webspring-boot-starter-tomcat: 톰캣 (웹서버) spring-webmvc: 스프링 웹 MVC spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View) spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅spring-boot spring-core spring-boot-starter-logging logback, slf4j 테스트 라이브러리spring-boot-starter-test junit: 테스트 프레임..
2025.09.08 -
변수
패키지(package)- 패키지는 지금 단계에서는 자바 파일을 구분하기 위한 폴더로 이해하면 된다.- `variable` 라는 패키지를 만들었다면, 해당 패키지에 들어가는 자바 파일 첫줄에 `package variable;` 와 같 이 소속된 패키지를 선언해주어야 한다.- 자바 파일이 위치하는 패키지와 `package variable` 선언 위치가 같아야 한다. int a- 숫자 정수( `integer` )를 보관할 수 있는 이름이 `a` 라는 데이터 저장소를 만든다. 이것을 변수라 한다. - 이렇게 변수를 만드는 것을 변수 선언이라 한다. - 이제 변수 `a` 에는 숫자 정수를 보관할 수 있다. - 숫자 정수 뿐만 아니라 문자, 소수와 같이 다양한 종류 값을 저장할 수 있는 변수들이 있다. 우선은 숫자..
2025.09.08