전체보기101 JAVA 오토박싱 & 오토언박싱 Java에서 기본형 데이터와 그에 대응하는 래퍼 클래스 간의 자동 변환을 말한다 Java5 부터 도입되어 코드 작성이 더 간단하고 직관적이게 되었다. 기본형 : int, double, boolean 등 원시 데이터 타입래퍼 클래스 : 기본형을 객체로 감싸는 클래스 (Integer, Double, Boolean 등) 사용 이유 : 객체를 필요로하는 컬렉션(List, Map 등) 이나 제네릭과 함께 사용할 수 있도록 기본형을 객체로 변환 ㅇ 오토박싱기본형 데이터를 해당하는 래퍼 클래스 객체로 자동 변환하는 것public class Example { public static void main(String[] args) { int num = 10; // 기본형 타입 Integer wrappe.. 2024. 12. 2. JAVA 캐스팅 캐스팅이란 객체나 변수의 데이터 타입을 다른 데이터 타입으로 변환하는 것을 말한다 Java에서는 데이터 타입이 엄격하게 처리되므로 타입이 서로 다른 객체나 변수 사이에서 값이나 객체를 처리하려면 캐스팅이 필요하다. 기본형 타입의 캐스팅과 참조형 타입의 캐스팅으로 나뉜다. ㅇ 기본형 타입의 캐스팅작은 범위의 타입을 큰 범위로 변환 : 자동 형변환큰 범위의 타입을 작은 타입으로 변환 : 명시적 형변환int a = 10;double b = a // 자동 형변환int c = (int)b; // 명시적 형변환 ㅇ 참조형 타입의 캐스팅클래스 간의 상속 관계에서 객체 타입을 변환하는 것부모와 자식 사이에서만 가능하며 업캐스팅과 다운캐스팅이라 한다 업캐스팅자식 클래스의 객체를 부모 클래스 타입으로 변환하는 것자동변환자.. 2024. 12. 2. JAVA JVM(Java Virtual Machine) JVM의 기능은 크게 2가지로 말할 수 있다.1. 자바 프로그램이 어느 기기나 운영체제에서도 실행될 수 있도록 하는 것2. 프로그램 메모리를 관리하고 최적화 하는 것 ㅇ 구성 요소Class LoaderJava 바이트 코드를 JVM에 로드한다클래스 파일을 읽고 검증하며 메모리에 적재한다런타임 시 필요한 클래스들을 동적으로 로드한다실행엔진바이트코드를 실제 실행 가능한 형태로 변환한다ㅇ 인터프리터ㅇ JIT 컴파일러가비지 컬렉션사용되지 않는 메모리(객체)를 자동으로 해제하여 메모리 누수를 방지한다Runtime Data Area(메모리 영역)JVM이 프로그램 실행 중 데이터를 저장하고 관리하는 메모리 구조ㅇ Method Area : 클래스 정보, 메서드, 상수 풀 등이 저장ㅇ Heap : 객체가 저장 되는 공간 .. 2024. 12. 2. JAVA String, StringBuffer & StringBuilder String 불변 객체, 한 번 생성된 문자열을 수정할 수 없다가비지 컬렉션으로 제거되어야 한다문자열 연산시 새로운 객체를 만드는 오버헤드가 발생한다객체가 불변하므로 멀티 쓰레드 환경에서 안전하다String : 문자열 연산이 적고, 조회가 많은 멀티 스레드 환경에서 좋다 StringBuffer & StringBuilder가변 객체, 문자열 수정 시 새로 객체를 생성하지 않고 크기를 변경클래스의 메서드가 동일함StringBuffer : 멀티 쓰레드 동기화 적용 스레드 안전StringBuilder : 멀티 쓰레드 동기화 x 스레드 안전 x 특성StringStringBufferStringBuilder불변성불변가변가변스레드 안전스레드 안전스레드 안전(Synchronized)스레드 안전 x속도느림느림빠름사례읽기.. 2024. 12. 2. JAVA 컴파일 과정 개발자가 자바 소스코드 (.java) 를 작성한다자바 컴파일러가 자바 소스파일을 컴파일한다. 이때 자바 소스코드를 바이트 코드(.class) 파일로 변환한다. 아직 컴퓨터가 읽을 수 없는 JVM이 이해할 수 있는 코드다. 컴파일된 바이트 코드를 JVM의 클래스 로더에게 전달한다클래스 로더는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 런타임 데이터 영역 즉 JVM의 메모리에 올린다클래스 로더 세부 동작a. 로드 : 클래스 파일을 가져와서 JVM 메모리에 로드한다b. 검증 : 자바 언어 명세 및 JVM 명세에 명시된 대로 구성되어 있는지 확인한다c. 준비 : 클래스가 필요로 하는 메모리를 할당한다.(필드, 메서드, 인터페이스 등)d. 분석 : 클래스의 상수 풀 내 모든 심볼릭 레퍼런스를 다이렉트 .. 2024. 12. 2. [Web] CSRF & XSS XSS가 사용자가 특정 사이트를 신뢰하기 때문에 발생하는 문제라면 CSRF는 특정 사이트가 사용자를 신뢰하기 때문에 발생하는 문제다. XSS : 크로스 사이트 스크립트악의적인 스크립트를 웹 페이지에 삽입하여 사용자의 브라우저에서 실행되도록 하는 공격 웹 애플리케이션이 사용자로부터 입력 받은 값을 제대로 검사하지 않고 사용할 경우 발생하며 결과로 사용자는 의도치 않은 동작을 수행하거나 쿠키, 세션 등의 정보를 탈취 당한다 동작 방식공격자가 웹 애플리케이션에 악성 스크립트를 삽입사용자가 해당 웹 페이지를 열면 스크립트가 사용자의 브라우저에서 실행스크립트를 통해 쿠키, 세션, 로컬 데이터 등을 탈취하거나 악성 동작 수행대응 방법입력값 검증 및 필터링사용자 입력값에서 스크립트 관련 문자를 필터링출력 시 이스케이.. 2024. 11. 28. [Web] Authentication & Authorization Authentication (인증)Authorization(인가, 권한부여) ㅇ Authentication (인증)사용자가 누구인지 확인 하는 과정사용자가 주장하는 신원이 실제로 맞는지 검증한다 과정사용자가 제공한 자격 증명(아이디, 비밀번호 등)을 확인한다인증 후 사용자에게 접근 가능한 사용자임을 확인 시킨다. ex : 은행 웹사이트에 로그인할 때 계좌번호와 비밀번호를 입력ㅇ Authorization(인가, 권한부여) 인증된 사용자가 무엇을 할 수 있는지 결정하는 과정시스템 리소스에 접근할 권한이 있는지 확인한다 과정사용자 인증이 완료된 후, 사용자가 수행할 수 있는 작업이나 접근할 수 있는 리소스를 제한한다권한은 역할, 그룹, 정책에 따라 정의된다 ex : 로그인 후 계좌 잔액은 조회할 수 있지만 다.. 2024. 11. 28. [Web] JWT(Json Web Tokken) JWT는 JSON 기반의 사용자 인증 및 정보 교환을 위한 토큰이다Web 표준을 따르고 있으며 JSON 객체를 사용하여 정보를 전달한다 필요한 모든 정보를 한 객체에 댐아서 전달하기 때문에 JWT 한 가지로 인증을 마칠 수 있다. 웹 표준을 따르기 때문에 대부분의 언어가 이를 지원한다. ㅇ JWT의 구조위와 같이 .(dot)을 기준으로 세 개의 영역으로 나눌 수 있다헤더JWT의 타입과 서명 알고리즘을 명시한다페이로드토큰에 담길 클레임(데이터)을 포함한다사용자 정보, 권한, 토큰 만료 시간 등클레임의 유형Registered Claims : 표준으로 정의된 클레임iss(발급자), sub(주제), aud(대상), exp(만료 시간) 등이 포함된다Public Claims : 개발자가 정의한 클레임사용자 이름, .. 2024. 11. 28. [Web] OAuth OAuth는 애플리케이션이 사용자 자격 증명을 노출하지 않고도 다른 애플리케이션이나 서비스의 리소스에 접근할 수 있는 권한을 부혀할 수 있는 권한 부여 프레임워크이다. 이런 매커니즘은 구글, 페이스북, 트위터 등 대형 플랫폼에서 사용하고 있으며 타사 애플리케이션 및 웹 사이트의 계정에 대한 정보를 공유할 수 있도록 허용해준다. ㅇ 구성 요소리소스 소유자리소스의 소유자이며 권한을 위임할 수 있는 사용자ex : 소셜 로그인을 사용하려는 사용자 (나)클라이언트리소스 소유자의 데이터를 사용하려는 애플리케이션클라이언트는 리소스 소유자의 허락을 받아 리소스 서버에 접근한다반드시 인증을 통해 권한을 받아야한다ex : 소셜 로그인을 통해 가입하려는 웹사이트리소스 서버보호된 리소스를 저장하고 관리하는 서버클라이언트는 .. 2024. 11. 28. 이전 1 2 3 4 5 6 ··· 12 다음