scanf의 보안 취약점
·
Language/C
scanf 함수의 정의 및 동작 메커니즘 scanf 관련 주요 보안 취약점 및 로직 우회 종합 요약 및 방어 전략
JDK VS JRE
·
Language/JAVA
JDKJDK(Java Development Kit)는 java 애플리케이션을 개발 하기 위한 도구 모음이다. JRE와 개발도구로 이루어져있다. 주요 구성 요소JRE (Java Runtime Environment)javac ( java 컴파일러) : .java 파일을 바이트코드(.class)로 변환하는 컴파일러 jar (java archve) : 여러개의 .class 파일과 리소스 파일을 압축하여 .jar패키지로 묶음 java (java 실행기) : .class 파일을 실행하는 도구 (JVM을 실행시키는 도구)jdb (디버거) : 브레이크포인트 설정, 스택 추적, 변수 값 확인 가능 javadoc :  API 문서 자동생성 도구, java 소스 코드에 있는 주석을 HTML 문서로 변환 ※ 바이트 코드 (B..
제네릭
·
Language/JAVA
제네릭은 클래스 , 인터페이스 , 메서드가 다양한 타입을 일반화해서 처리할 수 있도록 해주는 기능이다.타입을 매개변수로 지저하여 코드 작성시 특정 타입을 나중에 사용자가 지정할 수 있게 된다.  제네릭 클래스// T는 타입 매개변수로, 나중에 구체적인 타입으로 지정됨class Box { private T value; public void setValue(T value) { this.value = value; } public T getValue() { return value; }}public class Main { public static void main(String[] args) { // Integer 타입을 지정한 Box ..
참조
·
Language/JAVA
값과 참조 java의 변수는 두 가지 유형으로 나뉜다.기본 자료형 (Primitive type) : 값을 직접 저장 - int, double, boolean참조 자료형 (Reference type) : 객체의 메모리 주소 저장 - class , array , interface참조 변수는 선언만 하고 초기화 하지 않으면 null 값을 가진다. null은 참조 변수가 어떤 객체도 가리키지 않음을 나타낸다JAVA는 가비지 컬렉션 ( Garbage Collection ) 을 통해 더 이상 참조되지 않는 객체를 자동으로 제거한다.  참조의 비교참조 변수의 비교는 두가지 방식이 존재한다.== 연산자 : 두 참조가 같은 객체를 가리키는지를 비교.equals() 메서드 : 객체의 내용이 같은 지 비교 (일부 클래스에서..
enum
·
Language/JAVA
enum은 열거형을 정의할 때 사용되는 특수한 클래스이다.열거형은 상수들의 집합으로 서로 연관된 상수들을 하나의 타입으로 정의하고 타입 안정성을 제공하여 코드의 가독성을 높여준다.public enum Planet { MERCURY(3.30e+23, 2.4397e6), VENUS(4.87e+24, 6.0518e6), EARTH(5.97e+24, 6.371e6), MARS(6.42e+23, 3.3895e6); private final double mass; // 질량 (kg) private final double radius; // 반지름 (m) Planet(double mass, double radius) { this.mass = mass; ..
java의 예외
·
Language/JAVA
java의 모든 예외는 java.lang.Throwable 클래스를 상속  기본 구조 try { // 예외가 발생할 가능성이 있는 코드} catch (ExceptionType e) { // 예외 처리 코드} finally { // 선택적: 항상 실행되는 코드}  예외 종류1. Checked Exception 컴파일 시점에서 반드시 처리해야 하는 예외예외를 처리하지 않으면 컴파일 오류 발생ex) IOException , SQLException , ClassNotFoundException2. Unchecked Exception런타임 중에 발생할 수 있는 예외 컴파일 시점에서 예외 처리를 강제하지 않음ex) NullPointerException , ArithmeticException 3. Er..
추상화
·
Language/JAVA
추상화는 객체 지향 프로그래밍의 중요한 개념 중 하나로, 불필요한 세부 사항을 숨기고 중요한 부분만을 표현하는 기법이다. java에서는 추상클래스(Abstract Class)와 인터페이스(Interface)를 사용하여 구현한다.  추상 클래스abstract 키워드를 사용하여 선언 하나 이상의 추상 메서드 포함인스턴스 직접 생성 불가능 → 하위클래스가 상속받아 구현 abstract class Animal { abstract void makeSound(); // 추상 메서드 (구현 없음) void eat() { // 일반 메서드 (구현 있음) System.out.println("This animal is eating."); }}class Dog extends Animal..
final
·
Language/JAVA
java에서 final은 변경할 수 없도록 고정하는 역할을 하는 키워드로 변수, 메서드, 클래스에 사용할 수 있다. final 변수 (상수) final 키워드가 붙은 변수는 값을 변경할 수 없다.  초기화 방법에는 두가지가 있다. 첫번째 :  선언과 동시에 초기화 public class Example { public static void main(String[] args) { final int x = 10; System.out.println(x); x = 20; // ❌ 오류 발생 (final 변수는 변경 불가!) }} 두번째 : 생성자를 통한 초기화 (인스턴스 변수의 경우) - 객체마다 개별 값public class Example { final in..
-->
loading