Backend/Java 14

[Java]java.net 패키지 : InetAddress/URL/URLConnection 클래스

1. InetAddress 클래스InetAddress 클래스는 자바의 java.net 패키지에서 IP 주소와 관련된 정보를 다루는 클래스입니다. InetAddress는 네트워크에서 호스트의 도메인 이름이나 IP 주소를 쉽게 다룰 수 있게 해줍니다. 예를 들어, 웹 사이트의 URL을 IP 주소로 변환하거나, IP 주소를 호스트 이름으로 변환할 수 있습니다. InetAddress 클래스의 주요 개념IP 주소: 네트워크 상에서 컴퓨터를 식별하는 고유한 주소입니다. 예를 들어, 192.168.0.1 같은 형태로 네트워크 상의 각 장치를 구분합니다.도메인 이름: IP 주소에 대응하는 문자열 형태의 주소로, www.example.com과 같은 형태를 가집니다. InetAddress 클래스는 도메인 이름을 IP 주소..

Backend/Java 2024.11.01

공유 자원의 문제와 동기화

공유 자원 (Shared Resource)여러 스레드가 동시에 접근하거나 사용하는 자원으로, 메모리, 변수, 파일, 데이터베이스 연결 등이 포함됩니다.공유 자원은 여러 사람이 함께 사용하는 공용 공간과 같습니다. 예를 들어, 회사 내 프린터가 여러 사람이 동시에 사용하려고 할 때, 누군가가 인쇄 작업을 완료하기 전까지는 다른 사람이 사용할 수 없도록 해야 데이터의 일관성을 유지할 수 있습니다.예시: 두 스레드가 동시에 은행 계좌에서 돈을 출금하려고 할 때, 잔고는 두 스레드가 공유하는 자원이 됩니다. 경쟁 상태 (Race Condition)여러 스레드가 동시에 자원에 접근하여 예기치 않은 결과가 발생하는 상황을 말합니다. 스레드가 경쟁적으로 자원에 접근하면서, 올바르지 않은 값이 저장되거나 데이터가 손상..

Backend/Java 2024.11.01

[Java]Thread

스레드 생성스레드 생성과 실행은 Thread 클래스와 Runnalbe 인터페이스를 통해 이루어집니다. 1. Thread 클래스를 상속받아 생성하기Thread 클래스를 상속하여 새로운 스레드를 생성하는 방법입니다.Thread 클래스의 run() 메서드를 오버라이드하여, 스레드가 수행할 작업을 정의합니다.start() 메서드를 호출하면 새로운 스레드가 생성되어 run() 메서드를 실행합니다.2. Runnable 인터페이스를 구현하여 생성하기Runnable 인터페이스를 구현하여 스레드를 생성하는 방법입니다.run() 메서드를 오버라이드하여 스레드가 수행할 작업을 정의합니다.Thread 클래스의 생성자에 Runnable을 구현한 객체를 전달하여 스레드를 생성하고, start() 메서드를 호출하여 실행합니다.스레..

Backend/Java 2024.11.01

[Java]Enum(열거형)

Enum정의 : 열거형 enum 키워드를 사용해 정의하며, 여러 상수를 모아 하나의 데이터 타입으로 표현할 수 있다.예시 ➡️ 요일 : 월,화,수,목,금,토,일             계절 : 봄, 여름, 가을, 겨울             주사위 : 1,2,3,4,5,6 메서드 영역: Week라는 Enum 클래스에 포함된 상수들은 Week.class 파일이 메서드 영역에 로드되면서 함께 생성됩니다. Enum 상수는 각 상수에 대한 **고유의 참조(포인터)**를 가지고 있으며, MONDAY와 SUNDAY 같은 Enum 상수들이 메서드 영역에 존재하게 됩니다.힙 영역: Enum 상수들은 메서드 영역에 로드된 참조를 통해 힙(heap) 영역에 객체로 생성됩니다. 힙 영역의 Week 객체는 메서드 영역의 상수 참..

Backend/Java 2024.10.31

[Java] 커넥션 풀

Connection Pool : 데이터베이스와의 연결을 효율적으로 관리하기 위한 미리 생성된 데이터베이스 연결의 집합.애플리케이션이 데이터베이스에 연결할 때마다 새로운 커넥션을 생성하고 닫으면 성능 저하가 발생할 수 있기 때문에, 이러한 과정을 최적화하기 위해 커넥션 풀을 사용합니다. 미리 일정 수의 커넥션을 준비해 두고, 애플리케이션이 요청할 때 즉시 사용할 수 있도록 하여 성능을 향상시킵니다. [Connection 객체 생성 과정]1️⃣ 애플리케이션에서 DB 드라이버를 통해 커넥션 조회2️⃣DB 드라이버는 DB와 TCP/IP 커넥션을 연결3️⃣DB 드라이버는 TCP/IP 커넥션이 연결되면 아이디와 패스워드, 기타 부가 정보를 DB에 전달4️⃣DB는 ID,Password를 통해 내부 인증을 거친 후 내..

