1221 일지

Yesol Lee·2022년 12월 21일
0

개발일지 - 2022

목록 보기
182/187

프로젝트

개발지원

  • 강의 수료 데이터 준비 완료 (3개 강의)

개발

트랜잭션 실패 시 롤백 처리하기

기능테스트 중 작성한 값을 저장하는 로직에서 에러가 났는데 데이터는 들어가 있는 경우를 발견했다. 선임 개발자분이 알려주시기로는 DB 트랜잭션 실패 시 롤백이 되어야 하는데 해당 처리가 안되어있어서 발생하는 에러라고 하셨다. 임시로 롤백 처리하는 방법도 알려주셨는데, 처음 보는 코드라서 따로 검색해보았다.

먼저 트랜잭션 (Transaction)이란, '데이터베이스의 상태를 변화시키기 위해 수행하는 작업의 단위'라고 하는데, 쉽게 말하면 insert, update, delete 후 commit하기 전까지를 하나의 작업 단위로 묶어서 트랜잭션이라고 한다. 마치 무전기에 대고 말을 한 후 꼭 '오바'를 말해줘야 말이 끝났다는 것을 인식하기 쉬운 것과 같다. 무전기는 한 사람이 말하고 있으면 다른 사람은 말할 수 없고 기다려야 하는데, DB도 이와 비슷하다. 한 사람이 insert를 한 후 내 작업이 끝났다고 commit을 하지 않으면, 다른 작업자가 DB에서 작업을 할 수 없는 것이다.

commit하기 전까지가 하나의 트랜잭션이라고 생각하면, 하나의 트랜잭션 안에 여러 개의 작업을 할 수도 있을 것이다. A테이블에 insert, B테이블을 update하는 2개 작업을 한 후 commit을 하는데, 만약 첫번째 작업은 성공했으나 두번째 작업은 실패한 경우를 가정해보자. 경우에 따라 각 작업은 독립적이라 하나가 실패해도 나머지는 수행해도 되는 경우가 있고, 하나가 실패하면 다른 작업도 취소해야 되는 경우가 있다. 두번째 경우처럼 하나의 트랜잭션 안 여러 작업 중 하나라도 실패하면 모든 트랜잭션 작업을 취소해야 되는데, 이것을 롤백(Rollback)이라고 한다.

수정요청사항 반영

  • 팝업화면에서 발신번호, 발신자 이름 수정 가능하게 변경함 (jsp)
  • SMS, MMS 발송 메뉴 통합 (java, sql, jsp, MMS 발송 메뉴 삭제함)
  • 전송타입 변경 메소드 추가 (js)
  • 글자수, 파일 유무 체크해서 전송타입 변경 기능 추가 (js)
  • 그룹 전송 구분값 변경 (sql, jsp)

내일 할 일

수정요청사항

  • 내용, 전화번호 엑셀업로드 기능 구현
  • 문자발송 안되는 사유 안내 : SQL은 조건에 맞는 사람 전부 조회 -> java에서 수신여부, 탈퇴여부 등 조건 걸러서 insert하고 전송 못한 경우 정보 msg로 리턴하도록

통계

  • 메인화면 SQL 쿼리 작성
profile
문서화를 좋아하는 개발자

0개의 댓글