Java 164

2024.05.22 Java 유용한 클래스 1:1 양방향 통신(채팅 기본 기능 구현)

멀티 스레드 활용양방향 통신을 지속적으로 수행하기 위해 서버와 클라이언트 모두에서 키보드 입력을 받아 상대방에게 데이터를 보내고 받을 수 있도록 스레드와 while문을 활용하여 코드를 작성해봅시다. 서버 측 코드ServerSocket 을 생성하고 클라이언트의 연결을 기다립니다.BufferedReader 를 사용하여 클라이언트로부터 메시지를 읽고, PrintWriter를 사용하여 클라이언트에게 메시지를 보냅니다.키보드 입력을 받기 위해 BufferedReader를 사용합니다.클라이언트로부터 데이터를 읽는 스레드와 키보드 입력을 클라이언트로 보내는 스레드를 각각 실행합니다. package ch04;import java.io.BufferedReader;import java.io.IOException;impor..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 1:1 양방향 통신

서버측 코드 작성 인풋스트림,아웃풋 스트림이 둘다 필요하다. package ch03;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.PrintWriter;import java.net.ServerSocket;import java.net.Socket;public class SeverFile { public static void main(String[] args) { // 준비물 // 1. 서버 소켓이 필요하다. // 2. 포트 번호가 필요하다. 개인한테(0번 부터 ~ 65535번 까지 존재한다.) // 2. 1 잘 ..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 1:1 단방향 통신 (클라이언트 측)

실행방법severFile 디버그(벌레 아이콘) 실행ClientFile 실행 (run Client)severFile 실행 (resume) 실행  (Navigation 밑에 있는 아이콘) package ch02;import java.io.IOException;import java.io.PrintWriter;import java.net.Socket;public class ClientFile { public static void main(String[] args) { // 클라이언트 측 준비물 // 1. 서버측 IP 주소와 포트 번호가 필요하다. // 2. 서버측 소켓과 연결될 소켓이 필요하다. Socket socket = null; try { socket = new Socket("localh..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 1:1 단방향 통신 (서버측)

서버 측 기본 코드 작성의 목적네트워크 프로그래밍을 시작하면서 가장 먼저 배워야 할 것은 서버와 클라이언트 간의 통신입니다.서버는 클라이언트의 요청을 받아들이고, 클라이언트가 보내는 데이터를 처리하는 역할을 합니다.서버 측 기본 코드를 작성을 해보는 이유?네트워크 통신의 기초 이해서버는 네트워크 통신의 핵심 역할을 합니다.서버 측 코드를 작성함으로써 우리는 네트워크 통신의 기본 개념을 이해할 수 있습니다.서버 소켓(ServerSocket) 생성: 네트워크 연결을 기다리는 소켓입니다.포트 바인딩: 특정 포트 번호에 서버 소켓을 결합하여 외부에서 접근할 수 있도록 합니다.클라이언트 연결 수락: 클라이언트가 서버에 연결할 수 있도록 대기하고, 연결 요청을 받아들입니다.데이터 송수신 이해서버 측 코드에서 클라이..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 Socket 이란 뭘까?

소켓은 컴퓨터 네트워킹에서 매우 중요한 역할을 하며, 특히 자바 I/O에서 자주 사용됩니다. 소켓(Socket)이란?소켓은 네트워크 상에서 통신을 가능하게 하는 끝점을 의미합니다. 두 컴퓨터 간의 데이터를 주고받기 위해 사용되는 인터페이스 (추상적인 개념)로, 소켓을 통해 네트워크 연결을 설정하고 데이터를 송수신할 수 있습니다. 쉽게 말해, 소켓은 네트워크를 통해 다른 컴퓨터와 대화하는 전화기 같은 역할을 합니다. (소켓은 사실 파일 개념과 같다)소켓은 물리적인 장치가 아니라 추상적인 개념의 약속입니다. 네트워크 통신을 위해 소프트웨어적으로 정의된 인터페이스로, 컴퓨터 간의 데이터 교환을 가능하게 하는 규칙과 방법을 의미합니다. 이를 통해 네트워크 애플리케이션이 서로 통신할 수 있습니다.일반 사용자 컴퓨..

Java 2024.05.22

2024.05.22 Spring Tools 4 for Eclipse 설치 및 설정

설치사이트에 들어가 아래쪽에 다운로드 파일이 있다. https://spring.io/tools Spring | Tools spring.io 4.22.1 - WINDOWS X86_64 파일을 다운로드 한다.   C 드라이브에 workspace_1 폴더를 생성하고 지정한다. Help --> Eclipse Marketplace wizard 를 클릭한다.Popular 를 클릭한 후 Eclipse EnterPrise Java and Web Developer Tools 3.33 을 설치한다.  라이센스 약관에 동의해 준다. 설치도중 Trusht Artifacts 창에서 Select All 클릭 후 Trust Selected를 클릭하면 설치가 마무리 된다.  설정Window 버튼 클릭 후 Preferences 버튼을..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 고수준 스트림(Data/Object Stream)

DataInputStream 과 DataOutputStreamDataInputStream 과 DataOutputStream은 자바의 I/O 스트림 클래스 중 하나로, 원시 자료형(정수, 실수, 문자 등)을쉽게 읽고 쓸 수 있도록 도와줍니다.이 두 클래스는 데이터의 형식을 유지하면서 입력 및 출력을 수행할 수 있어, 자료의 손실 없이 데이터를 주고받을 수 있습니다. 더보기package io.file.ch08;import java.io.DataInputStream;import java.io.DataOutputStream;import java.io.FileInputStream;import java.io.FileOutputStream;public class MyDataStream { // 메인 함수 public..

Java 2024.05.22

2024.05.22 Java 유용한 클래스 사용자모드와 커널모드란?

컴퓨터의 구성 컴퓨터 시스템은 크게 하드웨어(Hardware)와 소프트웨어(Software) 두 가지로 나눌 수 있습니다.하드웨어는 물리적으로 컴퓨터 시스템을 구성하고 있는 기계 장치이다.소프트웨어는 논리적으로 컴퓨터 시스템을 구성하고 하드웨어들을 관리하고 동작시키는 역할을 합니다.소프트웨어는 명령어들의 집합으로 볼 수 있으며 일반적으로 그것들을 프로그램이라고 말할 수 있습니다.  운영체제의 핵심은 커널이다 OS 프로그램은 사용자에게 GUI 제공해서 사용자와 컴퓨터 간에 상호작용을 쉽게 처리할 수 있도록 도와주며 다양한소프트웨어 응용프로그램 워드프로세서, 게임, 데이터베이스 관리 시스템, 파일 장치 관리 등등 많은 서비스를 지원합니다.또한 스마트폰도 사용자에게 제공하는 서비스 종류는 다양하지만, 그중에서..

Java 2024.05.22

2024.05.21 Java 유용한 클래스 로그와 파일 저장

매번 로깅 코드를 작성하는 것은 불편할 수 있습니다.그래서 로그를 편리하게 사용할 수 있도록 클래스를 설계하고,영구적으로 로그를 저장할 수 있는 파일 저장 기능을 포함하는 코드를 작성해 봅시다. 프로젝트 생성my-logger/├── src/│ └── com/│ └── tenco/│ ├── ConsoleLogger.java│ ├── FileLogger.java│ └── MyLogger.java└── build/ package com.tenco;public class ConsoleLogger { public static void log(String message) { System.out.println(message); }} package..

Java 2024.05.21

2024.05.21 Java 유용한 클래스 파일복사(문자기반 입/출력), ZIP파일로 압축

시나리오 코드 1 - 문자기반 스트림을 활용한 파일복사 클래스 설계하기 더보기package io.file.ch07;import java.io.FileReader;import java.io.FileWriter;public class FileCopyHelper { // 파일 복사하는 함수 public static void copyFile(String readFilePath, String writerFilePath) { // try() -catch - resource try( FileReader fr = new FileReader(readFilePath); FileWriter fw = new FileWriter(writerFilePath)) { int c; while( (c =..

Java 2024.05.21