9033 / coding_programming

coding programming of problems
MIT License
0 stars 0 forks source link

(공간)예악 #3

Open 9033 opened 3 years ago

9033 commented 3 years ago

마찬가지로 한 공간에 시간이 겹치지 않기위한 tranaction의 향현... 작성중입니다.

9033 commented 3 years ago

시작 및 종료 시간

시간은 타임존을 고려해서 동작. 프론트에 나오는 시간은 클라이언트의 타임존. 서버에서는 하나의 타임존으로 예약시간이 겹치는지 아닌지 판단. 즉 서버에서는 예를 들면 UTC만 저장됨. 프론트에서는 각 local time zone으로 변환해서 보여주면 된다.

9033 commented 3 years ago

transaction

시작시간, 종료시간, 사용하는 공간, 유저마다 사용가능한 시간이 겹치지 않게 한 트렌젝션으로 묶어서 보아야한다. 테스트 하다가 생각대로 안되는 경우에는 조회하는 쿼리도 추가나 수정하는 쿼리와 한 트렌젝션에서 실행되는지 확인해야 한다.

궁금해서 테스트 해봄. 상대방이 한 트렌젝션에서 조회~수정할때 다른 사용자가 역시 다른 트렌젝션으로 같은 row를 수정하면 어떻게 될까? 결론은 데이터베이스에서 오류가 나면서 수정이 안됨.

9033 commented 3 years ago

간단한 로직이라도 멀티스레드 상황이라는것을 항상 염두해 두어야 한다. OS랑 Database에서는 꼭 필요한 점이다.

생성 화면에서 각 항목에 필요한 값을 넣고 추가 버튼을 2번 눌렀다고 2번 생성되면 감점 시켜야함.