23.09.13
오늘 한일)
1)
AOP 라이브러리 추가 및 루트 컨테이너에 AOP 네임스페이스를 추가하고,
PointCut을 관리하는 클래스를 작성 하고, 모듈화 했다.
또한, 어드바이스 로직을 작성 했다.
2)
마이페이지 에서 회원이 가지고 있는 쿠폰의 정보를 보는 페이지에서,
회원이 가진 쿠폰이 일정 개수 이상으로 넘어 가면, 쿠폰이 웹페이지에서 밀리는 현상이 발생 했다.
CSS 를 수정 해서 이슈를 처리 했다.
3)
마이페이지 회원 정보 수정 기능 이용시, 전화번호 변경을 하는 경우,
모델에서는 유니크 키로 설정되어있는 칼럼이지만,
View 에서 변경 하려고 하는 전화 번호가 다른 회원의 전화 번호와 중복 되면,
중복 되는 전화 번호로 변경이 불가능 하다는 안내 추가해서, 사용자 편의성을 보완 했다.
오늘 이슈)
1)
사용자가 구매하려고 하는 상품의 개수보다 DB에 존재하는 해당 상품의 재고의 개수가 더 적으면,
구매가 되지 않아야 하는데, 구매가 되서 DB에 음수값으로 데이터가 저장 되는 이슈가 발생 했다.
값을 비교해서 재고의 개수가 더 적으면,
구매가 되지 않도록 View와 Controller 에서 유효성을 추가할 예정 이다.
이번주 할일)
1)
컨트롤러 추가 및 수정한 부분 액셀을 수정할 예정 이다.
2)
피그마에 관리자 페이지 - 회원 관리 관련해서 업데이트 할 예정 이다.
3)
피그마에 쿠폰 관련 추가된 부분들을 업데이트 할 예정 이다.
4)
컨트롤러 로직 프로세스에 추가된것들 업데이트 할 예정 이다.
5)
사용자 편의성 보완 해야 하는 부분들을 업데이트 할 예정 이다.
느낀점)
1)
상품 결제와 같은 로직이라던지, 등등
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행 하기 위한 작업의 단위가 있을 때,
이를 관리 해야 겠다는 필요성을 느꼈다.
트랜잭션 이라는 개념에 대해 알게 되어, 의미 있는 시간 이였다고 생각 한다.
트랜잭션 이란 ?
데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행 하기 위한
작업의 단위 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미.
트랜잭션의 특징
1)
트랜잭션은 데이터베이스 시스템에서 병행 제어 및 회복 작업시 처리되는 작업의 논리적 단위.
2)
사용자가 시스템에 대한 서비스 요구 시 시스템이 응답하기 위한 상태 변환 과정의 작업 단위.
3)
하나의 트랜잭션은 Commit 되거나 Rollback 된다.
트랜잭션의 성질
1)
Atomicity == 원자성
>>
트랜잭션의 연산은 데이터베이스에 모두 반영되거나 아니면 전혀 반영되지 않아야 한다.
>>
트랜잭션 내의 모든 명령은 반드시 완벽히 수행 되어야 하고,
모두가 완벽히 수행 되지 않고 어느 하나 라도 오류가 발생 하면,
트랜잭션 전부가 취소 되어야 한다.
2)
Consistency == 일관성
>>
트랜잭션이 그 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 변환 한다.
>>
시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
3)
Isolation == 독립성 == 격리성
>>
둘 이상의 트랜잭션이 동시에 병행 실행 되는 경우,
어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산지 끼어 들 수 없다.
>>
수행중인 트랜잭션은 완전히 완료될 때 까지 다른 트랜잭션에서 수행 결과를 참조 할 수 없다.
4)
Durablility == 영속성 == 지속성
>>
성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
트랜잭션 연산 및 상태
Commit 연산
>>
Commit 연산은 한개의 논리적 단위 == 트랜잭션 에 대한 작업이 성공적으로 끝났고,
데이터베이스가 다시 일관된 상태에 있을 때,
이 트랜잭션이 행한 갱신 연산이 완료된 것을 트랜잭션 관리자에게 알려주는 연산.
Rollback 연산
>>
Rollback 연산은 하나의 트랜잭션 처리가 비정상적으로 종료되어 데이터베이스의 일관성을 깨뜨렸을 때,
이 트랜잭션의 일부가 정상적으로 처리되었더라도 트랜잭션의 원자성을 구현 하기 위해,
이 트랜잭션이 행한 모든 연산을 취소 하는 연산.
>>
Rollback 연산시에는 해당 트랜잭션을 재시작하거나 폐기 한다.
'Team Project (국비) > Team Project 메모' 카테고리의 다른 글
최종프로젝트 쿠폰 기능 관련 코드 (결제페이지 쿠폰 적용) (0) | 2023.09.16 |
---|---|
최종프로젝트 쿠폰 기능 관련 코드 (결제페이지 쿠폰 확인) (0) | 2023.09.16 |
최종프로젝트 쿠폰 기능 관련 코드 (마이페이지 쿠폰 확인) (0) | 2023.09.16 |
최종프로젝트 쿠폰 기능 관련 코드 (추천인 기능) (0) | 2023.09.16 |
최종프로젝트 Controller, View 파트 진행도 (0) | 2023.09.15 |