Language/JAVA 19

[이것이 자바다].ch18.네트워크 입출력

[이것이 자바다] 18. 네트워크 입출력안녕하세요. 이번에는 자바의 네트워크 입출력에 대해 정리한 내용입니다. 네트워크를 쓸때 꼭 필요한 기본적인 지식입니다. 여기나오는 내용을 외우지 않고 자바가 네트워크 입출력을 처리하는 방식을 알아두기만 해도 큰 도움이 될거 같습니다.1. 네트워크 기초IP 주소: 네트워크 상에서 컴퓨터(Host)를 식별하는 주소입니다. (192.168.0.1 등)포트(Port): 한 컴퓨터 내에서 실행 중인 프로그램을 구분하는 번호입니다. (8080, 3306 등)프로토콜(Protocol): 통신 규약입니다.TCP: 연결 지향, 신뢰성 보장 (느림) -> 전화UDP: 비연결 지향, 신뢰성 낮음 (빠름) -> 편지/방송2. 자바 네트워킹 클래스InetAddressIP 주소를 다루는 클..

Language/JAVA 2026.01.02

[이것이 자바다].ch17.데이터 입출력

[이것이 자바다] 17. 데이터 입출력안녕하세요. 이번에는 자바의 데이터 입출력에 대해 정리한 내용입니다.1. 입출력 스트림(Stream)스트림(Stream): 프로그램과 외부 장치(파일, 네트워크 등) 사이에서 데이터가 흐르는 단방향 통로입니다.InputStream: 외부에서 프로그램으로 읽어오는 통로OutputStream: 프로그램에서 외부로 내보내는 통로2. 바이트 스트림 vs 문자 스트림자바는 데이터를 다루는 기준에 따라 두 가지 종류의 스트림을 제공합니다.바이트 스트림 (Byte Stream)단위: 1바이트(byte)최상위 클래스: InputStream, OutputStream용도: 이미지, 동영상, 실행 파일 등 모든 종류의 파일 처리 가능합니다.구현 클래스: FileInputStream, F..

Language/JAVA 2026.01.02

[이것이 자바다].ch16.스트림 요소 처리

[이것이 자바다] 16. 스트림 요소 처리안녕하세요. 이번에는 자바 8에 도입되어 컬렉션 처리에 혁명을 가져온 스트림에 대해 정리한 내용입니다. 저도 사실 이부분을 정확하게 이해를 못했어서 이렇게 정리하고 자바를 쓰고 여러번 보면서 이해할겁니다.1. 스트림(Stream)이란?컬렉션(List, Set 등)의 저장 요소들을 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 반복자입니다.선언형 프로그래밍: "어떻게(How)"가 아니라 "무엇을(What)" 할 것인지에 집중합니다. (for문, if문 로직을 짤 필요가 사라짐)특징내부 반복자: for문처럼 외부에서 요소를 꺼내는 게 아니라, 처리 방법(람다식)만 전달하면 컬렉션 내부에서 알아서 반복 처리합니다. (병렬 처리에 유리)파이프라이닝: 여러 단계의 연..

Language/JAVA 2026.01.01

[이것이 자바다].ch15.람다식

[이것이 자바다] 15. 람다식안녕하세요. 2026년의 첫 글은 자바의 핵심, 람다식입니다. 또 핵심인가 싶긴한데 이번에는 진짜 핵심입니다. 람다식은 솔직히 없어도 기능을 하는데는 아무런 지장이 없지만, 코드의 길이를 정말 깔끔하고 예쁘게 바꿔주는 핵심적인 기술입니다.1. 람다식(Lambda Expression)이란?함수형 프로그래밍: 함수를 정의하고 이 함수를 데이터 처리부로 보내 데이터를 처리하는 기법입니다.자바는 람다식을 통해 이를 지원하며, 코드가 매우 간결해집니다.비교: 익명 클래스 vs 람다식Before: 익명 클래스기능 하나를 전달하기 위해 의미 없는 껍데기(클래스 선언, 메소드 오버라이딩 등) 코드가 너무 길었습니다.// 버튼 클릭 시 출력하는 기능button.setOnClickListen..

Language/JAVA 2026.01.01

[이것이 자바다].ch14.컬렉션

[이것이 자바다] 14. 컬렉션안녕하세요. 이번에는 자바의 자료구조, 컬렉션 프레임워크에 대해 정리한 내용입니다.자료구조는 코딩할때 정말 필수적이고 중요한 부분이죠, 근데 직접 구현해본 사람은 알지만 정말 귀찮습니다. 만약 자료구조를 쓸때마다 모든 함수를 자기가 구현하고 사용해야하면 귀찮아 죽을겁니다. 그래서 컬렉션으로 미리 만들어둔 자료구조를 쓴다면 시간이나 노력을 절약할수있습니다.1. 컬렉션 프레임워크란?여러 개의 객체(데이터)를 저장하고 관리하기 위해 자바가 제공하는 표준화된 자료구조의 묶음입니다.배열의 고정 크기 단점을 해결하고, 데이터의 추가/삭제/검색 기능을 편리하게 제공합니다.주요 인터페이스: List, Set, Map2. List 인터페이스 (순서 O, 중복 O)데이터를 순서대로 저장하며,..

