-
[Spring] AOP 심화 - JoinPoint와 ProceedingJoinPoint / 동작 원리 / 프록시 / JDK Proxy와 CGLib ProxyDEV/Spring 2024. 5. 17. 15:33
지난번 스프링 특징 중 AOP에 관하여 조금 더 조사해보았다. 📌JoinPoint와 ProceedingJoinPoint의 차이JoinPoint : Aspect가 적용될 수 있는 시점을 의미. JoinPoint 인터페이스는 호출되는 대상 객체, 메서드, 전달파라미터 목록에 접근할 수 있는 메서드를 제공메서드설명Signature getSignature()호출되는 메서드 정보 반환Object getTarget()대상 객체 반환Object[] getArgs()파라미터 목록 반환getThis()프록시 객체 반환Signature : 호출되는 메서드 정보메서드설명String getName()메서드 이름 반환String toLongName()메서드를 완전하게 표현한 문장 반환 (반환타입,파라미터타입)String ge..
-
[Spring] 스프링 프레임워크 특징/ POJO / IoC / DI / AOP / PSADEV/Spring 2024. 5. 8. 01:09
지난번 Java 스터디에서 POJO에 대해 알아보았는데, 스프링 프레임워크 특징에 대해 자세히 알아보고자 정리한다. 1. POJO (Plain Old Java Object) : 순수 자바 객체POJO는 스프링에서 사용되는 일반적인 자바 객체를 의미합니다. 스프링은 POJO를 이용하여 애플리케이션을 구성하고 관리합니다.데이터를 캡슐화하고 해당 데이터에 대한 접근 및 수정을 위한 getter 및 setter 메서드를 제공하는 간단한 Java 클래스를 지칭합니다.애플리케이션에서 데이터 객체를 표현하는 데 사용되며, Hibernate나 Spring과 같은 프레임워크와 함께 자주 사용됩니다.사용 예시public class Car { private String model; // 생성자 public ..
-
[JAVA] 자바 스터디 이모저모 OOP / POJO / JVM 메모리 구조 / GC / GC 알고리즘DEV/JAVA 2024. 5. 4. 18:09
스터디 주제java 에서 객체의 의미, OOP 란?POJO 가 무엇이고 왜 필요한가요?jvm 구조관점에서 메모리 영역에 객체와 메소드, 변수들이 어떻게 저장 되나요?상수와 static 의 필요성최신 자바 메모리 모델 소개gc 란?gc 는 어떻게 객체를 수집하나요? ( how do? )gc 대표 알고리즘 소개* OOP란?객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 약자로, 현실세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍하는 것이다. 이것을 추상화라한다. 주요 특징1. 캡슐화 (은닉화) : 객체의 속성과 행위를 하나로 묶는 것. 목적은 구현 코..
-
[JPA] 프록시와 연관관계 관리 (즉시로딩/지연로딩/영속성전이/고아객체)DEV/JPA 2024. 4. 29. 15:16
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한프록시주제 : member를 조회할 때 team도 함께 조회해야할까 ? 1. em.find(Member.class, member.getId()) : DB에서 실제 엔티티 객체 조회2. em.getReference(Member.class, member.getId()) : DB조회를 미루는 프록시 객체 조회 (가짜)여기서 find로 가져온 객체와 getReference로 가져온 객체의 member class를 각각 sysout찍어보면1번은 member class2번은 member proxy 객체가 출력됨 EntityManagerFactory emf = Persistence.createEntityManagerFactory..
-
[JAVA] 직렬화(Serialization) / ObjectInputStream, ObjectOutputStream / Serializable, transientDEV/JAVA 2024. 4. 23. 20:39
객체를 데이터 스트림으로 만드는것. = 객체에 저장된 데이터를 스트림에 쓰기(write)위해 연속적인(serial) 데이터로 변환하는 것 자바 시스템 내부에서 사용되는 Object 또는 Data를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 변환하는 기술이다. 🌟 역직렬화 : 반대로 스트림으로부터 데이터를 읽어 객체를 만드는것 ObjectInputStream, ObjectOutputStream 스트림에 객체를 출력하는 직렬화는 ObjectOutputStream을 사용하고, 스트림으로부터 객체를 입력하는 역직렬화는 ObjectInputStream을 사용한다. 각각 InputStream과 OutputStream을 직접 상속받지만 기반 스트림을 필요로하는 보조스트림이다. //파일에 객체 저장(직..
-
[JAVA] 쓰레드(Thread)의 동기화 / synchronized / Lock과 Condition / fork & join 프레임워크DEV/JAVA 2024. 4. 23. 20:27
멀티쓰레드 프로세스의 경우 여러 쓰레드가 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로의 작업에 영향을 주게된다. 한 쓰레드가 특정 작업을 끝마치기 전까지 다른 쓰레드에 의해 방해받지 않도록 하는것이 필요한데, 그래서 도입된 개념이 '임계 영역'과 '잠금(락,lock)'이다. - 공유데이터(객체)를 사용하는 코드 영역 : 임계 영역으로 지정 - 공유데이터(객체)가 가지고 있는 lock을 획득한 단 하나의 쓰레드만 임계영역 내 코드를 수행, 임계영역에서 벗어나서 lock을 반납해야 다른 쓰레드가 반납된 lock을 획득하여 임계영역 내 코드 수행 가능 → 즉, 쓰레드의 동기화란 한 쓰레드가 진행중인 작업을 다른 쓰레드가 간섭하지 못하도록 막는것 방법 synchronized 블럭 사용 Lock과 C..
-
[JAVA] 쓰레드 (Thread)의 구현 / 싱글쓰레드, 멀티쓰레드 / 우선순위 / 쓰레드 그룹 / 데몬 쓰레드DEV/JAVA 2024. 4. 5. 00:37
1) 프로세스(Process)와 쓰레드(Thread)의 차이 - 프로세스 : ‘실행중인 프로그램’ → 작업관리자에서 실행중인 프로그램의 프로세스 확인 가능 - 쓰레드 : 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 따라서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재. 둘 이상의 쓰레드를 가진 프로세스를 ‘멀티쓰레드 프로세스’라고 함 2) 쓰레드의 구현방법 : Thread클래스를 상속받는 방법과 Runnable인터페이스를 구현하는 방법이 있다. //1. Thread 클래스 상속 class MyThread extends Thread { public void run() { .. } //Thread 클래스의 run()을 Overriding } //2. Runnable 인터페이스 구현 class ..
-
[JPA] 고급매핑 - 상속관계 매핑DEV/JPA 2024. 4. 5. 00:07
* 정보전달의 목적이 아닌 개인 스터디 정리 글 입니다. 강의 : 인프런 교육자 : 김영한 상속관계 매핑 : 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 - 관계형 데이터베이스는 상속관계가 없다. - 슈퍼타입 서브타입 관계의 모델링 기법이 객체 상속과 유사하다. * DB 논리모델을 물리적으로 구현할수있는 방법 - 조인전략 : 모든 클래스를 각각의 테이블로 변환 - 단일 테이블 전략 : 통합된 테이블 한개로 변환 - 구현 클래스마다 테이블 전략 : 서브타입 테이블로 변환 (슈퍼타입 클래스 제외) * 주요 어노테이션 @Inheritance(strategy=InheritanceType.XXX) JOINED : 조인 전략 SINGLE_TABLE : 단일 테이블 전략 TABLE_PER_CLASS : ..