Java 21

[Kotlin].ch3.코틀린 고급 문법

[Kotlin].ch3. 고급 문법 (람다, 객체, 코루틴)마지막 코틀린 3장은 고급 문법을 다룹니다. 확실히 이번 ch1,2,3은 java를 알고있다는걸 전제로 안드로이드 코딩을 위해 공부하는것이다 보니 내용이 좀 부실하거나 설명에 많은 누락이 있을수도 있습니다. 그래도 우리가 지금 해야하는건 앱개발 공부니 빠르게 kotlin기초만 잡고 넘어가겠습니다.고급 문법타입 체크와 스마트 캐스팅 (is)코틀린은 자바의 instanceof보더 더 똑똑한 is 연산자를 제공합니다. 타입 검사를 통과하면 개발자가 직접 캐스팅할 필요 없이 컴파일러가 자동으로 형 변환(Smart Cast)을 해줍니다.// 타입 체크 문법if (객체 is String) { // 이 블록 안에서 '객체'는 자동으로 String으로 캐..

Language/Kotlin 2026.01.09

[Kotlin].ch2. Null 안정성과 클래스

[Kotlin].ch2. Null 안정성과 클래스이어서 코틀린 문법 정리 2탄입니다.지금부터가 진짜 확실한 차이점이 느껴지고, 오히려 더 개선된거 같은 느낌을 저는 받았습니다.그리고 이부분이 진짜 앱 코딩에서 많이 쓰이는거 같습니다.컬렉션과 Null 안전성불변(Immutable) 컬렉션과 가변(Mutable) 컬렉션코틀린의 컬렉션은 생성할 때부터 읽기 전용인지 수정 가능한지를 명확하게 구분해야 합니다. 이는 의도치 않은 데이터 변경을 방지하여 코드의 안전성을 높여줍니다. 계속 Null을 검사하지 않아도 됩니다.listOf(), mapOf(): 읽기 전용입니다. 요소를 추가하거나 삭제할 수 없습니다.mutableListOf(), mutableMapOf(): 수정 가능합니다. add(), remove() 같..

Language/Kotlin 2026.01.09

[Kotlin].ch1.java 배운 후 배우는 kotlin

[Kotlin].ch1. java 배우고 나서 배우는 kotlin (기초편)이때까지 자바를 공부해왔는데 안드로이드 앱 개발을 하려니 코틀린을 해야 한다네요.그래도 자바와 완전 다른 언어도 아니고 더 어렵지도 않아서 빠르게 공부해보려 합니다.오히려 kotlin의 문법이 더 간단하고 개선된 점도 많아서 익숙해 지면 더 쉬울것 같습니다.그래서 이미 자바를 배운 사람을 기준으로 Kotlin공부 한 내용을 정리해봤습니다.혹시 자바를 안배우셨으면 이것이 자바다 공부 내용을 보고 오시면 좋겠습니다.1. Main 함수와 화면 출력자바는 무조건 class 안에 public static void main을 넣어야 하지만 코틀린은 그냥 파일에 함수만 써도 돌아갑니다.// Hello.kt 파일fun main() { pr..

Language/Kotlin 2026.01.08

[이것이 자바다].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

[이것이 자바다].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