AOP(Aspect-oriendted Programming)는 OOP를 보완하는 수단으로, 흩어진 Aspect를 모듈화 할 수 있는 프로그래밍 기법 이고, Autowired는 Spring에서 아~주 간편하게 의존성을 주입하는 방법이다. 토이프로젝트를 진행하며 AOP와 Autowired를 함께 사용하다 겪은 문제상황과 이를 해결한 경험을 기록해놓고자 한다. 문제상황 Controller에 Bean으로 등록한 Service를 @Autowired를 통해 주입 받아 사용하려 했지만 BeanNotOfRequiredTypeException이 발생했다. 분명 어제까진 된것 같은데... 뭐때문에 발생한걸까? BeanNotOfRequiredTypeException은 언제 발생하지? spring 문서를 보면 이 Except..
고객사로부터 특정 요청이 간헐적으로 실패가 난다는 이슈가 접수되었다. 로그를 확인해보니 Deadlock exception 발생하고 있었고 이슈를 해결하며 찾아보며 알게된 것들을 정리한다. 환경 DB MariaDB Engine InnoDB Isolation Level Repeatable Read 현상 톰캣 catalina 로그를 확인해보면 아래와 같은 exception 나고 있었다. exception내용 : Deadlock found when trying to get lock; try restarting transaction 일단 exception메시지를 보면 lock을 가져오려 하는데 Deadlock이 발생하여 트랜잭션을 재시작하겠다 정도로 해석할 수 있다. 당장 떠오른 해결방법은 두가지 였고, 장단점은..
회사의 무궁한 발전을 기원하며! 100만 동접을 대비하기 위해 서버의 성능을 측정해 보았다. 구성 인스턴스 구성 aws에 구성하였다. core 1대 * agent 5대 테스트 스크립트 groovy gradle project를 이용하여 스크립트를 작성하였다. 테스트 할때 필요한 의존성 라이브러리를 추가할 수 있다. 테스트 서버 dev zone에 있는 테스트 서버를 대상으로 하였다. 테스트 서버는 라이브와 동일한 스팩으로 구성하였다. 테스트서버는 load balancer에 연결 되어 있고, 서버 인스턴스 10대, db, redis에 연결되어 있다. 테스트 결과 tps 17000정도 나왔다. 생각보다 낮은 tps에 당황 테스트 도중 예상하지 못했던 에러가 발생 하여 서버 튜닝을 함께 진행하였다. 해결한 이슈 ..
00. 선요약 객체지향이란 말 그대로 객체를 지향한다는 것. 클래스가 아닌 객체에 초점을 맞춰야 한다. 객체의 경계를 구분(access modifier 사용하여)함으로서, 객체에 자율성을 보장할 수 있다. 추상화와 구체화의 트레이드오프를 잘 계산하고 상황에 따라 적절한 방식을 선택해야 한다. 상황에 따라 상속과 합성을 적절히 선택해서 사용해야 한다. 01. 영화예매 시스템 요구사항 살펴보기 사용자는 영화 예매 시스템을 이용해 쉽고 빠르게 보고싶은 예매를 할 수 있다. 용어의 정의 영화 상영 할인액을 결정하는 규칙 할인 조건 할인 규칙 예시 영화 할인정책 할인조건 아바타 금액 할인정책 할인액 800원 순번조건 - 조조상영 순번조건 - 10회 상영 기간조건 - 월 10:00 - 12:00 상영 시작 기간조건..
- Total
- Today
- Yesterday