CS

[CS] Transactional

Transactional Transactional을 구현하려면 정의된 비즈니스 로직 앞 뒤에 트랜잭션의 시작(begin)과 끝(commit)을 추가해 주어야 한다. 이를 Spring에선 AOP로 구현하고 있으며, 일반적인 AOP 방법은 2가지. AOP 구현 방법 JDK Proxy (Interface based) spring.aop.pr...

[CS] Refactoring

리펙토링 (리펙터링 2판 - 마틴 파울러) 리펙토링을 할 때는 작은 작업을 한 후 빌드 - 테스트 - 커밋 과정을 꼭 거쳐야 한다! 리펙토링 순서 로직 개선 반복문 쪼개기 (8.7절) : 변수 값을 누적시키는 부분을 분리한다. ...

[CS] Code Complete 정리

Code Complete 고품질 코드 작성 Class 추상 데이터형(abstract data type; ADT), 132p 클래스와의 차이 ...

[CS] API Call limit - 구현을 위한 여러 접근방법과 데이터 조작 방법

자료조사 Techniques for enforcing rate limits (비율 제한을 적용하는 기법) 토큰 버킷: 토큰 버킷은 롤링 및 누적 사용 예산을 토큰의 잔액으로 설정합니다. 이 기법은 서비스에 대한 모든 입력이 요청과 1:1로 대응하지는 않는다는 점을 전제로 합니다. 토큰 버킷은 토큰을 일정한 비율로 추가합니다. ...

[CS] iterator

iterator iterator는 해당 collection 객체를 참조한다. (shallow copy) → 값을 조작하려면 객체 내부값(필드)을 조작해야 한다. iterator 사용시 collection 객체에 대해 add나 remove를 막아놓은 이유 → iterator가 참조하던 위치가 틀어지기 때문 → 막는 방법: iterator.nex...

[CS] Pubsub

Pubsub Spring Integration; Spring에서 lightweight messaging을 가능하게 하고 외부 어플리케이션과 통신할 수 있는 수단을 제공한다 Spring Integration docs.spring.io Producer-Consumer Pattern과 비슷하지만, 해당 패턴의 경우 다음의 문제점이 있음 여러 ...