DB - 뷰
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. 뷰(View) 뷰를 사용하는 가장 큰 이유는 논리적 데이터 독립성을 지원하기 때문이다. 개념 스키마의 테이블인 기본 테이블이 변경되어도 외부 스키마에서 사용하는 뷰가 변경되지 않으면 응용 프로그램은 영향을 받지 않는다. 예를 들어, 개념 스키마 테이블에 새로운 컬럼이 추가, 테이...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. 뷰(View) 뷰를 사용하는 가장 큰 이유는 논리적 데이터 독립성을 지원하기 때문이다. 개념 스키마의 테이블인 기본 테이블이 변경되어도 외부 스키마에서 사용하는 뷰가 변경되지 않으면 응용 프로그램은 영향을 받지 않는다. 예를 들어, 개념 스키마 테이블에 새로운 컬럼이 추가, 테이...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. 참조 무결성 타 테이블과 연관된 데이터가 입력, 수정, 삭제 시에도 데이터 간에 정확한 참조 관계를 유지시킨다. 외래키에 적용되는 개념으로 외래키가 어떠한 데이터를 참조할 때 이 데이터는 반드시 존재하는 값이어야 한다. 외래키가 유효하지 않은 데이터를 참조한다면 데이터의 일관성...
데이터베이스 스터디 2주차에서 학습하고 정리한 내용입니다. 1. SQL이란? SQL은 구조화 질의어(Structured Query Language)의 약자로 데이터베이스의 데이터를 조작하고 검색할 수 있는 언어이다. 관계 대수와 관계 해석 이 두 가지 수학적 쿼리 언어가 이 SQL의 바탕이 된다. 관계 대수와 관계 해석의 장점을 적절히 가져오...
데이터베이스 스터디 1주차에서 학습하고 정리한 내용입니다. 1. 파일 시스템 vs 데이터 베이스 데이터베이스와 파일 시스템 모두 데이터를 영속적으로 저장하기 위한 시스템인 점에서 공통점을 가진다. 동일한 공통점을 가짐에도 두 가지 독립적인 시스템이 존재한다는 말은 두 시스템 사이 장단점이 있다고 추측할 수 있다. 결론부터 말하자면 데이터베이스...
서론 기존의 프로젝트를 빌드업하기 위해 여러 수정 사항을 도입하기로 하였다. 하지만 기존의 프로젝트는 k8s로 구성되어 있었고 개발 환경에서 설정이 복잡하여 k8s를 Docker Compose로 먼저 마이그레이션 후 개발하기로 결정하였다. 그 과정에서 Docker Compose를 어떻게 작성했는지에 관해 정리한 내용이다. Docker Compose?...
요약 키-값 자료 구조에서 Log Structured File을 사용한 Hash Indexes 방식의 장점과 단점은 무엇인가요? Log Structured File을 적용한 Hash Indexes 방식은 데이터를 갱신할 때 즉각적으로 갱신하지 않고 임시로 중복된 키를 허용합니다. 한번 저장된 데이터는 수정이 불가능한 불변으로 이는 동시성 문제...
요약 Extract Method는 언제 사용하고 어떤 효과가 있나요? 메서드의 길이가 길다면 일부를 새로운 메서드로 추출하고 전체 메서드 크기를 작게 유지할 수 있습니다. 이 경우 코드의 가독성이 좋아지고 추출한 메서드를 다른 메서드에서 재활용할 수 있다는 장점이 있습니다. Introduce Explaining Variable는 언제 ...
요약 리팩토링은 왜 수행하나요? 리팩토링은 프로젝트에서 존재하는 코드 스멜을 식별하고 이를 개선하여 유지보수성을 향상시키는 작업입니다. 유지보수성을 향상함으로써 제품이나 시스템을 개선하거나 환경, 요구사항이 변화할 때 더 쉽게 대응할 수 있도록 만듭니다. 스멜은 무엇인가요? 스멜은 마틴 파울러의 “Refactoring” 저서에서 소...
서론 Mini-SpringBoot 프로젝트에서 빈 생성을 구현할 때 생성자 주입을 함께 구현해야 하는 상황이였다. 필드 주입은 모든 빈을 생성한 후 의존성을 연결해도 되지만 생성자 주입은 무조건 생성 시 의존하는 빈들을 같이 전달해야 한다. 이를 위해서는 두 가지 제약사항을 만족해야 한다. 빈을 생성할 때 의존하는 빈들은 이미 생성된 빈이여야 ...
요약 Spring은 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. 기존의 JAVA EE의 EJB가 미리 정의된 기술을 구현하는 방식에서 어노테이션을 이용한 방식으로 전환함으로써 POJO의 장점을 최대한 활용할 수 있도록 하였다. 또한 DI, IoC를 도입하여 개발자는 객체 관리를 Sp...