Java 124

소켓을 활용한 HTTP 통신이란 - 29

💡 HTTP 통신은 소켓 통신 개념을 활용하여 데이터 전송을 수행합니다. HTTP는 TCP 소켓을 통해 클라이언트와 서버 간의 데이터를 주고받습니다 HTTP 통신 개념HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간의 데이터 전송을 위한 프로토콜입니다. HTTP는 요청-응답(request-response) 모델을 기반으로 하며, 클라이언트가 요청을 보내면 서버가 응답을 반환합니다. HTTP는 주로 텍스트 기반의 프로토콜로, 클라이언트와 서버 간에 데이터를 주고받는 형식을 명확하게 정의합니다.주요 HTTP 메서드GET: 서버에서 데이터를 요청합니다. 주로 데이터를 조회할 때 사용됩니다.POST: 서버에 데이터를 전송합니다. 주로 데이터를 생성하거나 업데이트할 때 사..

제네릭(Generic) - 28

💡 제네릭 프로그래밍은 자바에서 타입을 일반화하여 재사용 가능한 코드를 작성하는 기법입니다. 제네릭을 사용하면 클래스, 인터페이스, 메서드 등에 대해 특정 타입을 지정하지 않고, 다양한 타입에서 동작하도록 할 수 있습니다. 제네릭 프로그래밍의 주요 이점타입 안정성: 컴파일 시 타입을 검사하여 런타임 에러를 줄일 수 있습니다.코드 재사용성: 다양한 타입을 처리할 수 있는 일반화된 코드를 작성할 수 있습니다.유지보수성: 타입 캐스팅을 줄여 가독성과 유지보수성을 향상시킵니다.ch01package ch01;public class Plastic { @Override public String toString() { return "재료는 플라스틱 입니다"; }} package ch01;public class..

네트워크 프로토콜이란? - 26

네트워크 프로토콜이란?네트워크 프로토콜은 네트워크에서 데이터를 교환하기 위한 규칙과 절차의 집합입니다.프로토콜은 데이터 형식, 순서, 오류 제어 등을 정의하여 서로 다른 시스템 간의 통신을 가능하게 합니다.주요 프로토콜HTTP (HyperText Transfer Protocol): 웹 페이지를 전송하기 위한 프로토콜입니다.TCP (Transmission Control Protocol): 신뢰성 있는 데이터 전송을 보장하는 프로토콜입니다.UDP (User Datagram Protocol): 신뢰성보다는 빠른 전송을 중시하는 프로토콜입니다.FTP (File Transfer Protocol): 파일 전송을 위한 프로토콜입니다.SMTP: 이메일 전송을 위한 프로토콜입니다.프로토콜 각기 다른 목적을 가지고 있습니..

1: N 소켓 양방향 통신 - 25

1:N 소켓 양방향 통신에서는 하나의 서버가 여러 클라이언트와 동시에 양방향 통신을 할 수 있습니다. 이는 채팅 애플리케이션, 멀티플레이어 게임 서버 등에서 흔히 사용됩니다.필요 개념서버와 클라이언트 소켓:서버는 하나의 ServerSocket을 통해 여러 클라이언트의 연결 요청을 기다립니다.클라이언트는 각각의 Socket을 통해 서버에 연결을 요청하고, 연결된 후 서버와 통신합니다.멀티스레딩:서버는 각 클라이언트와의 통신을 별도의 스레드에서 처리합니다. 이를 통해 여러 클라이언트와 동시에 통신할 수 있습니다.각 클라이언트는 서버와의 통신을 처리하는 자체 스레드를 가집니다.동기화 및 자원 관리:여러 스레드가 동시에 데이터를 읽고 쓸 수 있으므로, 데이터의 일관성을 유지하기 위한 동기화가 필요합니다.서버는 ..

Swing - 3 (이미지 올리기)

ImageIcon 을 활용한 이미지를 사용하는 방법   package ch03;import java.awt.Graphics;import java.awt.Image;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JPanel;/** * 중첩 클래스 --> 외부,내부 클래스로 * 내부 클래스로 --> 인스턴스 클래스 , static 클래스 */public class MyImageFrame extends JFrame { // 내부 클래스로 정의한 데이터 타입 이다. private MyImagePanel myImagePanel; public MyImageFrame() { initData()..

Java/Java Swing 2024.05.31

Swing - 1

package ch01;import java.awt.FlowLayout;import javax.swing.JButton;import javax.swing.JFrame;// Swinig -> 배치 관리자 : FlowLayout // 컴포넌트들을 (버튼, 라벨) 등을 수평, 수직으로 배치를 해주는 클래스 이다. public class FlowLayoutEx extends JFrame { private JButton button1; private JButton button2; // 4개더 만들어서 추가 하기 // 생성자 public FlowLayoutEx() { super.setTitle("FlowLayout 연습"); super.setSize(500, 500); super.setVisible(tru..

Java/Java Swing 2024.05.31

Map 인터페이스 - 8

Map은 키(key)와 값(value)을 연관시키는 자료구조입니다. 이는 사전과 유사한 구조로, 각 키는 고유한 값을 가집니다. Java에서 Map은 인터페이스로 정의되어 있으며, 이를 구현한 여러 가지 클래스가 있습니다.Map 주요 특징키-값 저장: Map은 키(key)와 값(value)의 쌍으로 데이터를 저장합니다. 각 키는 고유해야 하며, 하나의 값에만 매핑됩니다.중복 키 불가: Map은 각 키가 고유해야 합니다. 따라서 동일한 키를 두 번 이상 추가할 수 없습니다. 키의 유일성은 Map 내에서 보장됩니다.순서 보장하지 않음: Map은 키-값 쌍을 저장하는데 순서를 유지하지 않습니다. 따라서 Map에 저장된 순서와 데이터를 순회할 때의 순서는 일치하지 않을 수 있습니다.Map 주요 기능 및 메서드키..

Set 인터페이스 - 7

Java에서 Set 인터페이스는 java.util 패키지의 일부로, 중복을 허용하지 않는 유일한 요소들을 저장하는데 사용됩니다. 이 인터페이스는 컬렉션 프레임워크의 일부이며, 순서에 의존하지 않는 데이터 집합을 관리하기 위해 설계되었습니다.주요 특징중복 허용 불가: **Set**에 같은 요소를 추가하려고 하면, 추가가 되지 않습니다. 즉, 모든 요소가 고유해야 하며, 이미 존재하는 요소를 추가할 경우 무시됩니다.순서 보장하지 않음: **Set**은 요소들의 순서를 유지하지 않습니다. 요소들이 내부적으로 어떻게 저장되고 관리되는지는 **Set**을 구현하는 클래스에 따라 다릅니다. 따라서 요소들이 추가된 순서와 **Set**에서 요소를 순회할 때의 순서가 다를 수 있습니다.값의 유일성: **Set**은 각..