AOP는 뭘까? 객체지향적인 코드를 다른 방식으로 구성한 방식. Call Exit 부분이 공통적으로 되어 있는 코드들이 있을 때 사용할 수 있는 기법 대표적으로 사용하고 있는 @Transactional 로그 찍을 때 그 외 AOP는 어떤 것을 지원할까? Before 특정 메소드가 실행되기 전에 대한 행동을 정의 After returning 특정 메소드가 정상적으로 실행되고 나서 일어날 행위를 정의 After throwing 특정 메소드가 실행되면서 에러가 났을 때 일어날 행위를 정의 After 특정 메소드가 실행되면서 정상적으로 끝나든 에러가 나듣 상관없이 일어날 행위를 정의 Around 특정 메소드 전 후의 행위를 정의 그렇다면 Spring AOP를 어떻게 정의해야 할까? Spring AOP의 목표는 ..
Spring Transactional 스프링 Transaction 처리는 PlatformTransactionManager를 구현한 클래스를 통해 처리한다. 이를 구현한 클래스는 DataSourcePlatformTransactionManager, HibernatePlatformTransactionManager, JpaPlatformTransactionManager 등 다양하게 존재한다. (여기에서도 느껴지는 스프링의 철학. 역할과 구현을 분리. PlatformTransactionManager라는 역할을 만들고 이를 구현한 클래스를 각 상황에 맞게 사용) 예외처리 Transactional 어노테이션을 감싼 메소드에서 RuntimeException의 경우에는 롤백이 일어나고, checkedException(가..

우리는 항상 ArrayList가 thread safe하지 않다는 것을 들어봤을 것이다. 저도 항상 인지만 했지 왜 thread safe 하지 않다는 것이지? 우선 synchroinzed 제어자를 사용하면서 해당 메소드 또는 크래스 단위에서 락을 걸어서 멀티 스레드에 대해서 안전성을 보장하는 것은 대표적으로 Vector 가 있다. 하지만 ArrayList의 경우에는 이러한 제어자가 없다. 그러면 ArrayList에서 thread에 대한 체크를 하지 않는다는 것인가? 체크를 한다면 어떻게 체크를 하지? 그러면 에러가 날까? 이렇게 생각을 하다 ArrayList에 대해서 자세히 볼려고 한다. 우선 공통적으로 Collection 프레임 워크에서 modCount라는 것을 통해 값이 추가되거나 삭제 될 때 modC..

싱글톤 인스턴스에서 가장 조심해야 할 것은 자원을 공유하는 것이다. 우선 싱글톤에 대해서 모르시면 이 글을 참고해주시길 바랍니다. https://vixxcode.tistory.com/190 [Pattern][Java][Python] Singleton 생성 패턴에 대하여 1. GoF 디자인 패턴 의도 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공 활용성 1. 클래스의 인스턴스가 오직 하나여야 함을 보장하고, 잘 정의된 접근점 vixxcode.tistory.com 싱글톤 인스턴스에서 자원을 공유하면 어떤 일이 일어날까? 그림대로 손님1과 손님2 두 클라이언트가 있다고 하자. 그리고 Shop이란 클래스는 싱글톤으로 관리되고 있으며 price라는 변수를 공유하여 쓰고 있는..
필자는 Map 인터페이스를 구현하고자 할 때 보통 HashMap을 사용한다. 근데 그 이유를 모르고 써서 이번에 알아보려고 한다. 1. 부모 클래스 - AbstractMap.java AbstractMap은 디자인 패턴 중에 템플릿 패턴을 사용하였으며, 자바 이팩티브 저자가 말하길 SkeletonMap과 같이 Skeletonxxx 와 같은 네이밍이 더 적절하다고 생각했지만 이미 다른 곳에서 Abstract으로 썼기에 그렇게 사용했다고 한다. 2. 인터페이스 - Map, Clonable, Serializable 1. Map 컬렉션 인터페이스 중 하나로서 해쉬 형태의 추상클래스로서 역할을 한다. 다른 컬렉션 인터페이스와 차이점이 있다면 inner interface인 Entry가 있다는 것이다. Entry인터페..
- Total
- Today
- Yesterday
- headers
- Celery
- PostgreSQL
- 파이썬
- env
- Pattern
- Command Line
- 2021 KAKAO BLIND RECRUITMENT
- Spring
- 프로그래머스
- Python
- postgres
- DRF
- dockerignore
- 알고리즘
- docker-compose
- 자바
- ubuntu
- 그래프
- BFS
- Linux
- thread
- 카카오
- setattr
- django
- docker
- 면접
- Collections
- 백준
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |