2021/10/18 5

14. 기술면접 - 데이터베이스 - JDBC (Java DataBase Connectivity)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 JDBC 란 JDBC (Java Database Connectivity)는 DB에 접근할 수 있도록 Java 에서 제공하는 API 이다. - JDBC 는 관계형 데이터베이스에 사용되는 SQL 문을 실행하기 위해 자바로 작성된 클래스와 인터페이스로 구성되어 있다 - 특정 데이터베이스나 특정 데이터베이스 매커니즘에 구애 받지 않는 독립적인 인터페이스를 통해 다양한 데이터베이스에 접근하는 코드를 구현(mysql, oracle, mssql 등 추상화를 통해 접근가능)할 수 있도록 제공하는 자바 클래스의 표준 집합이다 - JDBC 클래스는 자바 패키지 java.sql 과 javax.sql 에 포함되어 있다 데..

13. 기술면접 - 데이터베이스 - ORM (Object Relation Mapping)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 ORM 이란 - 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑(연결) 해주는 것을 말한다 영속성 (Persistance) - 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성 - 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다 - 때문에 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구하게 저장하여 영속성 을 부여한다 영속성 레이어 (Persistence Layer) - 프로그램의 아키텍처에서, 데이터에 영속성을 부여해주는 계층 - JDBC 를 이용하여 직접 구현할 수 있지만 Pe..

12. 기술면접 - 데이터베이스 - 파티셔닝(Partitioning)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 배경 - 서비스의 크기가 점점 커지고 DB에 저장하는 데이터의 규모 또한 대용량화 되면서, 기존에 사용하는 DB 시스템의 용량(storage)의 한계와 성능(performence)의 저하를 가져오게 되었다 - 즉, VLDB(Very Large DBMS) 와 같이 하나의 DBMS 에 너무 큰 table 이 들어가면서 용량과 성능 측면에서 많은 이슈가 발생하게 되었고, 이런 이슈를 해결하기 위한 방법으로 Table 을 `파티션(partition)` 이라는 작은 단위로 나누어 관리하는 `파티셔닝(partitioning) 기법`이 나타나게 되었다 파티셔닝의 개념 - 큰 테이블이나 index를 관리하기 쉬운 ..

11. 기술 면접 - 데이터베이스 - 리플리케이션 (Replication)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 리플리케이션 (Replication) - DB를 이중화, DB 복제 라고 보면 된다 - 정의 리플리케이션(Replication)은 복제를 뜻하며 2대 이상의 DBMS를 나눠서 데이터를 저장하는 방식이며, 사용하기 위한 최소 구성은 Master / Slave 구성을 하여야 됩니다. -> 여러 개의 DB를 권한에 따라 수직적인 구조(Master-Slave)로 구축하는 방식 사용 목적 MySQL 리플리케션(Replication)은 사용목적은 크게 실시간 Data 백업과 여러대의 DB서버의 부하를 분산 시킬수 있습니다 간단 요약 아주 단순한 Database를 구성할때에는 아래의 그림처럼 하나의 서버와 하나의..

10. 기술면접 - 데이터 베이스 - 옵티마이저 (Optimizer)

공부목적으로 다른 블로그의 글을 그대로 따라치면서 작성되었습니다. 저작권 문제 시, 비공개 처리하겠습니다 옵티마이저 (Optimizer) - 옵티마이저란? - SQL 개발자가 SQL을 작성하여 실행할 때, 옵티마이저는 SQL을 어떻게 실행할 것 인지를 계획하게 된다 - SQL 실행 계획 (Execution Plan)을 수리합하고 SQL 을 실행한다 - 옵티마이저는 SQL의 실행 계획을 수립하고 SQL 을 실행하는 데이터베이스 관리 시스템의 소프트웨어이다 - 동일한 결과가 나오는 SQL 도 어떻게 실행하느냐에 따라서 성능이 달라지기에, SQL 성능에 옵티마이저는 아주 중요한 역할을 한다 옵티마이저 특징 - 옵티마이저는 데이터 딕셔너리(Data Dictionary)에 있는 오브젝트 통계, 시스템 통계 등의 ..