Backend/Java 2024.10.31

[Java] 중첩클래스

중첩클래스를 통해 외부 클래스와 연관된 내부클래스를 쉽게 정의, 클래스 간 관계를 명확하게 표현할 수 있습니다.중첩클래스는 정적(static)중첩 클래스와 비정적(non-static) 중첩클래스(내부 클래스)로 나뉩니다.class A{//멤버 이너클래스 class B{ ... } //인스턴스 멤버클래스 static class C { ... } //정적 멤버클래스 //지역 이너클래스 void abc(){ class D { ... } //지역 클래스 }}종류구현 위치사용할 수 있는 외부 클래스 변수생성 방법인스턴스 내부 클래스외부 클래스 멤버 변수와 동일외부 인스턴스 변수, 외부 전역 변수외부 클래스 인스턴스를 만든 후 생성정적 내부 클래스외부 클..

Backend/Java 2024.10.31

[Java]Java IO(Exception/throw/File/스트림)

1. 예외(Exception)란?예외는 프로그램 실행 중 발생하는 비정상적인 상황을 의미합니다. 예를 들어, 배열 인덱스 초과, 파일을 찾을 수 없음, null 값을 참조하려고 할 때 발생하는 오류 등이 예외입니다.예외가 발생하면 프로그램의 정상적인 흐름이 깨질 수 있으므로, 예외를 처리해야 프로그램이 정상적으로 종료되거나 안정적으로 실행됩니다.if문을 사용하여 예외 상황을 처리하는 방법은 프로그램이 예외를 발생시키지 않고, 조건을 확인하여 예외가 발생할 가능성이 있는 상황을 미리 처리하는 방식입니다 예를 들어, 숫자를 0으로 나누는 오류는 미리 조건을 확인하여 방지할 수 있습니다.2. 예외의 종류자바에서 예외는 크게 두 가지로 나뉩니다.Checked Exception (검사된 예외):Unchecked ..

Backend/Java 2024.10.24

[Java] Collection

컬렉션 프레임워크 : 데이터를 효율적으로 저장하고 관리하기 위한 다양한 자료구조 클래스를 제공하는 라이브러리. 데이터의 추가, 삭제 검색, 정렬 등의 작업을 쉽게 처리 할 수 있음.ArrayList : 배열과 비슷하지만 크기가 동적으로 변함.배열처럼 인덱스를 사용하여 요소에 접근할 수 있지만, 요소의 추가와 삭제가 더 유연.요소가 추가되면 자동으로 크기가 조정되며, 중복된 값을 허용ArrayList의 주요 기능: add() : 요소 추가get() : 인덱스의 요소를 가져옴.size() : 리스트의 크기(개수)toString() : ArrayList의 모든요소를 문자열로 출력형변환의 필요성: 기본적으로 Object 타입을 저장. 따라서 특정 타입의 요소를 가져올 때 다운캐스팅이 필요함.System.out...

Backend/Java 2024.10.23

[java] System/Data/Calendar/Random/Array 클래스

[복습]jar : 압축패키지클래스내장 라이브러리Oraclejava.lang 패키지import(x)ObjecttoString()equal()String Buffer/ String/ StringBuilderMathWrapper형변환Integer.parseIntDouble.parserDoubleAuto Boxing / UnBoxing기본자료형 참조 객체화 개념[오늘 내용 정리]시간, 날짜 관련 => 달력Date / Calendar문자열StringTokenizer      => splitStringJoiner            => join난수Random                  =>Math.random() is-a(상속)관계와 has-a(구성)관계[is -a]객체 간의 관계를 설명 : 상속과 구성을 구..

Backend/Java 2024.10.22

[java]java.lang 패키지

:복습기본 프로그램 문법자료구조자료형기본자료형 배열변수 / 상수연산자형변환흐름제어조건에 의한 분기조건에 의한 반복기타 제어객체 문법 : 한 개의 클래스패키지packageimport패키지 컴파일클래스interfaceimplement / extends상수추상메서드default / static / private 메서드일반클래스 / 추상클래스멤버 필드인스턴스 / 클래스(static)메서드인스턴스 / 클래스(static)추상메서드오버로딩가변인자메인메서드constructor객체지향 프로그램 문법 :상속,은닉,추상,다형은닉접근지정자setter / getterthis / this()상속extends / implementsoverridingsuper / super()final다형참조 자료형 형변환instanceof추상추..

Backend/Java 2024.10.21