Coding 공부/Java41 [Java_Example] 서버 일대일 채팅 연습 문제, 수식 계산 서버 연습 문제 1. 서버 일대일 채팅 연습문제 1.1 서버 클래스 서버 소켓 객체를 생성한다. (네트워크 연결을 위해선 서버 소켓과 클라이언트 소켓이 필요하다. 연결은 스트림으로..) 소켓 객체는 서버 객체에서 accept()메서드가 실행되어 클라이언트 소켓이 연결되면 그 소켓을 받아온다(얕은 복사) Buffered Reader, Writer객체를 생성해 입출력 스트림을 열어준다.(데이터 이동 통로) 입력으로 받은 문자열을 sysout으로 화면에 출력한다. 아웃 스트림을 통해 write(); 메서드로 키보드로 입력한 문자열을 보낸다. flush()로 스트림 버퍼에 남아있는 모든 문자열을 전송한다. 일반적으론 버퍼 스트림은 개행문자 "\n"가 나오기 전까지 데이터를 모아 보낸다. 1.2 클라이언트 클래스 클라이언트 소켓.. Coding 공부/Java 2024. 3. 13. [Java_Example] 입출력 스트림과 파일 입출력 예제 풀이 1. FileWriter 예제 try-catch문 안에서 FileWriter 객체를 생성한다. 반복문 안에서 scanner를 사용해 키보드로 문자열을 char로 변환하여 입력받는다. 공백에 엔터를 입력할 때까지 반복문을 실행한다. 스트림은 사용 후 .close(); 메소드로 닫아준다. 2. BufferedIO 예제 try-catch문 안에 FileReader로 객체를 생성한다.(Reader이므로 이미 생성된 text파일에 저장한 문자열을 읽어온다.) BufferedOutStream 객체를 생성한다. 매개변수에 몇 바이트까지 저장 후 콘솔창에 출력할건지 정할 수 있다. .read(); 메소드는 1바이트씩 읽어와 반환한다. 모두 읽어온다면 -1를 반환해 반복문을 끝낸다. out.write(c); 1바이트 읽.. Coding 공부/Java 2024. 3. 12. [Java_Summary] 네트워크, TCP/IP, Socket, ServerSocket, ObjectStream, transient 키워드, Serializable 인터페이스, readObject 메소드 1. TCP/IP Tranmission Control Protocol 두 시스템 간에 신회성 있는 데이터의 전송을 관장하는 통신 프로토콜 Interner Protocol 통신 프로토콜 자신의 컴퓨터에서 자신의 IP 주소를 간단히 localhost라는 이름으로 사용 할 수 있다. localhost의 IP주소는 127.0.0.1로 정해져 있다. IP주소는 네트워크상에 있는 한 컴퓨터를 유일하게 식별한다. 한 컴퓨터 내의 여러 응용프로그램을 식별하기 위해 포트(port)를 생성하고 식별한다. 잘 알려진 포트(well-known ports)는 0~1023 사이에 번호를 가지므로 사용자가 작성하는 응용프로트램 포트는 이 범위를 피해서 선택하도록 한다. 용어 소켓(socket) : 통신하는 두 응용프로그램 간의 통.. Coding 공부/Java 2024. 3. 12. [Java_Summary] 입출력 스트림과 파일 입출력 1. 입출력 스트림 자바에서 입출력 스트림은 응용프로그램과 입출력 장치를 연결하는 소프트웨어 모듈이다. 키보드와 모니터, 마우스 같은 것이 대표적인 입출력 장치이다. 1.1 바이트기반 스트림 1바이트(byte) = 8비트(bit) >>파일을 입출력하는 가장 작은 단위 (이미지, 비디오 전송에 사용한다. 비텍스트 데이터) 바이트 스트림 클래스 계층 구조 : InputStream, OutputStream 1.2 텍스트형 스트림 문자기반의 입출력 스트림 유니코드 단위 문자 스트림 클래스 계층구조 : Reader, Writer 1.3 기본 데이터 타입 1.4 파일 정보 불러오기 & 생성 & 이름 바꾸기 예제 & 확장자 파일 찾기 예제 System.in.read();는 한 바이트씩 읽어온다. 콘솔창에 @파일이름으.. Coding 공부/Java 2024. 3. 6. [Java_Summary] 스레드와 멀티테스킹, 프로세스, Thread, Runnable, 다형성, 동기화(Synchronized) 1. 프로세스 1.1. 메모리 할당 프로세스는 실행을 위해 메모리 공간을 할당받습니다. 이 공간에는 코드, 데이터, 스택 등이 포함됩니다. 1.2. 실행 상태 프로세스는 일반적으로 생성(Create), 준비(Ready), 실행(Running), 대기(Waiting), 종료(Terminated) 등의 여러 상태를 가집니다. 프로세스 스케줄러는 이러한 상태들 사이에서 프로세스를 전환시키며 CPU 자원을 효율적으로 관리합니다. 1.3. 프로세스 ID(PID) 운영 체제는 각 프로세스에 고유한 식별자인 프로세스 ID(PID)를 할당합니다. 이를 통해 프로세스를 구분하고 관리할 수 있습니다. 1.4. 컨텍스트 스위칭 프로세스 간에 CPU 사용권이 전환될 때, 시스템은 이전 프로세스의 상태를 저장하고 새 프로세스의.. Coding 공부/Java 2024. 3. 5. [Java_Summary] Iterator<E> 인터페이스, 컬렉션 접근방식, Board#3 1. Iterator 인터페이스 Vector, ArrayList, LinkedList가 상속받는 인터페이스 : 리스트 구조의 컬렉션에서 요소의 순차 검색을 위한 메소드 포함 1.1 Iterator 인터페이스 메소드 iterator() 메소드 : Iterator 객체 반환(생성자와 비슷한 역할) Iterator 객체를 이용하여 인덱스 없이 순차적 검색 가능 1.2 Iterator 인터페이스 Vector 구현 예제 1.3 Board#3 회원검색 기능 추가 UserSVC클래스에 searchUser(); 메서드를 추가했다. userInput 문자열 자료형에 값을 입력받고 해당 값이 userMap컬렉션 values값인 User의 멤버에 있는지 if문으로 확인 후 user정보를 toString() 메서드를 사용해 .. Coding 공부/Java 2024. 2. 29. [Java_Summary] 패키지(Package), import, 외부 패키지 경로 설정, 모듈, 자바 주요 패키지, Object 클래스, Wrapper 클래스, String 클래스 1. 패키지(Package) 여러 class파일을 저장하고 있는 디렉터리(폴더)를 패키지라고 한다. 파일의 경로명은 점(.)을 찍어 표현한다. Project.FileIO.tools.class 서로 관련 있는 클래스나 인터페이스의 컴파일된 클래스 파일들을 한 곳에 묶어 놓은 것이다. 패키지를 모듈(Module)이라는 단위로 묶어 자바JDK에서 기본적으로 제공한다. 2. import와 클래스 경로 import문은 다른 패키지의 클래스를 사용할 때, 그 경로명을 컴파일러에게 알려준다. import 패키지.클래스; import를 하지 않아도 소스 내에서 패키지 이름과 클래스 이름의 전체 경로명을 써주면 사용할 수 있다. 한 패키지 안에 있는 여러 클래스를 import하고자 할 때엔, 아스트레이를 사용해 한번에 .. Coding 공부/Java 2024. 2. 29. [Java_Exam] Board#2 1. 개선된 내용 1.1 UserSVC Class 멤버 Map userMap; //HashMap 컬렉션을 사용해 클래스와 문자열을 각각 키와 밸류값으로 저장 생성자에서 HashMap 인스턴스 생성(Heap 영역에 메모리 할당), 5명 회원 초기화 private void initUser() //5명 회원 초기화 메서드 public boolean authUser(String id, String passwd) //아이디, 비밀번호를 받아 컬렉션에 있으면 true를 반환 public void createUser(Scanner sc) //동일한 유저명이 없다면 회원 추가 public User login(Scanner sc) //아이디, 비밀번호가 일치하는 컬렉션이 있으면 User 객체를 반환(클래스를 return.. Coding 공부/Java 2024. 2. 29. [Java_Example] Board Exam Scanner는 System.in으로 스트림을 열기 때문에 사용할 때 마다 열고 닫는 것보다 매개변수를 줘서 계속 열어둔 채로 사용하는 것이 좋다. 프로젝트를 시작하면 기능 설계, 화면 설계를 맨 처음 생각해야된다. >> 기능을 명세화(문서화)하는 단계 작성자, 이메일, 비밀번호, 제목, 내용을 입력받는 메서드 리스트를 출력하는 메서드 글을 삭제하는 메서드 메인 기능을 가지는 클래스 BoardSVC >>"해당 사용자가 없습니다" 글의 개수만큼 반복되는 것은 BoardSVC 클래스의 52, 56줄에 break;를 추가해주면 해결된다. ArrayList을 사용하는 예제였다. 콜렉션의 제네릭에 클래스 타입을 넣기 위해서 클래스에 멤버를 구현하고 toString메서드로 sysout으로 출력했을 때에 어떤 멤버를.. Coding 공부/Java 2024. 2. 28. [Java_Summary] Set, HashSet, TreeSet, ArrayList, LinkedList, HashMap, HashTable, HashCode, Set.of() 1. (잡담) 출력하는 무한 반복문을 실행할 경우 컴퓨터가 멈추거나 엄청나게 느려지는 이유 CPU의 기본 처리 단위는 클럭인데 1클럭당 반복문을 1회 실행한다. CPU의 성능이 2.4gHz라면 1초에 2.4g번 화면에 출력하므로 엄청난 자원을 소모하게 된다. CPU는 컴퓨터에 한 개이기 때문에, 멀티 스레드를 사용하더라도 우선 순위가 높다면 자원을 많이 잡아 먹기도 한다. 제네릭을 사용하는 이유 ArrayList al = new ArrayList(); ArrayList al = new ArrayList(); 둘다 사용 가능하다. 제네릭 을 사용하는 이유는, 오브젝트를 인자로 받아서 컬렉션의 객체나 요소를 받아올 경우 다운캐스팅, 업캐스팅을 해야되고, 명확한 자료형 Type을 구분해내기 힘들다. 따라서 코.. Coding 공부/Java 2024. 2. 27. [Java_Example] Exception, HashMap<>, eqauls(), hashCode(), toString(), StringBuffer, new String(Byte배열), String.indexOf(), String.replace, 익명 구현 클래스 객체 생성 1. Exception Example 01 try-catch 예외처리 2번 문제에서 Exception이 예외 최상위 클래스이므로 모든 예외가 catch되어 이후에 다른 catch를 하더라도 의미가 없어 빨간줄이 생김(컴파일 에러) 2. Exception Example 01 try-catch 예외처리 17줄 finally는 예외처리 결과가 어떻든 실행된다. value값은 10줄 코드가 예외없이 실행되어야 값을 반환하여 바뀐다. catch문을 여러개 작성하여 다른 코드(로그찍기)를 실행할 수 있다. 3. Util_Example01 HashMap, eqauls(), hashCode() 예제 Object의 hashCode() 메서드 설명 링크 : https://developer-talk.tistory.com/7.. Coding 공부/Java 2024. 2. 23. [Java_Summary] Wrapper Class, Auto Boxing, Auto Unboxing, Collection, generic, Vector<>, 컬렉션 메소드, Iterator, Enumeration, Stack<> 1. 레퍼 클래스(Wrapper Class) "레퍼 클래스(Wrapper Class)"는 기본 자료형을 객체로 다루기 위해 사용하는 클래스를 말합니다 프로그래밍을 하다 보면, 이러한 기본 자료형도 객체로 다뤄야 할 필요가 종종 있습니다. 예를 들어, 매개변수로 객체만을 요구하는 메소드에 기본 자료형 값을 전달해야 하거나, 기본 자료형 값을 객체의 컬렉션에 저장해야 할 때 등이 이에 해당합니다. 레퍼 클래스는 기본 자료형의 값을 객체 내부에 저장하며, 이를 통해 기본 자료형이 객체로서의 여러 기능을 가지게 됩니다. 예를 들어, 객체 간의 비교, 객체의 저장 및 전송, 객체에 대한 메소드 호출 등이 가능해집니다. byte -> Byte short -> Short int -> Integer long -> Lo.. Coding 공부/Java 2024. 2. 23. 이전 1 2 3 4 다음 728x90 반응형