전체 글


☰ Index 들어가기 전에@Transactional@Transactional 는 어떻게 동작하는가 ?@Transactional 동작 순서@Transactional 사용 시 주의해야할 점글을 마치며 들어가기 전에SpringBoot 를 사용하여 데이터 베이스를 연결할 때, 사용하던@Transactional 어노테이션이 있다. 해당 어노테이션이 어떻게 동작하는지Spring AOP 를 사용해서 작동하는 것으로 간략히 알고 있다.그래서 이번에 조금 제대로 알아 보려고 한다.@TransactionalSpring Framework에서 하나의 작업 단위를 트랜잭션으로 묶어주는 어노테이션이다.데이터베이스의 ..


☰ Index 다형성다시 상속에 대해서Dynamic Binding & UpCastingUpCasting동적 메서드 탐색과 다형성Super 에 대해서 다형성많은 형태를 가질 수 있는 능력으로 쉽게 말해, 인터페이스에 대해다양한 구현을 가질 수 있는 것을 말한다.다형성도 굳이 나누자면 강제 다형성과 포함다형성으로 나눌 수 있다.1. 강제 다형성상속 관계(혹은 인터페이스 구현)를 통해 발생상위 클래스(혹은 인터페이스)가 선언한 메시지를 하위 클래스에서 재정의(오버라이딩)하여 사용하며동적 바인딩을 통해 실행 시점에서 실제 타입 메서드가 호출 됨2. 포함 다형성타입을 파라미터화해서 다양한 타입의 객체를 처리할 수 있는 ..


☰ Index 합성과 유연한 설계 : 11 Chapter합성은..상속으로 코드 중복을 줄이면 생기는 문제점문제점을 합성으로 해결하기믹스인✅ 마무리 정리 합성은..합성은 상속과 함께 코드 재사용을 피하기 위한 방법 중 하나이다.앞서 알아본 상속의 문제점을 생각해보면 상속은 부모 클래스에 대해서 자세히알고 있어야하며 이로 인해 부모 클래스와 자식간의 결합도가 높아진다.우선 상속의 단점들을 상기시켜 합성의 장점을 알아보자불필요한 인터페이스 상속 문제 해결앞에서 알아본 Java 에서 Stack 객체는 Vector 라는 구조를상속 받아 만들었고 불필요한 상속으로 인해 Stack 에서 자료를 추가하는..


☰ Index 상속과 중복 코드 : 오브젝트 Chapter 010중복 코드를 수정하기상속의 잘못된 예시해결 방법은 추상화?읽고 나서 상속과 중복 코드 : 오브젝트 Chapter 010---중복 코드중복 코드는 말 그대로 중복되는 코드를 의미하며 여러가지 이유로 좋지 못하다.특히 코드 변경에서 좋지 않는데, 만약 중복된 코드들 중 일부분이 변경된다면어떤 코드가 중복인지 찾아야하고,변경 대상 모두 일관되게 변경해야한다. ( 많은 시간이걸림 )간단하게 말했지만, 중복된 코드를 알아보는 것 자체가 많은 수고를 들인다.이런 이유 때문에 코드안에 중복이 존재해서는 안된다는 DRY 원칙을 준수 ..


☰ Index 회고Entity 와 도메인 나누기프로젝트 적용Architecture적용하면서 느낀점 Entity 와 도메인 나누기여태 SpringBoot 로 개발을 해오면서 Entity 와 Domain 을 나눈 경험이 없었는데,이번 사이드 프로젝트를 하면서 나누게 되었다.Q1. 왜 엔티티 클래스 랑 도메인 모델 이랑 나누는 걸까?가장 큰 이유는 관심사 분리라고 한다.내가 말하고 있는 Entity 는 JPA 에서 DB 테이블과 매핑되는 객체를 말하며DB 에 데이터를 저장,수정, 조회 하는 기능에 초점이 맞춰져 있다.반면, 도메인 모델 은 객체 관점에서 시스템이 해결하려는비지니스 문제를 정의하..


☰ Index 들어가기 전에GC Remind - 1 : GC 란 무엇인가?GC Remind - 2 : GC 의 다양한 알고리즘Generation GC최근에 사용되는 GC 알고리즘G1GC✅ G1 GC 정리하자면ZGC✅ ZGC 정리하자면글을 마치며 들어가기 전에저번 글에서 가비지 컬렉터 ( GC ) 의 개념과GC 가 객체를 삭제하는 여러가지 알고리즘에 대해 알아보았다.이번에는 GC 의 동작 방식과 GC 의 종류에 대해서 알아보려고 한다.GC Remind - 1 : GC 란 무엇인가?Garbage Collector : 더이상 참조하지 않는 객체를 제거하여 자동으로 메모리를 관리하는 프로세스GC 덕분에 메모리 누수에..

들어가기 전에트랜잭션 격리 수준을 항해 플러스 과정에서 처음 듣게 되었다. 핑계를 조금 보태자면 세일즈 포스 개발을 업무로 하기 때문에 데이터 베이스에 대해서 거의 무지랭이에 가까운데, 트랜잭션 격리 수준이 과연 무엇을 의미하는 것일까?트랜잭션 격리 수준 정의→ 여러 트랜잭션 수행 시, 데이터를 일관성 있게 보장하는 기준조금 더 풀어서 설명하면여러 트랜잭션이 동시에 수행되다 보면 특정 자원에 동시에 접근하게 된다.이로 인한 동시성 문제는 아래 3가지로 나눌 수 있다.1. Dirty ReadA: 잔액을 100 → 50 (커밋 전)B: 잔액 조회 → 50A: 롤백 → 100B는 잘못된 50을 읽은 셈커밋되지 않은 데이터를 읽는 문제2. Non-Repeatable ReadB: 이름 조회 → "Alice"A: ..