Programming/Database
DB는 로컬에 켜져있으면 같은 포트를 공유해서 rds로 켜지지 않는다계속 문제가 생겼는데 그 이유가 로컬에서 자꾸 postgre 켜놓고 안꺼져서 문제가 생김 bind [127.0.0.1]:5432: Address already in usechannel_setup_fwd_listener_tcpip: cannot listen to port: 5432Could not request local forwarding. 이유는 내가 로컬에서 db를 시작해두었기 때문...brew services start postgresql 아무리 kill을 해도 죽지 않았다... ㅠ ㅠ 결국 postgreSQL 서버 중지 시킴brew services stop postgresql 그리고 나서 다시 ssh ~~~어쩌구 디비 연결 해..
1. Redis 1) 일반적인 관계형 데이터베이스 - 서버의 형태로 가동됨. - 주로 파일 시스템(디스크)에 데이터를 저장 - 데이터에 영속성을 부여하지만 - 읽고 쓰는데 걸리는 시간이 비교적 길다. >>> 상황에 따라 공유되는 In-Memory 데이터베이스가 필요! - 일시적인 세션 정보 - 빈번하게 조회되는 데이터 ~> RAM에 데이터를 저장하고 공유할 수 있는 Middleware를 사용. 2) Redis (REmote DIctionary Server) - Key-Value의 형태로 데이터를 저장할 수 있게 해주는 In-Memory Database (여러가지 자료구조 제공 - String, List, Set, Hash, Sorted Set) - 여러 어플리케이션 인스턴스에서 세션 정보 공유 - 관계형..
데이터는 정확하고, 안전하게 다뤄져야 서비스가 안정적으로 운영된다. ex. 두 사용자가 재고가 3개가 남은 물품을 거의 동시에 2개씩 구매하려고 한다면...? // 현재 재고를 확인한다. select stock from item where id = 2; // 재고가 구매하려는 수량보다 많음을 확인한다. // todo // 주문 정보를 추가한다. insert into customer_order(customer_id) values (1); select customer_id from customer_order where id = 1; // 주문 정보에 아이템을 추가한다. insert into order_item(order_id, item_id, count) values (61, 2, 2); // 구매한 아이템..
JDBC (Java DataBase Connectivity) : 데이터베이스는 파일의 형태로 데이터를 효율적으로 저장하기 위한 프로그램 > Java Application에서 데이터베이스를 사용하기 위해 데이터베이스와 소통해야 하는데, 이걸 가능하게 하는 API 1. Gradle 1) Build >> JDK (Java Development Kit) : Java 언어를 Java Bytecode로 변환하는 컴파일러(javac) * High Level Language를 Low Level Language로 >> 컴파일(Compile)한다. * 프로젝트 소스코드를 실행 가능한 프로그램으로 >> "빌드(Build)"한다. 2) Build Automation Tool - Maven & Gradle - Java 프로젝트..
1. 정규형 : 데이터베이스의 테이블에 담기는 데이터를 적절하게 나누어 구조화 하는 방법론 1) 초기 데이터 (상품관리 테이블) >> 기본적으로 각 레코드가 중복되지 않은, 정규화가 전혀 진행되지 않은 상태. >> 수령 방식은 하나의 레코드에 복수의 속성값을 정의하고 있다... 반복해서 등장할 수 있는 데이터를 뽑아 다른 테이블에 넣어주자~~~~! 2) 제1 정규형 ** 하나의 컬럼이 복수의 데이터를 가지고 있지 않아야 한다! >> 제1 정규형 테이블 두개. 3) 제2 정규형 ** 기본키에 종속되지 않는 컬럼은 테이블에서 분리되어야 한다. 4) 제3 정규형 ** 기본키가 아닌 다른 속성에 종속성을 갖는 컬럼은 별도로 분리해야 한다. >> 제조사 국적은 상품 자체가 아닌, 제조사와 종속적인 관계! 2. J..
1. Database 데이터는 정보를 구성하는 단위. > 정보는 지식을 구성하는 단위. > 지식은 지혜를 구성하는 단위 - 데이터는 관찰과 실험, 조사를 통해 얻은 정보로 추론과 추정의 근거가 되는 사실. - 데이터는 단순 사실에 불과하지만, 특정한 의미가 부여되어 가공되는 과정을 거치면 > 정보가 된다. - The term data means groups of information that represent the qualitative attributes of a variable or set of variables. 1) 데이터베이스란? : 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임. (데이터 창고!!) 2) 데이터베이스 관리 시스템 (DBMS) ? : 다수의 사용자들이 데이..
1. JDBC (Java DataBase Connectivity) : 데이터베이스와 연결하여 데이터를 송수신할 수 있도록 하는 인터페이스 다양한 종류의 관계형 데이터베이스에 접속하여 SQL문을 수행처리할 때 표준 SQL 인터페이스를 제공해 주는 API - java.sql 패키지에 위치. >> 단점이 있다. - Database Pooling 방식을 사용하지 않고 DB에서 정보를 가져올 때마다 매번 Connection 객체를 생성하고 반납(close) 하는 형식임. > 이 방식은 비효율적이다. >> 서버의 과부하 및 속도저하의 문제가 발생한다. 그러므로, 적당한 수의 커넥션 객체를 미리 만들어 놓고 요청에 따라 하나씩 꺼내쓰며 재사용하는 Pooling 기법을 사용한다면 문제를 해결할 수 있다. 2. DBCP..