전체글
3
로컬 데이터베이스(파일 DB) 총정리 한눈에 보기 서버 없이 하나의 파일(혹은 소수의 파일)에 데이터를 저장·조회할 수 있는 엔진들을 “로컬 데이터베이스” 또는 “임베디드 DB”라 부른다. 설치가 간단하고, 배포·백업이 쉬워 모바일·데스크톱·IoT·클라이언트-사이드 웹 앱에 널리 쓰인다. 왜 로컬 DB인가? 분류 & 대표 엔진 주요 엔진 살펴보기 3-1. SQLite 언어 바인딩: C/C++ core, 거의 모든 언어에서 지원 특징: 풀(Full)-SQL 92 지원, WAL(Write-Ahead Log) 모드, 확장 모듈(FTS, JSON1) 장점: 신뢰성·성숙도 최고, 단일 ①파일. 제약: 동시 다중 쓰기 성능 한계(로그 기반으로 완화). 3-2. DuckDB 포지션: “로컬용 미니 OLAP” 특징: 컬럼 저장, 벡터화 실행 엔진, Parquet/CSV 직접 읽기·쓰기, Python/R 연동 탁월. 사용 예: 데스크톱 데이터 분석 툴, Jupyter 노트북. 3-3. LevelDB / RocksDB 구조: LSM-Tree 기반 키–값 스토어 LevelDB = Google, RocksDB = Meta(페이스북)에서 포크 후 고성능화 장점: SSD 최적 IO, 높은 쓰루풋, column family·압축·블룸 필터. 3-4. Realm 대상: 모바일(iOS/Android), Kotlin Multiplatform, .NET MAUI 특징: 객체 지향 API, 동적 스키마 마이그레이션, 실시간 Sync 옵션(MongoDB Atlas). 3-5. LiteDB (.NET) 형식: 단일 .litedb 파일에 BSON 컬렉션 저장 장점: Entity‐like LINQ 쿼리, 암호화, 트랜잭션, 무설치. 사용 예: WPF/WinForms 로컬 캐시, 게임 세이브 데이터. 선택 가이드 성능·안정성 체크리스트 동시성 모델: 파일 잠금(전역·페이지·WAL) vs MVCC. Write-Ahead Logging: 활성화 시...
바탕화면에 "conn.udl" 파일을 만든다. 파일을 더블 클릭해서 ODBC생성하는 것처럼 접속정보를 입력 한 후, 연결 테스트까지 완료한다. 파일을 노트패드로 연다. 쉽죠?
로컬에서는 잘 접속되는 MySQL 서버에, 원격지에서 접속이 안되는 경우가 있다.이럴 때는 다음의 내용을 테스트 해보며 점검해보면 문제점을 확인할 수 있다. 원격 접속 시 겪을 수 있는 에러 메세지는 다음과 같다. ERROR 2003 은 접속에 실패한 경우로, 아래 점검 리스트 중 (1)부터 시작한다. ERROR 1045 는 인증에 실패한 경우로, 아래 점검 리스트 중 (7)부터 시작한다. 설정 파일(my.cnf / my.ini)보다 실행시 주어지는 옵션의 우선순위가 높으니, 설정 파일과 함께 실행 옵션을 면밀히 살펴보는 것이 중요하다. (1) skip-networking mysql 서버 실행시에 --skip-networking 옵션을 주거나, 설정 파일내에 skip-networking이 있는 경우, 서버는 로컬에서의 유닉스 소켓 접속만을 허용하게 된다. 설정되어 있다면 해제한다. (2) bind-address 설정 파일 내에 bind-address 값 또는 실행 옵션 중 --bind-address 값이 127.0.0.1 또는 비활성화 되어 있는지 확인한다. 이는, listen과 관련된 TCP/IP 소켓의 바인딩을 어떤 IP로 할 것인지를 결정한다. 127.0.0.1 은 외부 접속을 허용하지 않음을 의미한다. 이를 시스템에 할당된 특정 IP 값으로 지정하거나, 0.0.0.0 으로 지정하여, 시스템이 가지고 있는 모든 IP 주소를 활용하도록 수정한다. 할당된 IP 주소가 2개 이상인 경우, 적절한 값을 지정하는 것이 일반적이다. (3) port TCP/IP 소켓 바인딩에 사용될 포트 번호를 확인한다. 기본 값은 3306 이지만, 보안상의 이유 또는 하나의 서버에 여러 개의 MySQL 서버를 구동하기 위해 변경한 경우가 있으니, 이 값을 확인한다. 실행 옵션은 --port=3306, 설정 파일에서는 port=3306 과 같이 지정한다. (4) listen여부 확인 위 명령어를 통해, 해당 포트로 LISTEN이 되고 있는지 확인한다. 확...