인프런 커뮤니티 질문&답변
Atomicity하게 만들기
작성
·
294
0
interlocked 부분까지 수강하고 든 궁금증입니다.
추후에 나올 수 있으나 ㅠㅠ...... 우선 질문해보겠습니다.
원자성에 대하여 설명을 해 주실 때, 아이템 복사를 예시로 설명을 해 주셨는데요.
설명을 잘 해주셔서 쉽게 이해가 되긴하였는데 ㅠㅜ
이 아이템구매, 또는 거래에 대해서는
C# interlocked 함수로는 처리가 불가할것 같은데, (db갱신도 필요하고 소스 로직도 몇줄이나 처리될지 모르니)
이부분은 그럼 트랜잭션으로 원자성을 보존하나요?
(mysql.data 에서 지원하는 트랜잭션 말씀드립니다.)
아니면 다른 방법이 있나요?
+ mysql을 주로 사용하는데 .data보다는 Entity 프레임웤을 추천하는 경우가 많은데, 서로 어떠한 장단점이 있나요?
저는 쿼리문에 더 익숙해 있는데 ㅜㅜ.. Entity 접근이 어렵더라구요. (물론 추후강좌에 있긴한데 (구매도하였음) 궁금해서요....)
답변 1
0
Rookiss
지식공유자
물론 DB의 transaction을 걸고 실행해야 합니다.
보통 서버 코드에서 선적용 (메모리 적용) -> DB Trans 순서로 하되
DB 저장이 실패한 경우 바로 헤딩 유저를 킥하거나, 하는 식을 대응합니다.
EF Core를 사용하는 것은 시리즈 특성상 인디 게임이니 그런 것이고
보통 회사에서는 ORM을 사용하지 않고
DBA나 서버 프로그래머가 직접 SQL 을 짭니다.