Language/JAVA 2025.12.30

[이것이 자바다].ch13.스레드

[이것이 자바다] 13. 스레드안녕하세요. 이번에는 자바의 스레드에 대해 정리한 내용입니다.스레드는 개념 자체가 워낙 저한테는 와닿지가 않았어서 저도 정리하는데 좀 힘들었어요. 정리본도 아마 좀 다른파트보다 부실할것 같습니다. 그래도 기초적인 이해는 잘 할수있도록 정리해봤습니다.1. 스레드(Thread) 기본프로세스(Process): 실행 중인 하나의 애플리케이션입니다.스레드(Thread): 프로세스 내에서 작업을 수행하는 실행 흐름의 최소 단위입니다.멀티 스레드(Multi-Thread)하나의 프로세스 내에서 여러 개의 스레드를 만들어 여러 작업을 동시에 처리하는 기술입니다.프로그램의 응답성을 높이고 자원을 효율적으로 사용 가능합니다.스레드 생성 방법Runnable 인터페이스 구현 (추천)다중 상속이 불..

Language/JAVA 2025.12.30

[이것이 자바다].ch12.제네릭

[이것이 자바다] 12. 제네릭안녕하세요. 이번에는 자바의 제네릭에 대해 정리한 내용입니다. 제네릭은 배워두면 정말 유용합니다.1. 제네릭(Generic) 필요성제네릭이 없던 시절에는 자바의 컬렉션에 모든 종류의 객체를 저장하기 위해 Object 타입을 사용했습니다.// 제네릭이 없던 시절List list = new ArrayList();list.add("hello"); // String을 넣고String str = (String) list.get(0); // 꺼낼 때는 String으로 강제 형변환 필요list.add(100); // 실수로 Integer를 넣어도 컴파일 에러가 발생하지 않음Integer i = (Integer) list.get(1);불편함: 객체를 꺼낼 때마다, 원래 타입을 기억해서 매..

Language/JAVA 2025.12.29

[이것이 자바다].ch11.java.base 모듈

[이것이 자바다] 11. java.base 모듈안녕하세요. 이번에는 자바의 기본 중의 기본, java.base 모듈에 대해 정리한 내용입니다. 자주 쓰는 여러가지 클래스들을 모아둔 패키지를 모아둔 모듈입니다. 하나하나 저희가 만들어서 쓰기는 어렵고 귀찮잖아요, 그래서 고마운 분들이 만들어 놓은 클래스들을 사용하면 됩니다. API 도큐먼트API 도큐먼트 (Oracle)클래스 선언부: final, abstract 여부, 상속 계층도 확인 가능합니다.구성 멤버: Field, Constructor(생성자), Method(메소드) 목록을 확인할 수 있습니다.1. java.lang 패키지자바 프로그래밍에 가장 기본이 되는 핵심 클래스들을 모아놓은 패키지입니다.너무 중요해서 import 없이도 컴파일러가 알아서 자동..

Language/JAVA 2025.12.29

[이것이 자바다].ch10.예외처리

[이것이 자바다] 10. 예외처리안녕하세요. 이번에는 자바의 예외처리에 대해 정리한 내용입니다.매번 중요하다 말은 하지만 이번엔 진짜 중요합니다. 솔직히 혼자 개발하거나 공부할때 이걸 많이 쓸 필요는 없습니다. 간단한 문제 과정에서는 예외도 우리가 예상할수 있는정도에서 발생하고 왠만하면 통제할수있기 마련입니다. 하지만 프로그램이 커지고 조금더 실무에 가까워지면 예외 처리는 필수적이고 반드시 사용되기때문에 그냥 습관처럼 익혀두는것이 좋습니다.1. 예외(Exception)프로그램 실행 중에 발생하는 예상치 못한 문제 상황입니다.컴파일 에러(Compile Error)와 차이가 있습니다.예외는 일단 프로그램이 정상적으로 실행되다가 문제가 발생하여 프로그램의 흐름을 방해합니다.예시NullPointerExcepti..

Language/JAVA 2025.12.28

[이것이 자바다].ch9.라이브러리

[이것이 자바다] 09. 라이브러리안녕하세요. 이번에는 자바의 라이브러리와 모듈에 대해 정리한 내용입니다.이 부분도 매우 중요합니다. 사실 개발은 자기가 전부 만드는것보다는 남이 만든것을 가져다가 사용하는것이 대부분이죠. 그리고 그렇게 도움받고 도움주면서 코딩 생태계가 이렇게 커졌다고 생각합니다. 1. 라이브러리(Library)프로그램 개발에 바로 가져다 쓸 수 있는 클래스와 인터페이스들의 묶음입니다.이미 만들어진 라이브러리를 활용 복잡한 기능을 쉽고 빠르게 구현 가능합니다.JAR (Java ARchieve) 파일라이브러리는 보통 .jar라는 압축 파일 형태로 제공됩니다.파일 안에는 클래스와 인터페이스의 바이트코드(.class 파일)들이 압축되어 있습니다.Classpath (클래스패스)JAR 파일의 위치..

Language/JAVA 2025.12.28