database

· MongoDB
몽고DB란? 몽고DB는 강력하고 유연하면 확장성 높은 도큐먼트 지향 데이터베이스다. 관계형 모델로 대용량 데이터 작업을 하게 되면 스키마에 맞게 데이터를 조작해서 작업해야 한다. 몽고DB는 솔루션 자체적으로 분산 처리, 샤딩, 데이터 리밸런싱, 데이터 복제, 복구 등을 지원하고 무엇보다 스키마가 없기 때문에 대용량의 데이터 작업에 아주 효율적인 데이터베이스이다. 도큐먼트 몽고DB의 핵심이자, 기본 단위는 도큐먼트이며, 이는 관계형 데이터베이스의 행과 유사하다. 도큐먼트는 정렬된 키와 연결된 값의 집합으로 이뤄져있다. 도큐먼트 표현 방식은 프로그래밍 언어마다 다르지만 대부분의 언어는 맵(Map), 해시(Hash), 딕셔너리(dictionary)와 같이 도큐먼트를 자연스럽게 표현하는 자료구조를 가진다. {"..
· ETC
Querydsl를 사용하던 중 Expressions.stringTemplate을 이용해 MySQL에 DATE_FORAMT을 사용했는데, 실제 API는 잘 작동하지만 Test 코드에서는 DATE_FORMAT 함수가 없다고 오류가 발생했다. 실제 API 데이터베이스는 MySQL을 사용하고 테스트는 H2 Database를 사용했다. ... Expressions.stringTemplate( "date_format({0}, '%m')", user.createdDateTime ), ... 검색해보니 H2에는 DATE_FORMAT 함수가 없고 FORMATDATETIME을 사용해야 하는데 요것을 사용하면 실제 API에서 오류가 발생하고... 그래서 H2 Database에 사용자 정의 alias를 등록해 사용하기로 하였..
· React Native
이 전 글에는 Firebase로 회원 가입, 로그인을 구현해보았다. 이번에는 회원가입 후 사용자의 닉네임과 프로필 사진을 Firebase에 저장해보자. Firestore는 Firebase에서 제공하는 NoSQL 베이스이다. Firestore에 데이터를 읽고 쓸 때는 규칙을 지정할 수 있다. 이 규칙을 통해 데이터베이스 안에 저장된 데이터에 대해 사용자의 권한을 지정할 수 있다. Firestore 데이터베이스 만들기 먼저 Firebase 콘솔 페이지에 접속해 사이드 메뉴에 있는 Firestore Database를 선택한 뒤 데이터베이스 만들기 버튼을 클릭한다. 테스트만 진행할 것이기 때문에 테스트 모드에서 시작을 체크하고 다음 버튼을 클릭한다. Cloud Firestore의 위치는 asia-northeas..
· JPA
트랜잭션을 지원하는 쓰기 지연과 JDBC 배치 insert(member1); // INSERT INTO ... insert(member2); // INSERT INTO ... insert(member3); // INSERT INTO ... insert(member4); // INSERT INTO ... insert(member5); // INSERT INTO ... commit(); 위와 같은 경우는 5번에 INSERT SQL과 1번의 커밋으로 총 6번 데이터베이스와 통신한다. 이것을 최적화 하려면 SQL을 모아 한 번에 데이터베이스로 보내면 된다. JDBC가 제공하는 SQL 배치 기능을 사용하면 SQL을 모아서 데이터베이스에 한 번에 보낼 수 있다. 하지만 이 기능을 사용하려면 코드의 많은 부분을 수정..
· AWS
AWS의 기본적인 RDS 생성(MySQL)을 정리하였다. 1. AWS Console → RDS → 데이터 베이스 생성 2. 데이터 베이스 옵션 선택 3. 보안 그룹 편집 4. 엔드포인트로 DB 접속
· Spring
Flyway란? 오픈소스 마이그레이션 툴 자바나 c++같은 프로그램의 소스 코드는 svn, git과 같은 형상관리 툴로 쉽게 관리할 수 있지만 테이블의 스키마나 데이터는 위와 같은 툴로 변경이력을 관리할 수 없습니다. 따라서 SQL 스크립트문을 실행하거나 직접 DB 콘솔이나 Toad 같은 툴을 통해 직접 수동으로 처리해줘야 하는 단점이 있습니다. Flyway는 버전 관리 목적인 SCHEMA_VERSION 테이블을 통해 SQL 스크립트의 변화를 추적하면서 자동적으로 관리하는 방법으로 위와 같은 문제를 해결합니다. 구현 예제 1. build.grade 설정 dependencies { ... // flyway implementation 'org.flywaydb:flyway-core' // jpa impleme..
beekei
'database' 태그의 글 목록