programming

    데이터베이스 인덱스

    데이터베이스 인덱스란?데이터베이스 인덱스는 책의 목차와 비슷한 역할이다 데이터베이스에서 원하는 데이터를 더 빠르게 찾을 수 있도록 도와주는 도구인덱스를 사용하면 검색 속도를 크게 향상시킬 수 있으며, 이는 특히 대량의 데이터를 다룰 때 중요함 왜 인덱스를 사용하는가?만약 인덱스가 없다면, 특정 레코드를 찾기 위해 모든 레코드를 하나씩 확인해야 함하지만 인덱스를 사용하면 특정 컬럼의 값을 기준으로 데이터를 빠르게 찾아낼 수 있다 사전에서 특정 단어를 찾을 때,앞에서 부터 한장씩 넘기는것이 아닌'사과' 면 'ㅅ' 부분으로 바로 넘어가서 찾는것과 비슷한 이치 인덱스의 종류B-Tree 인덱스: 가장 일반적으로 사용되는 인덱스 타입데이터를 트리 구조로 관리하여 빠르게 검색, 삽입, 삭제가 가능하다 대부분의 관계형..

    데이터베이스 Lock의 종류

    Lock 이란여러 커넥션에서 동시에 동일한 자원을 요청할 경우순서대로 하나의 커넥션만 변경할 수 있게 해주는 기능동시성을 제어하기 위한 기능  Lock의 종류1. Shared Lock (공유 락)특징: 여러 트랜잭션이 동시에 특정 데이터(주로 읽기 작업)를 공유할 수 있도록 허용하는 Lock입니다.용도: 데이터를 읽기 위해 사용되며, 다른 트랜잭션이 해당 데이터에 대해 쓰기 잠금을 걸 수 없도록 합니다.장점: 여러 트랜잭션이 동시에 데이터를 읽을 수 있기 때문에 읽기 작업의 효율성을 높일 수 있습니다.단점: 쓰기 작업이 지연될 수 있습니다.2. Exclusive Lock (배타 락)특징: 한 트랜잭션만 특정 데이터에 접근할 수 있도록 허용하는 Lock입니다. 주로 쓰기 작업을 위해 사용됩니다.용도: 데이..

    데이터베이스 정규화

    정규화란? 정규화(Normalization)란 데이터베이스의 데이터 중복과 불일치를 줄이기 위해 데이터 구조를 체계적으로 정리하는 과정 왜하나?일관성,무결성을 높여 데이터 삽입, 수정, 삭제 시 발생할 수 있는 여러 문제를 효과적으로 방지하기 위해서새로운 데이터 형의 추가로 인한 확장 시, 그 구조를 변경하지 않아도 되거나 일부만 변경해도 된다 정규화의 종류제 1정규화(1NF)각 테이블의 모든 필드가 원자값(Atomic Value)을 가져야 한다즉, 하나의 칸에는 하나의 값만 존재해야 한다각 컬럼이 하나의 속성만을 가져야한다.하나의 컬럼은 같은 종류나 타입(type)의 값을 가져야한다.각 컬럼이 유일한 이름을 가져야한다.칼럼의 순서가 상관없어야한다.제 2정규화(2NF)두 번째 정규형은 첫 번째 정규형을 ..

    디비 데드락

    디비 데드락이란? 위 그림처럼 데드락(교착 상태)은 두 개 이상의 트랜잭션이 서로가 점유한 자원을 요청하면서 무한정으로 대기하는 상황이다이로 인해 해당 트랜잭션들은 더 이상 진행할 수 없게 되어 시스템의 성능과 안정성에 부정적인 영향을 미침  데드락이 발생하는 조건 데드락이 발생하기 위해서는 다음 네 가지 조건이 모두 만족되어야 한다상호 배제(Mutual Exclusion): 자원은 한 번에 한 트랜잭션만 사용점유와 대기(Hold and Wait): 이미 자원을 점유한 트랜잭션이 추가적인 자원을 요청하며 대기비선점(No Preemption): 자원을 점유한 트랜잭션은 자발적으로 자원을 해제하기 전까지 그 자원을 강제로 빼앗길 수 없다순환 대기(Circular Wait): 트랜잭션들이 원형으로 자원을 서로..

    [typescript] import,export 구문

    export에는 named export, default export 두가지 방식이 있다1. default exportexport default const A_Module위와 같이 작성하면되고export했을 때는 해당 파일에서 하나의 항목만을 내보낼 수 있고import시에 원하는 이름으로 import 할 수 있음import myModule from './A_module'이런식으로 ./A_module에서 myModule로 바꾸는 식으로 이름으로 바꿀 수 있음2. named exportexport const A_Module위 방식은 내보내진 이름 그대로 import해야하고import 시에 {} 중활호를 꼭 붙여줘야한다import { A_Module } from './A_Module'

    [nodejs]맥북 nodejs 완전 삭제 방법

    # first:lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; donesudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*# To recap, the best way (I've found) to completely uninstall node + npm is to do the following:# go to /usr/local/lib and delete any node and node_modulescd /usr/local/libsudo rm -rf node*# go to ..

    [flutter] Could not find the correct Provider<ProviderClass> above this <WidgetName> Widget 에러 해결

    아직 flutter 학습이 부족하여 내용이 잘못 되었을 수도 있습니다 그냥 해결 방법 정도로 참고만 해주세요  1. 상황 : 외주 받아서 만들고 있는 앱에서flutter_blue 패키지를 사용하여 blue tooth를 스캔하고 연결한 뒤에blueTooth 서비스 정보를 Provider에 담아서 다른 위젯에서 사용하는 코드를 작성중이다아래 코드는 home_body.dart 위젯에서 버튼을 클릭하면bleScan.dart 위젯으로 Navigator.push()를 사용해서 이동하는 코드인데onPressed: () { Navigator.push( context, MaterialPageRoute( ..

    [flutter] android apk 파일 만드는법

    생각보다 엄청 간단함$ flutter build apk --release --target-platform=android-arm64$ flutter build apk --debug --target-platform=android-arm64 다 빌드 되면 이렇게 어느 경로에 apk파일이 생겼는지 콘솔에서 확인 가능합니다