db

· AWS
RDS가 private subnet에 구축되어 있을때 외부에서는 RDS에 접속할 수 없습니다. 보안을 위해서 이렇게 구축하고는 하는데 실제 개발하는 도중에 직접 RDS에 접속하는 일이 많습니다. 이런 상황에 매우 간단한 방법으로 EC2를 터널링으로 사용해 private subnet에 있는 RDS에 접속이 가능합니다. 1. EC2 생성 먼저 사용할 EC2를 생성합니다. EC2 이름을 설정하고 Amazon Linux로 생성하겠습니다. 꼭 Amazon Linux가 아니여도 됩니다. 키 페어를 선택하거나 새로 생성합니다. 요 키 페어로 ssh 터널에 접속하니 분실하거나 외부로 유출되서는 안됩니다! 네트워크 설정에서 편집 버튼을 클릭해 외부에서 접속할 수 있는 public subnet을 선택하고 터널링을 위해 보..
· React Native
이 전 글에는 Firebase로 회원 가입, 로그인을 구현해보았다. 이번에는 회원가입 후 사용자의 닉네임과 프로필 사진을 Firebase에 저장해보자. Firestore는 Firebase에서 제공하는 NoSQL 베이스이다. Firestore에 데이터를 읽고 쓸 때는 규칙을 지정할 수 있다. 이 규칙을 통해 데이터베이스 안에 저장된 데이터에 대해 사용자의 권한을 지정할 수 있다. Firestore 데이터베이스 만들기 먼저 Firebase 콘솔 페이지에 접속해 사이드 메뉴에 있는 Firestore Database를 선택한 뒤 데이터베이스 만들기 버튼을 클릭한다. 테스트만 진행할 것이기 때문에 테스트 모드에서 시작을 체크하고 다음 버튼을 클릭한다. Cloud Firestore의 위치는 asia-northeas..
· Spring
H2 Database란? H2DB는 자바 기반의 오픈소스 관계형 데이터 베이스 관리 시스템(RDBMS)이다. H2DB는 서버(Server) 모드와 임베디드(Embedded) 모드의 인메모리 DB 기능을 지원하고 디스크 기반 테이블을 또한 생성할 수 있다. 또한 브라우저 기반의 콘솔모드를 이용할 수 있으며, 별도의 설치과정이 없고 용량도 2MB(압축버전) 이하로 매우 저용량 이므로 매우 가볍고 빠르며, JDBC API 또한 지원하고 있다. SQL 문법은 다른 DBMS들과 마찬가지로 표준 SQL의 대부분이 지원된다. In-memory Database란? 데이터를 디스크에 저장하는 Mysql이나 Oracle과 같은 DBMS와는 다르게 데이터 스토리지의 메인 메모리에 설치되어 운영되는 방식의 데이터베이스 관리 ..
· JPA
네트워크를 통해 데이터베이스에 접근하는 시간 비용은 애플리케이션 서버에서 내부 메모리에 접근하는 시간 비용보다 수만에서 수십만 배 이상 비싸다. 따라서 조회한 데이터를 메모리에 캐시 해서 데이터베이스 접근 횟수를 줄이면 애플리케이션 성능을 획기적으로 개선할 수 있다. 그래서 1차, 2차 캐시가 뭔데? 영속성 컨텍스트 내부에는 엔티티를 보관하는 저장소가 있는데 이것을 1차 캐시라 한다. 이것으로 얻을 수 있는 이점이 많지만 일반적인 웹 애플리케이션 환경은 트랜잭션을 시작하고 종료할 때까지만 1차 캐시가 유효하다. 따라서 애플리케이션 전체로 보면 데이터베이스 접근 횟수를 획기적으로 줄이지는 못한다. 하이버네이트를 포함한 대부분의 JPA 구현체들은 애플리케이션 범위의 캐시를 지원하는데 이것을 공유 캐시 또는 ..
· 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
'db' 태그의 글 목록