TIL💡(277)
-
[SQL Server] Lock
1. Lock 기본 🔥 Lock이란? 같은 자원을 액세스하려는 다중 트랜잭션 환경에서 데이터베이스의 일관성과 무결성을 유지하려면 트랜잭션의 순차적 진행을 보장할 수 있는 직렬화(Serialization) 장치가 필요하다. 이런 직렬화를 가능하게 하려고 모든 DBMS가 공통적으로 사용하는 매커니즘이 바로 Lock이다. 🔥 공유 Lock과 배타적 Lock 공유 Lock - 읽기 모드로 데이터 읽을 때 사용 - 다른 공유 Lock과는 호환되지만 배타적 Lock과는 호환 X 배타적 Lock - 쓰기 모드로 데이터를 변경할 때 사용 - 트랜잭션이 완료될 때까지 유지 - Lock이 해제될 때까지 다른 트랜잭션은 해당 리소스에 접근 불가 🔥블로킹과 교착 상태 ① 블로킹(Blocking) Lock 경합이 발생해 특정 ..
2022.02.08 -
[객체지향] 객체지향의 사실과 오해(토끼책) Ch4 ~ 7 정리
04.역할, 책임, 협력 최후통첩 게임을 통해서 인간은 절대적으로 이기적이고 합릭적인 존재로 사는 것이 아니라, 문맥에 따라 본연의 특성을 배제하고 자신의 이익을 최소화하는 불합리한 선택을 하기도 한다. 객체 세계에서도 협력이라는 문맥이 객체의 행동 방식을 결정한다. 책임 객체 지향의 세계에서는 어떤 객체가 어떤 요청에 대해 대답해줄 수 있거나, 적절한 행동을 할 의무가 있는 경우 = 책임 책임은 객체지향 설계의 가장 중요한 재료로서, 소프트웨어 객체에 책임을 적절하게 할당해야 한다. 책임은 객체의 공용 인터페이스(public interface)를 구성하고, 이는 캡슐화로 이어진다. 역할 역할을 통해 협력을 단순화할 수 있다. 다양한 객체들이 동일한 협력에 참여할 수 있기 때문에 재사용성이 높아진다. 역..
2022.02.06 -
[객체지향] 객체지향의 사실과 오해(토끼책) Ch1 ~ 3 정리
01. 협력하는 객체들의 공동체 흔히 객체 지향이 실세계의 투영이며, 객체란 현실 세계에 존재하는 사물에 대한 추상화라고 한다. 그러나 객체 지향의 목표는 실세계를 모방하는 것이 아니다. 오히려 새로운 세계를 창조하는 것이다. 객체 세계 현실 세계 효과 객체 스스로 생각하고 스스로 결정하는 현실세계의 생명체 캡슐화(Encapsulation)하는 소프트웨어 객체(Autonomous)의 자율성 설명 협력 현실 세계의 사람들이 암묵적인 약속과 명시적인 계약을 기반으로 협력하며 목표를 달성하는 과정 메시지를 주고 받으며 공동의 목표를 달성하기 위해 협력하는 객체들의 관계 설명 협력을 위해 특정한 역할을 맡고 역할에 적합한 책임을 수행한다. 협력의 개념 여러 사람이 동일한 역할을 수행할 수 있다. 역할은 대체 가..
2022.02.05 -
SQL Server로 Index 실습
회사에서 과제로 SQL Server를 학습해야해서 개인적으로 퇴근 후 실습을 수행하였다. 다만 SQL Server가 Mac용으로 릴리스되지 않아서 대체재로 Docker의 Azure SQL로 데이터베이스 서버 역할을 수행하도록 하였다. 1. 데이터베이스 만들기 --- 새 데이터베이스 만들기 IF NOT EXISTS ( SELECT name FROM sys.databases WHERE name = N'TutorialDB' ) CREATE DATABASE [TutorialDB] GO --- 쿼리 저장소 기능 사용 ALTER DATABASE [TutorialDB] SET QUERY_STORE=ON GO 그 결과 아래 데이터베이스가 생성된 것을 확인할 수 있었다. 이전에 데이터베이스에 대해 열심히 공부하지 않았을..
2022.01.30 -
[.NET] Apple M1 .NET Core 설치 과정
.NET Core은 마이크로소프트의 오픈소스로서 기본적으로 윈도우에서 최적화되어 돌아가지만, Mac에서도 설치하여 사용가능하다. 윈도우 버전에 비해 성능은 떨어지지만 Mac을 위해 Visual Studio for Mac도 존재한다. 하지만 그것마저도 기존의 인텔 칩 위주이다보니 도큐먼트에는 아직 M1에 대한 설명이 부족해서 설치과정에서 여러모로 험난했다. 어려워도 회사 퇴근 이후에 개인적으로 프로젝트를 하기 위해서는 필수적으로 .NET Core 개발을 진행해야했기 때문에 열심히 시도한 결과 해냈다! 사실 별 거 없지만 또 다시 이렇게 고민하면 시간이 너무 아까워서 정리한다. 해결 요약 1. Homebrew에 이미 설치하지 않았나 생각을 해본다. 만약 기억이 나지 않는다면 homebrew --list로 h..
2021.12.24 -
[npm] Please add a browserslist key to your package.json.
요즘 회사 내 개인 프로젝트로 .NET Core를 사용한 dApp 만들기를 수행하고 있다. 그런데 좀처럼 마음대로 굴러가는 게 하나도 없다 😂 특히 실행부터 문제가 발생한다. 분명 난 하나도 건들지 않고 빌드 후 실행만 하는 건데도 npm 자체에서 이렇게 오류가 뜨니 난감할 따름이다. react-scripts를 사용하면서 browserslist를 설정하라는데, 난 이미 설정했단 말이다!! Broswerslist란 어떤 브라우저가 프론트엔드로 지원되는지를 명시하는 툴이다. 이를 통해 최신 자바스크립트 features를 사용할 때 더 나은 퍼포먼스를 보여줄 수 있다. Legacy Bundle : Contains polyfills, larger bundle size, compatible with old bro..
2021.12.23