본문 바로가기

Computer Science61

데이터베이스 튜닝(Database Tuning) 데이터베이스 튜닝 일반적으로 시스템 성능 저하 문제는 잘못된 APP 및 DB 설계에 의해 발생하기 때문에, 데이터베이스 튜닝을 통해 성능 저하 최소화가 가능하다. 데이터베이스 튜닝이란 데이터베이스 응용, 데이터베이스 자체, 운영체제의 조정 등을 통하여 최적의 자원으로 최적의 성능(응답속도)을 얻을 수 있도록 개선하는 작업을 말한다. 데이터베이스 튜닝의 3단계 데이터베이스 튜닝 영역 별 세부 기법 튜닝의 순서인 DB 설계 → DBMS → SQL 튜닝 순으로 효율성이 줄어듦에 따라 우선 처리 필요 SW 처리가 불가능 하거나 효율적이지 않는 경우 HW 방식의 시스템 데이터베이스 튜닝 필요 출처 더보기 http://blog.skby.net/데이터베이스-튜닝-db-tuning/ 2023. 6. 19.
데이터베이스 락(Lock) DataBase는 데이터를 영속적으로 저장하고 있는 시스템이다. 이런 시스템은 같은 자원(데이터)에 대해서 동시에 접근하는 경우가 생길 수 밖에 없다. 예를 들어 수강신청 시스템에서 1명만이 정원으로 남게 되었을 때, 두 사람이 거의 동시에 버튼을 누를 수 있다. 그렇지만 성공은 1명만 되어야 한다. 이런 상황에서 DBMS(DataBase Management System)가 사용하는 공통적인 방법이 Lock이다. 데이터베이스 락(Lock) 데이터베이스는 여러 사용자들이 같은 데이터를 동시에 접근하는 상황에서, 데이터의 무결성과 일관성을 지키기 위해 락을 사용한다. 락을 통해 트랜잭션 처리의 순차성을 보장하기 위한 방법이다. 데이터베이스 락(Lock) 의 종류 공유락(LS, Shared Lock) Read.. 2023. 6. 18.
Cookie vs Session vs JWT 쿠키와 세션을 사용하는 이유 http 프로토콜의 경우 Connectless, Stateless 한 특성을 가진다. 그렇기 때문에 서버는 클라이언트가 누구인지 매번 확인해야 한다. 이러한 특성을 보완하기 위해 쿠키와 세션이 등장하게 된다. Connenctionless 클라이언트와 서버가 요청과 응답을 한 번 주고받으면 연결을 끊어버리는 특징을 말한다. 클라이언트가 request를 서버로 보내면 서버는 클라이언트가 보낸 request에 맞게 response를 보내고 연결을 끊는다. Stateless 위처럼 요청과 응답으로 인해 통신이 끝난다면 상태 정보를 유지하지 않는 특징이다. 예를들어 메인페이지에서 로그인을 하고 다른 페이지로 넘어가면 다시 로그인을 해야된다. Cookie 쿠키는 서버가 사용자의 웹 브라.. 2023. 6. 18.
빌더 패턴 (Builder Pattern) 빌더 패턴(Builder pattern)이란? 객체를 정의하고 그 객체를 생성할 때 보통 생성자를 통해 생성하는 것을 생각한다. Bag bag = new Bag("name", 1000, "memo"); 하지만 생성자를 통해 객체를 생성하는데 몇 가지 단점이 있어 객체를 생성하는 별도 builder를 두는 방법이 있다. 이를 빌더 패턴이라고 한다. Bag bag = Bag.builder() .name("name") .money(1000) .memo("memo") .build(); 객체를 생성할 수 있는 빌더를 builder() 함수를 통해 얻고 거기에 셋팅하고자 하는 값을 셋팅하고 마지막에 build()를 통해 빌더를 작동 시켜 객체를 생성한다. 빌더 패턴(Builder pattern)을 사용하는 이유 생.. 2023. 5. 2.
브릿지 패턴 (가교 패턴) 브릿지패턴이란 브릿지 패턴 큰 클래스 또는 밀접하게 관련된 클래스들의 집합을 두 개의 개별 계층구조​(추상화 및 구현)​로 나눈 후 각각 독립적으로 개발할 수 있도록 하는 구조 디자인 패턴입니다. 말로는 잘 와닿지 않는 개념이니, 그림과 함께 살펴보자 Circle​(원) 및 Square​(직사각형)​라는 한 쌍의 자식 클래스들이 있는 기하학적 Shape​(모양) 클래스가 있다고 가정하고, 이 클래스 계층 구조를 확장하여 색상을 도입하기 위해 Red​(빨간색) 및 Blue​(파란색) 모양들의 자식 클래스들을 만든다고 하자. 그러나 Shape에는 이미 두 개의 자식 클래스가 있으므로 Blue­Circle​(파란색 원) 및 Red­Square​(빨간색 직사각형)​와 같은 네 가지의 클래스 조합을 만들어야 한다.. 2023. 4. 24.
전략 패턴 전략 패턴 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우 직접 행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장하는 방법을 말한다. 간단히 말해서 객체가 할 수 있는 행위들 각각을 전략으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것만으로 행위의 수정이 가능하도록 만든 패턴이다. 전략 패턴 예제 - 로봇 만들기 추상 클래스 Robot의 자식 클래스로 Atom 클래스, TaekwonV 클래스가 존재하고, Robot의 추상 메서드로 attack(), move()가 있는 상황을 가정해보자. 이 때 attack과 move 추상메소드는 자식클래스에서 재정의하도록.. 2023. 4. 24.