본문 바로가기 메뉴 바로가기

나의 구름낀 조각들

프로필사진
  • 글쓰기
  • 관리
  • 태그
  • 방명록
  • RSS

나의 구름낀 조각들

검색하기 폼
  • 분류 전체보기 (16)
    • Java (13)
    • Git (1)
    • Spring (2)
    • 일상생활 정보 (0)
  • 방명록

java (4)
[Java/자바] 자바 제네릭(Generics) 완벽 가이드: 타입 안정성과 와일드카드(PECS) 활용법

자바(Java)를 사용하여 애플리케이션을 개발하다 보면 컬렉션 프레임워크(Collection Framework)를 다룰 일이 매우 많습니다. 이때 NullPointerException만큼이나 개발자를 괴롭히는 것이 바로 런타임에 발생하는 ClassCastException입니다.자바 5 버전에 도입된 자바 제너릭(Java Generics)은 이러한 타입 변환 에러를 컴파일 타임에 완벽하게 잡아주는 아주 강력하고 필수적인 문법입니다. 오늘 이 포스팅에서는 자바 제네릭의 기초적인 개념부터 시작하여 제네릭 사용법, 제한된 타입 파라미터, 그리고 많은 개발자들이 헷갈려하는 와일드카드(Wildcard)와 PECS 공식까지 상세히 알아보겠습니다.1. 자바 제네릭(Java Generics)이란?제네릭(Generics)..

Java 2026. 7. 5. 17:41
스프링 부트 AOP(Aspect-Oriented Programming) 완벽 가이드: 개념, 프록시 동작 원리 및 실무 예제

1. AOP(관점 지향 프로그래밍)의 등장 배경과 필요성자바(Java) 웹 백엔드 개발을 위해 스프링(Spring) 프레임워크를 학습하다 보면 DI(의존성 주입)와 함께 가장 중요하게 다루어지는 개념이 바로 AOP(Aspect-Oriented Programming, 관점 지향 프로그래밍)입니다.객체 지향 프로그래밍(OOP)은 애플리케이션을 여러 개의 독립적인 객체로 나누고, 이들의 상호작용으로 로직을 구성합니다. 덕분에 비즈니스 로직의 모듈화와 재사용성이 크게 향상되었습니다. 하지만 애플리케이션의 규모가 커지면서 OOP만으로는 해결하기 어려운 문제에 직면하게 됩니다.바로 흩어진 관심사(Cross-cutting Concerns)의 문제입니다. 게시판 서비스를 예로 들어보겠습니다. '게시글 작성', '게시글..

Spring 2026. 7. 3. 10:15
JVM 구조

위 사진은 JVM의 전체적인 구조입니다. 클래스 로더(Class Loader) 자바 바이트 코드를 읽어서 JVM의 실행 엔진이 사용할 수 있도록 메모리의 메소드 영역에 적재하는 역할을 합니다. 로딩 -> 링크 -> 초기화 순으로 진행됩니다. 1. 로딩 클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고, 메소드 영역에 저장됩니다. 이때 메소드 영역에 저장하는 데이터는 다음과 같습니다. FQCN(Fully-Quailified Class Name) : 클래스 로더, 클래스 패키지 경로, 패키지 이름, 클래스 이름을 모두 포함한 값 Class, Interface, Enum 메소드와 변수 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 힙 영역에 저장하게 됩니다...

Java 2022. 3. 28. 09:00
자바, JVM, JDK, JRE이란?

JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드(.class)를 운영체제(OS)가 실행할 수 있는 네이티브 코드로 변환(Interpreter, JIT Compiler) 하여 실행 합니다. 해당 운영체제에 맞는 네이티브 코드로 바꿔서 실행해야 하므로, JVM은 특정 플랫폼에 종속적이며, JVM은 자바(JAVA)와 운영체제 사이에서 중개하는 역할을 수행하기 때문에 자바가 운영체제에 신경 쓸 필요 없이 재사용이 가능하도록 해줍니다. JVM은 바이트 코드를 실행하는 표준 스펙(JVM)이자 구현체(특정 밴더가 구현한 JVM)입니다. JVM 벤더로는 Oracle, Amazon, Adoptium, Azul 등 여러 벤더들이 있습니다. JVM의 자세한 스펙은 https://docs..

Java 2022. 3. 27. 17:38
이전 1 다음
이전 다음
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
  • javassist
  • Functional Interface
  • 실행 엔진
  • 깃 기초
  • Reflection
  • 클래스로더
  • 자바 리플렉션
  • java optional
  • Java Reflection
  • 애노테이션
  • 람다표현식
  • 애노테이션 프로세서
  • optional api
  • bytebuddy
  • java proxy pattern
  • java abstractprocessor
  • 바이트 코드
  • jvm
  • JRE와 JDK의 차이점
  • dromos
  • 코드 커버리지
  • javaagent
  • java11 optional
  • Annotation Processor
  • 자바
  • classloder
  • JVM 구조
  • 리플렉션
  • java
  • 자바 프록시 패턴
more
«   2026/08   »
일 월 화 수 목 금 토
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함

Blog is powered by Tistory / Designed by Tistory

티스토리툴바