![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cuVTos/btsEAXKp869/CnMk5cX2DAM3eAQ0Vbcqpk/img.png)
비즈니스 메서드를 리팩터링 하는 와중에 아래와 같은 고민이 생겼습니다. @Trasactional(propagtaion=Propagation.REQUIRED_NEW, rollbackFor = Exception.class) public void method(){ readOnlyTxMethod(); // @Transactional(readOnly = true) writeTxMethod(); // @Transactional(rollbackFor = Exception.class) } method()에 지정된 @Transactional으로 인해 read-only Tx와 write Tx가 하나로 묶여 있어 하나의 트랜잭션의 범위가 너무 넓어졌습니다. read-only Tx와 write Tx는 서로 상호 배타적이면서 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b1tJn1/btsCSzKWH6N/hDpQMmpZtU19kv5dkodRqk/img.png)
애자일(Agile)은 소프트웨어 개발 및 프로젝트 관리를 위한 반복적이고 증분적인 접근 방식을 설명하는 통칭적인 용어입니다. 애자일 방법론은 초기에는 주로 소프트웨어 개발에 적용되었으나, 현재는 다양한 산업 및 조직에서도 채택되어 전체적인 프로젝트 관리에 활용되고 있습니다. 애자일은 빠르게 변화하는 환경에서 유연하게 대응하고, 고객의 요구에 빠르게 반응하는 것을 강조합니다. 다양한 애자일 방법론이 있지만, 가장 널리 사용되는 애자일 방법론 중 몇 가지를 아래에서 설명하겠습니다: 스크럼(Scrum) 스크럼은 애자일 개발에서 가장 인기 있는 방법론 중 하나입니다. 작은 팀이 반복되는 주기(스프린트) 동안 일정한 기간 동안 일을 수행하고, 스프린트 종료 후 결과물을 검토하고 다음 스프린트를 계획합니다. 핵심 ..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bpkynC/btsCWJ0bDJg/o0BDKCKHsBjGfAwhBTunV1/img.png)
나선형 모형(Spiral Model)은 소프트웨어 개발 프로세스의 하이브리드 형태로, 폭포수 모형과 반복적 및 점진적 개발을 결합한 모델입니다. Barry Boehm에 의해 제안된 이 모형은 소프트웨어 개발의 복잡성과 위험을 관리하기 위한 목적으로 설계되었습니다. 나선형 모형은 주기적인 루프(나선)를 따라 프로젝트를 진행하면서 반복과 증진을 통해 점진적으로 소프트웨어를 개발합니다. 나선형 모형의 주요 특징은 다음과 같습니다: 나선 구조 나선형 모형은 시간에 따라 나선 형태로 진행됩니다. 각 나선은 프로젝트의 새로운 반복을 나타냅니다. 나선의 각 루프는 계획, 위험 분석, 공학 및 평가 등의 단계를 포함합니다. 반복과 점진적 개발 각 나선은 기존 기능에 새로운 기능을 추가하거나 기능을 수정하는 등의 점진적..
![](http://i1.daumcdn.net/thumb/C148x148.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/RM5HX/btsCU106kB9/kFOtZOUBUozYgZ7KkPL6w0/img.png)
폭포수 모형(Waterfall Model)은 소프트웨어 개발 프로세스의 전통적이고 선형적인 모형 중 하나입니다. 이 모형은 요구 사항 정의, 설계, 구현, 테스트, 유지보수 등의 개발 활동을 단계별로 진행하는 선형 시퀀스를 따릅니다. 각 단계는 이전 단계의 완료 후에 시작되며, 각 단계에서 수행된 결과물이 다음 단계로 전달됩니다. 이러한 특성 때문에 "폭포수"라는 용어가 사용되었습니다. 폭포수 모형의 주요 단계는 다음과 같습니다: 요구 사항 정의 (Requirements) 사용자의 요구 사항을 수집하고 문서화합니다. 시스템이 무엇을 수행해야 하는지에 대한 명확한 이해를 도출합니다. 시스템 설계 (Design) 이전 단계에서 수집된 요구 사항을 기반으로 시스템의 전체적인 아키텍처와 디자인을 수립합니다. 하..