목록전체 글 (220)
코딩하는 문과생
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mxoTD/btsCpNWuGKF/jZc9hEV4QaZlsDzUsH9Dqk/img.png)
프로젝트 투입 전 약간의 시간이 있어, 스프링을 전체적으로 정리중에 있다. 그중 스프링 검증과 예외처리에 대해 한번의 정리가 필요한 것 같아 그 내용을 정리해보려고 한다. 원론적인 이야기는 배제하고, 실무적으로 필요한 것만 정리한 내용이다. [Spring AOP] Spring은 공통 관심사와 비즈니스 로직을 분리할 수 있도록 AOP기능을 제공한다. 즉, 비즈니스 로직에 모든 것을 담으려하지 않고, 예외처리나 로깅 등은 공통 관심사로 뽑아내어 로직을 만들어 핵심 비즈니스 변경 시 영향도를 최대한 줄이고자 한다. [포인트 컷과 어드바이스] 조인 포인트(Join point) Advice가 적용될 수 있는 위치. AOP를 적용할 수 있는 모든 지점. 스프링 AOP는 프록시 방식을 사용하기 때문에 조인 포인트는 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/luUN6/btsyVaOybFk/oDkoR7ENTHWzTkfIt1SSs1/img.png)
[서론] CI/CD 중요도가 날로 갈수록 중요해지고 있다. 팀에서도 젠킨스를 사용하여 빌드 및 배포중이었고, 좀 더 나은 방식을 고민하다가 CI/CD 와 관련된 온라인 강의를 수강하였다. 해당 강의는 로컬에서 도커컨테이너와 쿠버네티스를 이용하여 CI/CD를 구축하고, 마지막 부분에서는 AWS에 Jenkins와 Ansible, Docker 등 서비스를 올려 배포를 진행한다. 강의를 마무리하는 단계에서 마지막 내용만 간략하게 정리해보고자 한다. 아키텍처는 다음과 같다. 1. GIT에 커밋하면 Jenkins가 자동으로 빌드하여 war 파일을 만든다. 2-1. 바로 tomcat-server(tomcat 9 버전 설치)에 war 파일을 배포하여 서비스 운영 2-2. war + tomcat9를 도커 이미지로 만든 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bbyyQO/btsyLLBJWld/WLb5FrOq4Lu4WYSgqQbZSK/img.jpg)
[서론] 팀마다 사용하는 DB가 다를 것이다. 그리고 동기화하는 방법도 여러가지겠지만, CDC 인터페이스 중 Quest Software사의 Shareplex 솔루션을 간단히 정리해보고자 한다. [인터페이스 유형] * MQ : 비동기 메시지 서비스 / 서비스 및 이벤트간 연계 / 높은 응집도, 낮은 결합성 / 오픈소스 기반으로 낮은 유지보수성 * CDC : DBMS간 연계 솔루션 / 데이터 간 연계 / 양방향 데이터 동기화 문제 [Shareplex] 소스와 타켓 간 DB동기화를 Redo/Archieve Log를 사용하여 진행한다. [동기화 순서] 1. 소스에 DML이 발생하면, 로그가 Capture 프로세스에 의해 Capture 큐에 Insert된다. 2. Read Process는 Capture 큐에 쌓인..
[서론]본인이 속한 팀에서는 배치서버를 사용하여 대용량 데이터의 집계를 하거나 타 시스템과 데이터를 주고 받는다. 그러나 최근 들어 9시, 10시, 11시 등 정각에 특정 프로세스의 CPU 100% 점유가 5분 이상 지속되는 등 특정 시간에 일부 배치가 몰려 있어 각 업무별 배치의 스케줄링 조정이 필요했다. [본론]대처방안은 아래와 같다.1. 서버 추가 및 장비 업그레이드본인 팀에는 배치서버가 2개 있다. 1번기가 Main이며, 2번기는 failover를 위해 항시 대기중인 서버이다. 다만 1번기의 프로세스들의 cpu점유율이 너무 높아 cpu 코어를 업그레이드 하거나 신규 서버를 추가하는 방안이 고려되긴 했지만, 결국 물리적 장비를 추가 또는 업그레이드하는 건 비용적 측면을 고려해야 한다는 점에서 기각..