221122 메모장
오전에는
비대면 사업자인증서 발급서비스 테스트를 요청 받아 테스트 진행을 하였다.
결제까지 실제로 진행을 하였고 198000원은 내일 환불 받을 예정이다..
몇 가지 문제들이 보였는데, 모바일 신분증 확인에서 이미지가 깨진다거나, 웹이 어떤 특정 구간 크기일 때 버튼이 안눌린다거나, 기본적으로 작은화면 일때 글자가 배열이 많이 깨지는 것 같다.
궁금한건 우리 연구본부에서 만든 웹이 아니여서, 이게 어느팀에서 만든건지 잘 모르겠다. 우리 회사가 만든건지 외부업체에 맡긴건지 조차 말이다.
점심에 커피를마시면서 사전과제,코테 얘기가 나왔고 얘기 중에 동시성 문제가 나와서
트랜잭션에 대해서 조금 더 공부하고자 인프런 강의를 다시 찾아들을예정이다.
@Transactional 이 어디까지 해주는지가 잘 기억이 나지않는다. 그리고 오늘 중으로 통합인증 웹 어드민 API 설계를 거의 다 마무리 할 예정이다, 오늘 내일 중으로 시큐리티,타임리프,jpa,querydsl,lombok,h2(임시),spring web을 import한 프로젝트를 시작할 예정이다.
시큐리티 부터 일단 설정 구상을 한 뒤 아주아주 간단한 html 뼈대를 만들고 나서 백엔드 부터 api 및 서비스,리포지토리, 엔티티,dto,기타 설정 등을 완료하고
프론트에 data 및 view 가 잘넘어가는지 볼 예정이다
그 다음 현재 공부가 되있는데까지 페이지네이션, 검색을 구현하고 html을 타임리프로 동적 생성하여
사이드바, 상단 바, 가운데 본문으로 구성 된 틀을 구축할 것이다.
어플리케이션이 총 3개가 나와야하니,
12월 말 까지 기능이 어느정도 (예외처리, 유효성, 로그 처리, 서버 구성) 을 하려면 mvp 가 빨리 나오는 것이 좋을 것 같다.
오후에는 양승택 박사님, Quantum Computer and Cryptography 세미나가 있고, 대면참석을 할 에정이다.
트랜젝션 레벨
(1) 커밋되지 않은 읽기 - > 문제가 너무 많다, 안씀
(2) 커밋된 읽기 -> 대부분 이걸 사용 ,커밋 완료된 데이터만 다른 세션에서 읽을 수 있음
(3) 반복가능한 읽기
(4) 직렬화 가능
Auto commit을 false로 하는 것을 트랜젝션 시작이라고 부름, 디폴트는 true
DB는 같은 자원을 동시에 접근 하는 것을 막기위해 lock을 제공함
이 lock 동작 순서를 보면
세션 A가 데이터 A의 변경을 시도 할 때 데이터 A의 락은 세션A한테 넘어간다. (커밋 대기)
세션 B가 데이터 A의 변경을 시도 할 때 데이터 A의 락이 없으므로 대기상태로 돌아간다.
세션 A가 커밋을 진행한다 -> 락이 데이터A에 돌아감
세션 B가 이제서야 데이터 A의 락을 받아오고 변경을 시도할 수 있게 된다.
서비스단에서 조회를 할 때 DB 접근을 select for update를 사용해 조회시점에 락을 가져가게끔 하자
그러면 동시 접근 제어를 막을 수 있으며, 한정 수량을 넘어 가는 구매 등을 막을 수 있을 것으로 예상된다