Free Lines Arrow
본문 바로가기
728x90

분류 전체보기350

[HeadFirst] 커맨드 패턴 커맨드 패턴 커맨드 패턴을 쓰게 되면 작업을 요청한 곳과 작업을 처리하는 곳을 분리 할 수 있다. 커맨드 패턴에는 명령(command), 수신자(receiver), 발동자(invoker), 클라이언트(client)가 있다. 커맨드 객체는 일련의 행동을 특정 리시버와 연결함으로써 요청을 캡슐화한 것이다. 밖에서 볼 때는 어떤 객쳬가 리시버 역할을 하는지, 그 리시버가 어떤 일을 하는지 알 수 없습니다 - 그냥 execute0 메소드를 호출하면 해당 요청이 처리된다는 사실만 알 수 있습니다. 커맨드 패턴 수행과정 클라이언트가 커맨드 객체를 생성한다. - 커맨드객체에는 행동과 리시버의 정보를 가지고 있다. 클라이언트는 인보커 객체의 setCommand 메소드를 호출한다 - 이때 커맨드 객체를 같이 넘겨 준다... 2023. 2. 10.
[DB] LIKE 와 INDEX LIKE 와 INDEX 테이블에 row 가 많은 경우 우리는 인덱스를 걸어주어 조회 속도를 높인다. LIKE 같은 경우 조건에 따라 인덱스를 타는 경우도 있고 안타는 경우도 있다. 어떤 경우에 인덱스를 타고 안타는지 확인해보자. 조건에 따른 인덱스 타는 여부 인덱스를 타는 경우 WHERE name LIKE '안' - 문자가 일치 하는 데이터 검색 WHERE name LIKE '안%' - 문자의 시작과 일치하는 데이터 검색 인덱스를 타지 않는 경우 WHERE name LIKE '%안%' - 문자가 포함되는 데이터 검색 WHERE name LIKE '%안' - 해당 문자로 끝나는 데이터 검색 WHERE name LIKE %안% 왜 인덱스를 안탈까? 요인은 INDEX 의 자료구조가 B*TREE 이다. 인덱스를.. 2023. 2. 10.
[DB] Index 기본 인덱스 란? 원하는 데이터를 쉽게 찾을수 있도록 돕는 자료구조이다. 검색 조건에 부합하는 데이터를 효과적으로 빠르게 검색 할 수 있도록 돕는다. 하지만 인덱스 효율이 나쁘면 오히려 느릴 수 있다. 1개의 테이블에 인덱스가 많은면 CUD 작업시 부하가 발생 할 수 있다. - 이유는 저장 하거나 업데이트 할때 인덱스 값을 조정 해줘야 하기 때문이다. 인덱스의 자료구조 Hash 해시는 탐색 시간이 빠르지만 자료를 저장 할때 정렬이 되지 않는다. 당연한것이 해쉬 자료구조 이기 때문이다. DB 에서는 특정 범위를 검색하는 경우가 있는데 이에 적절하지 않아서 잘 사용하지 않는다. B * Tree DB 에서 가장 많이 사용하는 인덱스 구조이다. B * Tree 인덱스 란? DBMS 에서 사용되는 가장 일반적인 인덱스.. 2023. 2. 9.
[Redis] Redis 란? Redis 란? 레디스는 Remote Dictionary Server의 약자로서, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템이다. 캐시형으로 많이 사용한다. - 예를 들어 하루치의 통계를 보여 줄때 쿼리가 복잡하다면 한번 조회후 redis 에 키값으로 저장하면 또다시 복잡한 쿼리를 수행할 필요없이 Redis 에서 바로 가져오면된다. Redis 특징 in-memory 를 사용한다. 인메모리 데이터 셋을 사용하여 최고의 성능을 낸다. 다음과 같은 목적에 쓰인다. Database cache message broker streaming engine Sentinel 및 Redis Cluster를 통한 자동 파티셔닝을 통해 고가용성을 제공한다. 비동.. 2023. 2. 8.
728x90
반응형