일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- spring
- MariaDB
- SpringBoot
- 디자인패턴
- coding test
- spring boot
- React
- javascript
- ps
- JPA
- 자취
- 스프링
- Java
- IntelliJ
- jdk11
- 프로젝트
- 팀프로젝트
- 코테
- Project
- JDK
- Controller
- 입출력
- MVC
- 공유DB
- 코딩테스트
- 백준
- 취준생
- 자바
- AWS
- gradle
- Today
- Total
목록Concept (17)
Tech Collection
최적 실행 경로의 처리 절차 읽기 출력된 실행 계획에서 위쪽에 출력된 결과일수록 먼저 접근한 테이블 접근한 순서는 ID 컬럼으로 확인할 수 있음, SELECT 절 하나당 다른 ID가 부여됨 ID, SELECT_TYPE, ROWS, EXTRA 컬럼 위주로 분석 SELECT_TYPE : 어떤 타입의 쿼리인지 표시되는 컬럼 SIMPLE 단순 SELECT 쿼리 PRIMARY UNION이나 SUBQUERY를 포함하는 가장 바깥쪽에 있는 단위 쿼리 SUBQUERY FROM절 이외에서 사용되는 SUB QUERY UNION 합집합이 되는 대상 쿼리 DEPENDENT(SUBQUERY | UNION) - 느림 각 항목과 동일하지만 UNION이나 SUBQUERY가 바깥쪽의 쿼리의 값을 참조해서 사용하는 쿼리 DRIVED -..
조인을 명시할 때는 확실하게 구체적으로 표시하기 (INNER JOIN / LEFT OUTER JOIN..) Row가 적은 **Driving Table(outer table) + Driven Table(inner table)**의 조인키는 인덱스 사용하기 실행속도 = 외부 루프 테이블 사이즈 * 내부 루프 테이블 접근 횟수 USE INDEX 를 사용하는 것보다 인덱스를 조인의 조건으로 사용하는 것이 훨씬 효율적이다. 내부 조인 (INNER JOIN) INNER JOIN EQUI JOIN 연산자 : = NON-EQUI JOIN 연산자 : >,
하나의 SQL문 안에 포함되어있는 또 다른 SQL문 메인쿼리가 서브쿼리를 포함하는 종속적인 관계 단일 행 서브쿼리 서브쿼리의 질의 실행 결과가 항상 1건 이하인 서브쿼리를 의미 단일 행 비교 연산자 연산자 의미 > 크다 = 크거나 같다 ANY ALL
데이터의 고유성을 확인하거나 검색 성능을 향상시키기 위해 사용 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터들을 정렬하여 별도 공간에 데이터의 물리적 주소와 함께 저장한다. 단일 컬럼뿐만 아니라 다중 컬럼으로 구성될 수 있으며, 이 때 컬럼의 순서 정의가 중요하다. B*Tree 구조 SHOW INDEX FROM ; 데이터 분포에 따라 인덱스를 타는 것이 유리할 경우 인덱스를 사용하도록 한다. 조회하려는 레코드의 개수가 테이블 전체 레코드의 20~25%를 넘어서지 않는 경우에 인덱스가 유리하다. 인덱스 컬럼에 함수를 사용하여 변형할 경우 사용할 수 없다. 인덱스 컬럼에 수식을 사용할 경우 인덱스를 사용할 수 없다. 결합 인덱스의 순서에 맞게 조건을 설정해야 인덱스 사용 가능하다. 부정 비교의 경우 인덱..
커맨드 패턴 요청 내역을 객체로 캡슐화하여 클라이언트를 서로 다른 요청 내역에 따라 매개변수화 할 수 있다. 요청을 큐에 저장하거나 로그로 기록할 수도 있고 작업 취소 기능을 지원할 수도 있다. 명령을 내리는 클래스는 실제 액션이 어떻게 통하는지 몰라도 되게 하는 것 Invoker execute() 메소드 호출해서 커맨드 객체에게 특정 작업을 수행해 달라는 요구를 하게 된다. Receiver 요구사항을 수행하기 위해 어떤 일을 처리해야 하는 지 알고 있는 객체 메타 커맨드 패턴 명령들로 이루어진 매크로를 만들어서 여러개의 명령을 한 번에 실행 매크로 command의 배열을 가진 또 다른 ConcreteCommand를 정의하여 invoker에 세팅 execute()에서 반복문을 통해 들고 있는 모든 com..
이터페이터 패턴 컬렉션 구현 방법을 노출 시키지 않으면서도 그 집합체 안에 들어있는 모든 항목에 접근할 수 있게 해주는 방법 제공 aggregate object의 세부 구현을 드러내지 않으면서 그것의 elements들을 순차적으로 접근할 수 있는 방법을 제공 SRP Single Responsibility Principle 하나의 클래스는 변경될 하나의 이유를 가져야 한다. Cohesion (응집도) 높음 : 하나의 클래스가 하나의 기능을 함 낮음 : 하나의 클래스가 서로 관련이 적은 여러 기능을 함 SRP를 잘 지키면 높다 iteration 기능을 캡슐화하여 aggregate로 부터 분리함으로써 SRP를 지킬 수 있게 한다. aggregate: data들의 collection을 가지고 있는 class 분..
템플릿 메소드 패턴 메소드에서 알고리즘의 골격 정의 알고리즘의 여러 단계 중 일부는 서브 클래스에서 구현할 수 있다. 알고리즘의 구조는 그대로 유지하면서 서브 클래스에서 특정 단계를 재정의 할 수 있다. superclass가 알고리즘을 정의하고, 단계별로 실행될 메소드 등 로직을 정해놓으면 subclass에게 일부 로직의 구현만을 맡기는 패턴 subclass 필수 final 선언 Hook Optional한 Step을 정의할 수 있다. subclass가 꼭 구현하지 않아도 된다. 보통 아무 로직이 없거나 default 로직이 있다. boolean을 반환하는 hook을 만들어 template method 내의 if문에서 호출하면 조건부 실행 제어가 가능 특정 step의 실행 직전/후에 subclass가 re..
퍼사드 패턴 어떤 서브 시스템의 일련의 인터페이스에 대한 통합된 인터페이스 제공 기존의 복잡한 interface를 단순화하기 위해 interface를 교체하는 것 복잡도 감소, 유지보수성 증가 → 런타임 퍼포먼스 감소, Wrapper 클래스가 많아질 수 있음 최소 지식 원칙 어떤 객체든 그 객체와 상호작용을 하는 클래스의 개수에 주의해야 함 그런 객체들과 어떤 식으로 상호작용을 하는지에도 주의를 기울여야 한다 호출해도 되는 메소드 자신이 가진 메소드 메소드의 파라미터로 전달되는 객체가 가진 메소드 메소드가 생성하거나 인스턴스화 하는 객체의 메소드 멤버 변수의 메소드 public House { WeatherStation station; // other methods and constructor public..