본문 바로가기

전체 글

[CS] TCP와 UDP 목차개요1. TCP(Transmission Control Protocol)2. UDP 개요IP(Internet Protocol)의 문제점을 보완하기 위해 TCP, UDP가 사용됩니다. TCP, UDP는 전송 계층(Transport Layer) 프로토콜입니다. 1. TCP(Transmission Control Protocol)TCP는 신뢰성 있는 연결 지향형(Connected, Reliable) 프로토콜입니다. 데이터를 정확하게, 순서대로, 손실 없이 전송하기 위해 다양한 매커니즘을 제공합니다. TCP의 특징항목설명연결 지향(Connection-oriented)통신 전에 3-way handshake로 연결을 설정해야 함신뢰성 보장패킷 손실, 중복, 순서 오류를 감지하고 재전송 함흐름 제어수신.. 더보기
[CS] IP (Internet Protocol) 목차개요IP (Internet Protocol)IP의 역할IP 주소의 종류IP의 데이터 교환 방식 (Packet)IP 방식의 문제점다음으로 개요우리가 흔히 알고 있는 IP는 IP 주소이다. IP 주소는 IP(Internet Protocol)에 필요한 고유 주소를 의미합니다. 그렇다면, IP(Internet Protocol)무엇인지 알아봅시다. IP (Internet Protocol)컴퓨터나 스마트폰 같은 네트워크 장치들이 인터넷을 통해 서로 통신할 수 있도록 하는 통신 규약입니다. IP의 역할데이터를 올바른 장치로 전달하게 해줍니다. (데이터 전송 시 출발지와 목적지 IP 사용)네트워크 내 통신 장치를 식별합니다. (IP 주소를 이용) IP 주소의 종류다음과 같은 IP 주소를 통.. 더보기
[Java] Optional 목차개요목차nullOptinal 개요개발자를 곤란하게 하는 null에 대해서 알아보고 그 null 값을 명시적으로 처리할 수 있는 Optional이 무엇인지 알아봅시다. 목차1. nullNullPointerExceptionnull 처리 방법2. OptionalOptional 구조Optional 특징Optional 클래스 주요 메서드 및 코드 예제Optional 사용 예제 null객체가 존재하지 않음을 나타내는 키워드입니다. NullPointerException`null`을 참조하려 하면 발생하는 런타임 오류입니다. 런타임 오류는 언체크 예외로 컴파일러가 잡아주지 않습니다. (따라서 처리를 안해주면 큰일난다.) 발생하는 상황은 다음과 같습니다.String name = person.ge.. 더보기
[Java] 동등성과 동일성 목차개요목차동등성 (Equality)동일성동등성과 동일성 차이와 예제 코드 개요자바에서 문자열을 비교하려고 하는 할 때, 내가 생각했던 것과 다른 결과가 나온 경험이 있습니다. 그 이유는 동등성과 동일성이라는 것의 차이에 있습니다. 동등성 (Equality)두 객체의 내용(값)이 같은지를 비교합니다. `equals()` 메서드를 사용합니다. equals()Object 클래스의 메서드이며, 문자열의 경우 String 클래스에서 오버라이드되어 있습니다.내부적으로 문자열의 각 문자 값을 순서대로 비교하여 내용이 같은지를 확인합니다. equals() 메서드 내부 동작Object를 상속받은 String 클래스의 equals를 확인해보면 다음과 같이 equals 메서드가 오버라이드되어 있습니다.pub.. 더보기
[Java] Enum 목차개요enum 탄생 배경문자열 방식 vs enum 방식 비교Java enum의 주요 특징enum 활용 예제정리 : enum의 이점 개요enum은 기존 방식의 한계를 보완하고자 만들어졌다. 기존 방식과 enum은 얼마나 다른지 확인해보자. enum 탄생 배경Java의 enum은 서로 관련 있는 상수들의 집합을 정의할 때 사용하는 특수한 데이터 타입이다. enum을 사용 하기 전에는 String을 이용하였다. 하지만 이 기존 방식은 타입 안전성 부족 등 여러 단점이 있다. 이러한 한계를 보완하기 위해 enum을 사용하게 되었다. 문자열 방식 vs enum 방식 비교옛날 방식 : 문자열 방식public int Day(String day) { if(day.equals(MONDAY)) Sy.. 더보기
[Java] Lv_4 도서관 프로젝트 요구사항 ⬜ 사용자는 도서를 대여하고 반납할 수 있다.⬜ 사용자별로 어떤 책을 대여했는지 확인할 수 있어야 한다.⬜ 사용자 이름과 ID를 가진다. 문제 풀이Main더보기package lv_4;import java.util.ArrayList;import java.util.Optional;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Library library = new Library(new ArrayList(), new RentService()); library.addBook(n.. 더보기
[Java] Lv_3 도서관 프로젝트 요구사항⬜ 도서를 대여할 수 있어야 한다.⬜ 대여 중인 도서는 다시 대여할 수 없다.⬜ 반납 기능이 있어야 한다. 문제 풀이Main더보기package lv_3;import java.util.ArrayList;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Library library = new Library(new ArrayList()); library.addBook(new Book("The Little Prince", "Antoine de Saint-Exupéry", 1943).. 더보기
[Java] Lv_2 도서관 프로젝트 요구사항⬜ 여러 권의 도서를 저장할 수 있어야 한다.⬜ 전체 도서 목록을 출력할 수 있어야 한다.⬜ 새로운 도서를 추가할 수 있어야 한다. 문제 풀이Main더보기package lv_2;import java.util.ArrayList;public class Main { public static void main(String[] args) { Library library = new Library(new ArrayList()); library.addBook(new Book("The Little Prince", "Antoine de Saint-Exupéry", 1943)); library.addBook(new Book("Cinderella", "Charles Per.. 더보기