영상자료


Video Conferencing, Web Conferencing, Webinars, Screen Sharing

들어가며


안녕하세요. Node.js 5기 여러분. Node.js 트랙의 강창민 튜터입니다!

이번 주부터 관계형 데이터베이스를 사용하여 웹 서버를 구성하는 방법에 대해서 본격적으로 공부하고 계신 것으로 알고 있습니다. Prisma를 사용해보면서 데이터베이스를 다루는 데 익숙하신 분들도 있을 것이고, 아직 적응 중인 분들도 있으실 겁니다.

다만, 관계형 데이터베이스에서 ORM은 극히 일부분일 뿐이며 이번 특강 시간에서는 여러분들이 알아두면 좋을 것 같은 내용들에 대해서 좀 다뤄보도록 하겠습니다!

무서운 이야기 잠깐만 듣고 가실게요~


                        출처: https://villaamalia.tistory.com/entry/대한항공-좌석-선택-하는-방법-알아보기

                    *출처: [<https://villaamalia.tistory.com/entry/대한항공-좌석-선택-하는-방법-알아보기>](<https://villaamalia.tistory.com/entry/%EB%8C%80%ED%95%9C%ED%95%AD%EA%B3%B5-%EC%A2%8C%EC%84%9D-%EC%84%A0%ED%83%9D-%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0>)*

😱 무서운 이야기 1

여러분들이 항공편을 예약하는 웹 서비스를 만든다고 가정을 해보겠습니다. 여기서 우리는 특정 비행편의 좌석을 예약할 때 좌석이 중복 예약되지 않도록 일관성을 유지해야 합니다. 예를 들어, 위에서 보이는 스크린샷 기준으로 45A석은 예약이 가능합니다. 그래서 A라는 유저가 45A석을 예약했습니다.

그런데, 이게 사실은 예약이 되어있었던 좌석이라면 어떨까요? B라는 유저가 몇 시간전에 진작에 예약을 했는데 모종의 이유로 예약한 사실이 반영이 안된 것입니다. 그래서 같은 좌석이 중복 예약이 된 사례가 된 것이죠.

이렇게 되면, 이 좌석의 예약 주인은 B라는 유저라고 판단을 하겠지만 (먼저 예약을 완료했으니) A라는 유저는 너무 황당하고 억울할 것입니다. “아니… 예약 완료 되었다고 니들이 그랬잖어…

😱 무서운 이야기 2