태그: Java
17편
-
JVM 깊이 보기: 바이트코드·JIT·클래스 로딩·JMM·GC와 프로덕션 Java 패턴
클래스 파일과 바이트코드가 인터프리터와 JIT을 거쳐 실행되는 과정, 클래스 로더 위임 모델과 JPMS, happens-before와 volatile의 한계, G1·ZGC 동작, JFR 관측과 우아한 종료까지 JVM 내부를 운영 관점으로 설명합니다.
-
Spring Boot로 REST API 만들기: JPA, Spring Security, Validation, 예외 처리, 테스트, 배포
Spring Initializr로 프로젝트를 만들고 H2로 개발 환경을 잡은 뒤 REST 컨트롤러, JPA 엔티티와 리포지토리, Spring Security, Bean Validation, 전역 예외 처리, 테스트와 Docker 배포까지 한 흐름으로 구현합니다.
-
C++·Python·Java·JavaScript 성능 최적화: 프로파일링부터 알고리즘·메모리·언어별 기법까지
C++·Python·Java·JavaScript 코드가 느릴 때 언어별 프로파일러로 병목을 먼저 찾고, 시간복잡도 개선과 메모이제이션, 언어별 메모리 최적화, 각 런타임에 맞는 최적화 기법을 적용하는 순서를 설명합니다.
-
언어별 자료구조 비교: C++, Python, Java, JavaScript 표준 컬렉션
C++ vector, Python list, Java ArrayList, JavaScript Array처럼 이름이 비슷한 컬렉션이 내부 구현과 성능에서 어떻게 다른지 배열, 연결 리스트, 맵, 셋 순으로 비교하고 언어별로 알맞은 자료구조 선택 기준을 제시합니다.
-
프로그래밍 언어별 흔한 에러 해결 가이드 | C++, Python, Java, JavaScript
C++ 세그폴트와 undefined reference, Python IndentationError·TypeError, Java NullPointerException, JavaScript의 undefined 속성 접근과 this 바인딩까지 언어별로 자주 만나는 에러의 원인과 해결 코드를 보여줍니다.
-
Java Virtual Thread로 동시성 코드 바꾸기 | JDK 21 마이그레이션 가이드
JDK 21 가상 스레드를 newVirtualThreadPerTaskExecutor와 Thread.ofVirtual로 도입하고, 기존 스레드 풀과 Spring Boot 3.2 설정을 옮기는 방법, PINNED 상태 디버깅과 DB 커넥션 고갈 같은 전환 후 문제를 다룹니다.
-
Java Spring Boot | REST API 서버 만들기
Spring Boot 프로젝트를 만들고 application.properties를 설정한 뒤 RestController, JPA 엔티티, Repository, Service 계층으로 REST API를 구성합니다. 생성자 주입을 권장하는 이유와 Todo API 예제를 다룹니다.
-
Java 컬렉션 | ArrayList, HashMap, Set
ArrayList를 기본 List로 쓰는 이유, HashSet이 equals·hashCode 구현에 좌우되는 원리, HashMap과 TreeMap·LinkedHashMap을 순서와 정렬 요구에 따라 고르는 기준을 주문 번호 캐시 사례로 설명합니다.
-
Java Stream API: filter, map, reduce와 collect 활용
Java Stream 생성 방법과 filter·map·flatMap·sorted 같은 중간 연산, reduce·collect·anyMatch 최종 연산, 병렬 스트림 사용 시 주의점을 사용자 데이터 처리 예제로 설명합니다. toMap 키 중복 오류도 다룹니다.
-
Java 람다와 함수형 인터페이스 | Lambda Expression
익명 클래스를 람다 표현식으로 바꾸는 문법, @FunctionalInterface와 Predicate·Function·Supplier 같은 표준 함수형 인터페이스, 메서드 참조 4가지 유형을 사용자 필터링·계산기 예제로 익힙니다.
-
Java 예외 처리 | try-catch, throws, 커스텀 예외
Java 예외 계층과 try-catch-finally, 멀티 catch, throws 전파, Checked·Unchecked 커스텀 예외, try-with-resources를 다루고 예외 변환·재시도 패턴과 넓은 catch 같은 흔한 실수를 예제로 짚습니다.
-
Java 입출력 | File, BufferedReader, NIO
FileReader와 BufferedReader의 차이, BufferedWriter 추가 모드, java.nio.file의 Path·Files로 파일을 읽고 쓰고 복사하는 방법을 로그 파일 처리 예제로 설명하고, readAllLines를 피해야 하는 경우를 짚습니다.
-
Java 멀티스레드 | Thread, Runnable, Executor
Thread 상속보다 Runnable 구현을 권장하는 이유, ExecutorService 스레드 풀과 Callable·Future로 결과를 받는 방법, synchronized 메서드와 블록으로 경쟁 상태를 막는 법을 병렬 다운로더 예제로 설명합니다.
-
Java 시작하기 | JDK 설치부터 Hello World까지
JDK·JRE·JVM의 차이를 짚고 Windows·macOS·Linux에서 JDK를 설치한 뒤 javac로 HelloWorld를 컴파일해 실행합니다. IntelliJ·Eclipse·VS Code 설정과 변수, 조건문, 반복문, 메서드, 클래스 기초까지 이어집니다.
-
Java 변수와 타입 | 기본 타입, 참조 타입, 형변환
byte부터 double·boolean까지 기본 타입의 크기와 L·f 리터럴 접미사, String 풀과 equals 비교, 배열, widening·narrowing 형변환, 래퍼 클래스 오토박싱과 var 추론을 예제로 설명합니다.
-
Java 클래스와 객체 | OOP, 상속, 인터페이스
Java 클래스 정의와 생성자 오버로딩, extends와 super를 이용한 상속, 여러 인터페이스 동시 구현, 추상 클래스, 접근 제어자로 하는 캡슐화를 도서 관리 시스템 예제 하나로 연결해 설명합니다.
-
Java 시리즈 목차: 기초 문법부터 컬렉션, 람다·스트림, 멀티스레드, Spring Boot까지 10편
Java 시리즈 10편을 언어의 뼈대, 데이터 다루기, 예외·입출력·멀티스레드, Spring Boot 서버로 나눠 각 편이 다루는 내용을 정리하고, 첫 언어·서버 개발·코딩 테스트·동시성처럼 목적별로 읽는 순서를 제안합니다.