[Database] 인덱스(index)는 언제, 어떻게 사용해야 할까?
·
Database
인덱스(Index)란?인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상하기 위한 자료구조이다. 단어의 뜻 그대로 책의 색인과 같다. 우리는 책에서 원하는 내용을 찾고 싶을 때, 책의 저자가 책의 맨 앞 또는 맨 뒤에 만들어놓은 색인 페이지에서 원하는 단어가 있는 페이지를 쉽게 찾을 수 있다. 이 단어들은 가나다 혹은 abc 순서로 정렬되어 있기에 쉽게 찾을 수 있다.    인덱스를 사용하면, 조회하는 SELECT 쿼리 외에도 UPDATE 와 DELETE의 성능도 함께 향상된다. 왜냐하면 수정 & 삭제를 할 Row 를 찾는 조회 과정이 선행되기 때문이다.DELETE FROM userWHERE name = 'giken';   '언제' 인덱스를 사용해야 할까?  DBM..
[Java] 퍼사드 패턴을 예제와 함께 알아보자.
·
Programming Language/Java
퍼사드 패턴이란?퍼사드(Facade) : 건물의 출입구가 있는 정면 복잡한 시스템이나 서브시스템을 단순화된 인터페이스를 통해 외부로 노출시키는 패턴입니다.이를 통해 클라이언트가 시스템의 복잡성을 몰라도 간단한 인터페이스를 통해 시스템을 사용할 수 있도록 합니다.  실생활에서 볼 수 있는 퍼사드 패턴의 예시일상적인 예제로는 스마트폰의 전원 버튼을 들 수 있습니다. 스마트폰의 내부에는 수많은 하드웨어 및 소프트웨어 컴포넌트가 복잡하게 동작합니다. 그러나 사용자에게는 전원 버튼 하나만 노출되어 있고, 이 버튼을 누르면 전체 시스템이 켜지거나 꺼집니다.    개발 과정에서 만나게 되는 퍼사드 패턴이 필요한 상황복잡한 시스템 또는 라이브러리를 간편하게 사용하려고 할 때.다른 시스템과의 상호작용을 캡슐화하려고 할 ..
[Java] 어댑터 패턴을 예제와 함께 알아보자.
·
Programming Language/Java
어댑터 패턴이란?기존의 클래스나 인터페이스를 다른 인터페이스로 변환하는 데 사용되는 구조적인 패턴입니다.  다음과 같은 상황에서 유용합니다.두 개의 인터페이스가 호환되지 않을 때기존 클래스를 변경하지 않고 새로운 클래스나 인터페이스와 통합할 때   어댑터 패턴은 다음과 같은 주요 구성 요소로 구성됩니다Target(대상) 인터페이스: 클라이언트가 사용하려는 인터페이스입니다. 클라이언트 코드는 이 인터페이스를 통해 객체에 접근합니다.Adaptee(적응 대상) 클래스 또는 인터페이스: 기존에 사용하려는 클래스 또는 인터페이스로, 클라이언트가 직접 사용하기 어려운 경우가 있습니다.Adapter(어댑터) 클래스: Target 인터페이스를 구현하고, Adaptee를 감싸서 Target 인터페이스를 따르도록 변환합니..
[Java] 디자인패턴과 안티 패턴을 알아보자.
·
Programming Language/Java
디자인 패턴이란?소프트웨어 디자인에서 자주 발생하는 문제에 대한 해결책을 재사용 가능한 형태로 정리한 것입니다.  이러한 패턴들은 소프트웨어 개발 과정에서 특정한 디자인 문제를 해결하기 위한 일반적인 접근 방식을 제공하며, 코드의 재사용성, 가독성, 확장성을 향상시키는 데 도움을 줍니다.  예를 들어, Singleton 패턴은 하나의 인스턴스만 생성하고 이를 여러 곳에서 공유하고자 할 때 사용됩니다. 다음은 Java에서의 Singleton 패턴의 간단한 예제입니다.public class Singleton { private static Singleton instance; private Singleton() { // 생성자를 private로 선언하여 외부에서 인스턴스 생성을 제한 ..
[Java] Enum과 Builder 패턴을 예제와 함께 알아보자.
·
Programming Language/Java
https://github.com/prgrms-be-devcourse/java-library-management/pull/34 [5기 - 박주한] 1~2주차 과제: 도서 관리 어플리케이션 제출합니다. by ParkJuhan94 · Pull Request #34 · prg안녕하세요 도찌, 무송 멘토님! 이번 과제를 하면서 많은걸 배운것 같아요. 출력과 예제를 통해서 어느정도 test 하면서 진행을 했는데, 계속된 버그에 테스트코드가 꼭 필요한 것 같긴 했습니다.github.com   Java Enum 활용기개발을 진행할때 Enum을 통해 얻는 기본적인 장점들은 아래와 같습니다.문자열과 비교해, IDE의 적극적인 지원을 받을 수 있습니다.허용 가능한 값들을 제한할 수 있습니다.리팩토링시 변경 범위가 최소화 ..