본문 바로가기
728x90
반응형

분류 전체보기281

C#] Method Parameters - parameters 전달 C#에서 arguments는 value 또는 reference로 parameter로 전달될 수 있다. C# types은 reference type(class) 이거나 value type(struct)일 수 있다. value 전달은 변수의 copy를 함수로 전달한다는 의미이다. reference 전달은 변수 접근을 함수로 전달한다는 의미이다. reference type의 변수는 데이터의 reference를 포함한다. value type의 변수는 데이터를 직접 포함한다. struct는 value type이기 때문에, 함수에 struct를 전달할 때, 함수는 struct arguments의 copy를 받아 처리한다. 함수는 호출한 함수의 원본 struct에 접근할 수 없으므로, 수정할 수 없다. 함수는 오직 .. 2023. 8. 22.
.NET Core MVC] EF Core - 5.복잡한 data model 생성 앞의 tutorial에서는 3 entities의 간단한 data model을 다루어보았다. 추가 entities와 관계를 설정하고 data model을 customize해보자. Customize the Data model attribute를 사용해서 data model을 customize해보자. DataType attribute 학생 등록일에 대해 날짜까지만 관리하지만, web page는 data와 time을 표시한다. annotation attribute를 사용하므로 web page에서 날짜까지만 표시하도록 수정할 수 있다. [DataType(DataType.Date)] [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode .. 2023. 8. 7.
.NET Core MVC] EF Core - 4.Migrations Migrations 개발자가 새 application을 개발할 때, data model이 자주 변경된다. model을 변경할 수록 database와 sync가 맞지 않게된다. 이 튜토리얼을 시작단계에서, EF 설정을 하면서 없었던 database를 생성했다. 이후로, data model이 변경되면 database를 지우고 EF는 data model에 맞는 database를 생성하고 test data를 주입한다. 이 방법은, application을 production 상태로 배포하기 전까지 사용할 수 있다. production 상태의 서비스는 유지해야 하는 데이터를 저장하기 때문에, 새 컬럼을 추가할 때마다 모든 데이터를 날릴 수는 없다. EF Migration은 database를 지우고 다시 만드는 방법.. 2023. 8. 7.
MSSQL Server] 2. Lock, 트랜잭션 격리 수준 지난 post에서 SQL Server에서 사용하는 주요 lock types에 대해 살펴보았다. 이번 post에서는 트랜잭션 격리 수준과 locking 동작에 어떤 영향을 주는지 살펴보자. 트랜잭션이란? transaction이란 작업단위(unit of work)이다. 계좌이체를 할때, system은 하나의 계좌에서 인출해서 다른 계좌에 입금하는 하나의 단위작업을 수행한다. 인출과 입금이 2개의 독립적인 작업이라도, 중간에 멈추면 안되기 때문에 하나의 작업처럼 실행된다. transaction에 대해서 잘 알려주는 ACID라는 유용한 용어가 있다. (A) - Atomicity 또는 'all or nothing'. 모든 변경이 저장되든지 아무것도 변경되지 않든지 둘 중 하나이다. (C) - Consistency.. 2023. 8. 7.
MSSQL Server] 1. Lock Types 개발자에게 도전적인 과제 중 하나는, multi-user 환경에서 시스템을 어떻게 매끄럽게 동작하게 하는가 이다. 개발환경에서는 완벽하게 동작하던 코드도, 수많은 사람들이 접속하는 환경에서는 문제가 생긴다. 그 이유로는 timeouts, deadlocks 등이 있다. SQL Server가 낮은 단계의 read uncommitted level로 사용하더라도 locking, blocking, deadlock은 여전히 발생한다. lock types에 대해 알아보자. lock이란 무엇인가? 간단히 말해서, in-memory structure이다. 이 structure는 onwer, type, 보호하는 row, page, table, file, database등을 연결하는 resource hash를 갖는다. SQ.. 2023. 8. 7.
MSSQL] Schema Locks DB 엔진 isolation 수준 Read uncommitted : 물리적으로 손상된 데이터만 읽지 않음 Read committed : 이전에 읽은 수정되지 않은 데이터를 읽을 수 있음, SQL Server 기본수준 Schema Lock Sch-S(스키마 안정성 잠금) : SQL Server DB 엔진은 쿼리를 컴파일하고 실행할 때 스키마 안정성(Sch-S) 잠금을 사용합니다. 배타적 잠금등의 트랜잭션 잠금을 차단하지 않습니다. transaction isolation 수준에 상관없이 발생한다. Sch-M을 제외한 모든 Lock과 호환된다. 테이블을 생성하고, 데이터를 추가하였다. create table dbo.LockData ( Id int not null, Placeholder char(200) not.. 2023. 8. 2.
728x90
반응형