트랜잭션이란? 트랜잭션은 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위. 또는 한꺼번에 모두 수행되어야 할 일련의 연산들을 의미합니다. 데이터베이스 시스템에서 병행 제어 및 회복 작업 시 처리되는 작업의 논리적 단위로 Commit 되거나 Rollback 되어야 합니다. 트랜잭션을 쓰는 이유는 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구하기 위해서죠. 트랜잭션 특성 (ACID) 트랜잭션은 아래 4가지 특성을 가집니다. Atomicity(원자성) 트랜잭션의 연산은 DB에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 합니다. Consistency(일관성) 트랜잭션 실행을 성공적으로 ..
TypeScript(TS)를 공부한 내용에 대해 기록합니다. 왜 TS를 공부하게 되었는지? 저는 Nest와 TS를 동시에 배우게 된 케이스입니다. 아니 Nest를 먼저 배웠어요. 사실 JS도 기초만 안 상태였는데, 3시간짜리 유튜브 영상으로 TS가 뭔지 대충 맛만 보고 인프런 강의로 Nest 공부를 시작했죠. [지금 무료] 따라하며 배우는 NestJS 강의 - 인프런 이 강의를 통해 NestJS에 대해서 배울 수 있습니다., 노드 개발자라면 주목!요즘 뜨는 NestJS를 소개합니다. 강의 소개 안녕하세요. 이번 강의에서는 NestJS에 대해 다뤄봤습니다. NestJS는? [사진] 강력 www.inflearn.com 이게 뭐야. 뭐 하는 거지? 싶은 나날들이 지나다가 어느 순간 Nest 구조가 조금 익숙해..
둘 다 자바스크립트 아닌가요? 뭐가 다른거죠? 언어는 같으나 실행 환경과 목적이 다릅니다❗ Javascript Javascript는 HTML에 종속되어 있는 스크립트 언어이며, 동적인 HTML DOM 조작을 위해 사용됩니다. Javascript를 해석하는 주체는 웹 브라우저(구체적으로 말하면 웹 브라우저에 탑재된 엔진)입니다. 대표적으로 Chrome에서 사용한 V8이 있죠. Chrome : V8 Firefox : SpiderMonkey Safari : JSCore MS Edge : Chakra Opera : Carakan Adobe Flash : Tamarin Javascript는 웹 브라우저에서 HTML이라는 문서를 다루는 용도로 사용되는 언어라고 할 수 있습니다. console.log(this); /..
.gitignore 이란? .gitignore파일이란 Git 버전 관리에서 제외할 파일 목록을 지정하는 파일입니다. git add가 되지 않게 파일을 필터링할 목록을 기록해둡니다. 예를 들어 아래와 같은 파일들이 들어갑니다. npm module .env `npm module` 폴더는 용량이 크기도 하고, 프로젝트를 clone 받은 다음에 직접 npm install 해주는 것이 더 효율적이기 때문에 올리지 않는게 좋습니다. `.env`에 작성되는 암호 및 환경 변수들은 Github에 public으로 노출이 되면 악용될 사레가 있기 때문에 올리지 않아야 합니다. gitignore.io 이를 일일히 찾고 작성하는 일은 번거로운 일이겠죠? 이를 도와주는 사이트가 있습니다. 언어나 OS, Framework, ID..
npm이란? Node.js의 패키지를 관리할 수 있는 도구입니다. 모듈들을 패키지화하여 모아둔 저장소의 역할과, 패키지 설치 및 관리를 위한 CLI를 제공합니다. 일반적인 경우 Node.js를 설치하면 자동으로 설치됩니다. # 설치 버전 확인 node -v npm -v package 설치 npm에선 누구나 자신이 작성한 패키지를 공개할 수도 있고 필요한 패키지를 검색하여 재사용할 수도 있습니다. npm install 패키지명 # i로 축약 가능 npm i 패키지명 # 버전 지정 가능 (Semantic Versioning) npm i 패키지명@버전이름 # 한번에 여러개의 패키지 설치 가능 npm i 패키지명 패키지명2 package 설치 확인 # 설치된 패키지 확인 npm list npm ls # dept..
객체 관계 매핑(Object-relational mapping; ORM)은 관계형 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 자동으로 매핑(연결)해주는 프로그래밍 기법을 말합니다. 객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용하기에 객체 모델과 관계형 모델 간의 불일치가 생기게 됩니다. 1. 세분성(Granularity) 데이터베이스의 테이블수 보다 더 많은 클래스 객체 모델이 있을 수 있기 때문에 생기는 불일치 문제입니다. 객체 모델이 관계형 모델보다 더 세분화되어있기 때문입니다. 2. 상속성(Inheritance) 관계형 데이터 베이스에 상속의 개념이 없어 생기는 불일치 문제입니다. 단순히 데이터 베이스 칼럼과 클래스 필드를 매칭 하는 것은 ..
Github에 관한 내용을 다룹니다. + 명령어 미리 보기 더보기 # 초기화하기 git init # 추가할 파일 더하기 (.의 경우는 해당 폴더에있는 파일 전부를 선택) git add . git add 파일명 # 상태 확인 git status # 히스토리 만들기 -m 옵션으로 커밋메시지 작성 git commit -m "커밋메시지" # Github repository를 로컬 프로젝트랑 연결 git remote add origin 저장할 깃허브 레포지토리 URL 입력 # 연결상태 확인 git remote -v # 마스터 브랜치로 업로드 git push origin master # gitclone git clone 주소 폴더명 # 브랜치 생성 git checkout -b 브랜치이름 # pull git pull..
제시된 파형을 보고 입력을 분석한 뒤, 미·적분 합산회로를 구성하여 시뮬레이션 해보았습니다. 제시된 파형은 위와 같고, 삼각파와 삐침을 보고 클럭펄스의 미분+적분임을 짐작해 볼 수 있습니다. 즉, 입력 전원이 x, 출력이 f일 때, 회로도는 아래와 같습니다. 다음은 위 회로도를 바탕으로한 시뮬레이션입니다. 미 ·적분 그래프가 잘나오는 저항과 캐패시터를 사용하여 위와 같이 회로를 구성하였으며, 결과 그래프는 다음과 같습니다. 제시된 파형과 같은 파형(보라색)이 나타난것을 확인할 수 있었습니다. 감사합니다 공부한 내용을 복습/기록하기 위해 작성한 글이므로 내용에 오류가 있을 수 있습니다.