반응형

JAVA/Java Platform, Standard Edition 11

[공식 문서] 자바 서버 소켓(Server Socket) 완벽 정리 : 개념, 생성자, 주요 메소드

https://docs.oracle.com/javase/8/docs/api/java/net/ServerSocket.htmlServerSocket(서버 소켓)서버 소켓을 구현하는 Java 네트워크 프로그래밍 클래스네트워크에서 들어오는 요청을 기다리고, 요청을 처리한 후 결과를 요청자에게 반환하는 역할SocketImpl 클래스의 인스턴스를 사용하여 실제 작업 수행애플리케이션에서 소켓 구현을 구성하기 위해 소켓 팩토리를 변경할 수 있음용어backlog(백로그) : 서버 소켓이 클라이언트의 연결 요청을 얼마나 대기할 수 있는지를 나타내는 값. 서버가 한 번에 처리할 수 없는 연결 요청이 있을 때, 그 요청들을 대기열에 쌓아 두는 개념. 대기할 수 있는 최대 연결 수를 지정하며, 백로그가 50이면 서버는 최대 5..

[공식 문서] 자바 클라이언트 소켓(Client Socket) 완벽 정리 : 개념, 생성자, 주요 메소드

https://docs.oracle.com/javase/8/docs/api/java/net/Socket.htmlSocket클라이언트 소켓을 구현하는 Java의 네트워크 프로그래밍을 위한 클래스두 개의 머신 간 통신을 위한 endpoint(종단점) 역할을 함서버와의 연결을 관리하는 역할바인딩 없이도 사용 가능public class Socketextends Objectimplements CloseableSSLSocket이 직접적인 서브클래스로 존재하며, 이는 보안 소켓(SSL/TLS) 통신을 제공함용어Remote Address(원격 주소) : 상대방(서버)의 주소Local Address(로컬 주소) : 내 주소(클라이언트 또는 서버 자신)Binding(바인딩) : 소켓을 특정 IP와 포트에 연결하는 과정. ..

[공식 문서] 자바 스레드(Thread) 완벽 가이드 : 생성부터 동기화까지

Thread프로그램 내에서 독립적으로 실행되는 작업 흐름(execution flow)멀티스레딩을 사용하면 여러 작업을 동시에 수행할 수 있기 때문에 프로그램의 성능이 향상됨생성 방법Thread 클래스 상속class MyThread extends Thread { public void run() { // 반드시 run() 메서드를 오버라이딩 해야 함 System.out.println("Thread 실행 중..."); } } public class ThreadExample { public static void main(String\[\] args) { MyThread thread = new MyThread(); // 스레드 ..

[공식 문서] 자바 날짜/시간 포맷(DateFormat) 변환 완벽 가이드

https://docs.oracle.com/javase/8/docs/api/java/text/DateFormat.htmljava.text.DateFormat날짜와 시간을 특정 형식(Format)으로 변환하거나, 문자열을 날짜 객체(Date)로 변환(Parsing)하는 기능을 제공하는 추상 클래스날짜 -> 문자열, 문자열 -> 날짜 변환을 수행하는 클래스로케일(Locale)에 맞춰 자동으로 형식을 조정할 수 있음사용 이유언어 및 국가 설정(Locale)에 따라 자동으로 날짜 형식을 맞춤날짜(Date) -> 문자열(String) 변환(Formatting)문자열(String) -> 날짜(Date) 변환(Parsing)시간대(TimeZone) 설정 가능추상 클래스이므로 직접 객체를 생성하지 않고, 하위 클래스(..

[공식 문서] 자바 Timer 클래스 완벽 가이드 : 백그라운드 작업 예약과 반복 실행

https://docs.oracle.com/javase/8/docs/api/java/util/Timer.htmlTimer(java.util.Timer)백그라운드 스레드에서 특정 작업을 일정 시간 뒤 실행하거나, 주기적으로 반복 실행 할 수 있도록 도와주는 클래스특징백그라운드에서 실행됨내부적으로 싱글스레드를 사용하여 작업을 실행 내부적으로 싱글스레드를 사용하여 작업을 실행Thread-safe 하여 여러 스레드에서 Timer 객체 공유 가능한 번 실행 또는 반복 실행 가능schedule() : 일정 시간이 지난 후 한 번만 실행scheduleAtFixedRate() / schedule() : 일정 시간마다 반복 실행메소드실행방식작업이 오래 걸릴 경우실행 주기schedule()Fixed-delay(고정 지연)..

[공식 문서] 멀티스레딩 구현을 위한 기본 인터페이스(Runnable)

https://docs.oracle.com/javase/8/docs/api/java/lang/Runnable.htmlRunnableJava에서 멀티스레딩을 구현할 때 사용되는 기본 인터페이스쓰레드에서 실행될 코드를 정의하는 인터페이스람다 표현식이나 메소드 참조로 사용할 수 있는 함수형 인터페이스(@FunctionalInterface)Thread 클래스를 상속하지 않고도 멀티스레딩을 구현할 수 있음특징단일 메소드 보유(run())run() 메소드 안에 스레드가 실행할 코드를 작성해야 함반환값이 없고, 매개변수도 없음객체를 직접 스레드로 실행할 수 없음Runnable을 구현한 객체를 Thread에 전달하여 실행해야 함Thread를 상속하지 않아도 멀티스레딩 구현 가능클래스 상속을 자유롭게 유지하면서 스레드를..

[공식 문서] JTree와 트리 구조 데이터를 위한 데이터 모델(TreeModel)

JTreeJava Swing 라이브러리에서 제공하는 컴포넌트트리 구조의 데이터를 시각적으로 표현하는 데 사용됨계층적 데이터를 나타내는 데 적합계층적 구조부모-자식 관계를 가진 노드각 노드는 다른 노드를 자식으로 가질 수 있음트리 형태로 시각화됨TreeModelJTree와 관련된 클래스에서 사용되는 데이터 모델을 정의TreeModel을 구현할 때, 동일한 부모 아래에서 두 개의 자식 노드가 같은 객체를 반환하면, TreePath 객체가 동일하다고 간주됨JTree와 관련된 클래스는 TreePath를 맵에 저장하므로, 동일한 노드가 두 번 요청될 경우 반환 값이 같아야 하며, 이 때 equals 메소드를 사용하여 비교해야 함Object getRoot()트리의 루트 노드를 반환트리에 노드가 없으면 null을 반..

[공식 문서] Swing을 통한 GUI 어플리케이션 개발 : javax.swing 패키지

SwingAWT를 기반으로 GUI를 보다 쉽게 구현할 수 있도록 도와주는 순수 자바 라이브러리AWT 기반이기 때문에 AWT와 100% 호환성을 보여줌Swing 컴포넌트들은 j로 시작함JFrame을 통해 애플리케이션의 기본 창을 만들고, JButton, JCheckBox와 같은 컴포넌트를 사용하여 상호작용을 추가할 수 있음이벤트는 ActionListener 인터페이스를 통해 처리됨모든 GUI 작업은 이벤트 디스패칭 스레드에서 수행되어야 함긴 작업은 SwingWorker를 사용하여 배경에서 처리함으로써 UI의 응답성을 유지할 수 있음인터페이스ActionListener : 버튼 클릭과 같은 액션 이벤트를 처리하는 인터페이스. 버튼에 이벤트 리스너를 추가할 때 사용됨import java.awt.event.Act..

[공식 문서] Swing을 통한 GUI 어플리케이션 개발 : java.awt 패키지

GUI(Graphical User Interface)사용자가 컴퓨터나 프로그램과 상호작용할 수 있도록 시각적으로 구성된 인터페이스텍스트 기반의 CLI(Command Line Interface)와 대조됨그래픽 요소를 사용하여 사용자에게 직관적이고 쉽게 접근할 수 있는 환경 제공장점사용 용이성 : 직관적인 인터페이스 덕분에 사용자가 쉽게 배울 수 있음비주얼 피드백 : 사용자 입력에 대한 즉각적인 피드백을 제공하여 상호작용을 원활하게 함멀티태스킹 지원 : 여러 창과 애플리케이션을 동시에 열어 작업할 수 있음단점리소스 소모 : 그래픽 요소를 랜더링하는 데 더 많은 시스템 자원 필요반응 속도 : 그래픽 요소가 많을 경우 성능 저하 발생AWT(Abstract Window Toolkit)JAVA에서 GUI(그래픽 사..

Class String

https://docs.oracle.com/javase/8/docs/api/java/lang/String.html#getBytes--java.lang.Object 클래스모든 클래스의 최상위 부모 클래스JAVA에서 정의된 모든 객체는 Ojbect 클래스를 상속받음1. Clone() : 객체의 복제본 생성3. getClass() : 객체의 런타임 클래스 정보 반환5. notifyAll() : 대기 중인 모든 스레드를 깨움7. wait(long timeout) : 지정된 시간 동안 대기8. wait(long timeout, int nanos) : 지정된 시간과 나노초 동안 대기6. wait() : 현재 스레드를 대기 상태로 만듦4. notify() : 대기 중인 스레드 중 하나를 깨움2. finalize() ..

반응형