CS (MySQL) MySQL 스토리지 엔진 아키텍처 - InnoDB 2022. 8. 31. 23:53 InnoDB 개요 InnoDB는 레코드 기반의 잠금을 제공하여 그로 인해 높은 동시성 처리가 가능하고 안정적이며 성능이 뛰어나다. InnoDB 특징 프라이머리 키에 의한 클리스터링 InnoDB의 모든 테이블은 프라이머리 키 값의 순서대로 디스크에 저장된다. 첨언하자면 클러스터형 인덱스는 영어사전이다. 영어사전은 알파벳 순으로 정렬되어 있다는 특징이 있으며 보조 인덱스는 일반 책의 뒤편에 있는 찾아보기와 같다. 찾아보기를 통해 키워드에 해당하는 내용을 빠르게 찾을 수 있다는 특징이 있다. 외래 키 지원 외래 키는 InnoDB만 유일하게 지원한다. 외래 키 설정 시 주의사항 외래 키 연관 테이블에 대한 잠금 전파 주의 데드락 발생 주의 foreign_key_checks Option을 통해 외래 키 체크 해제.. (MySQL) MySQL 아키텍처 2022. 8. 31. 15:14 MySQL 엔진 아키텍처 InnoDB 스토리지 엔진 아키텍처 MySQL 엔진 구조 MySQL 엔진의 아키텍처는 크게 MySQL 엔진, 스토리지 엔진, 핸들러 API 이루어져 있다. MySQL 엔진 MySQL 엔진은 클라이언트 요청을 처리하는 시작점이다. 커넥션 연결 및 쿼리에 대한 요청 및 최적화를 담당한다. SQL 파서, 전처리기 (Query) 옵티마이저 (Optimize) 스토리지 엔진 스토리지 엔진은 MySQL 엔진의 쿼리 실행기에서의 요청 데이터를 디스크에 저장하거나 읽어오는 역할을 담당한다. 대표적으로 InnoDB와 MyISAM이 존재한다. 각각의 스토리지 엔진은 처리 시 최적화를 진행한다. InnoDB : 키 캐시 MyISAM : 버퍼 풀 핸들러 API 핸들러 API는 MySQL 엔진이 스토.. (AWS) AWS CLI 도구 설치 및 사용 2022. 1. 31. 21:58 AWS CLI 설치 (macOS with brew) brew install awscli AWS 액세스 키 발급 Access Key의 종류 Access Key ID : 인증 요청한 사람이 누구인지를 확인하기 위한 키 (공개해도 되는 키) Secret Access Key : 인증 요청한 사람이 맞는지를 확인하는 키 (공개하면 안되는 키) Access Key 생성 보안 자격증명 페이지 접속 새 엑세스 키 생성 및 다운로드 CLI 설정 파일을 통한 자격증명 설정 config 파일 설정 aws configure vim ~/.aws/config 확인 현재 설정된 계정 정보 확인 aws sts get-caller-identity 키 페어 목록 확인 aws ec2 describe-key-pairs (AWS) AWS 계정 SSH Key 등록 및 EC2 접속 방법 2022. 1. 31. 11:25 AWS SSH 키 등록 키 페어 페이지 접속 키 페어 생성 이름 설정 키 파일 형식 : .pem 키 페어 생성 후 다운로드 EC2 머신 생성 EC2 머신 생성 페이지 접속 서버 선택 : 프리티어 사용을 위해 Ubuntu Server 20.04 LTS를 사용 인스턴스 세부 정보 구성 : 퍼플릭 IP 자동 할당 활성화 태그 추가 : EC2 머신 인지를 위함 보안 그룹 생성 : ssh 접근을 위해 22번 Port에 대해서 모든 IP 대역에 오픈 (모든 IP 대역에 오픈하는 것은 위험하나 연습을 위하여 오픈) 기존 키 페어 선택 접속 테스트 퍼플릭 IPv4 주소 확인 다운로드한 개인키가 있는 디렉터리로 이동 ssh 개인키 권한 최소 권한 설정 chmod 600 junwoo.pem ssh 접속 : ssh -i [.. (Network) IP와 Subnet 에 대해서 2022. 1. 30. 19:22 IP 주소란? 컴퓨터 간의 통신을 하기 위해서는 각각의 위치 값을 알아야 한다. 각각의 기기에 대한 위치 값을 IP 주소라고 지칭한다. (IPV4) IPV4 주소 표기 방법 IPV4는 4개의 숫자를 가지며 각각은.(dot)으로 구분된다. 각각의 숫자는 옥텟이라고 일컬어진다. 아래 이미지와 같이 각각의 옥텟은 8비트 단위의 숫자이다. 즉 세상에 존재할 수 있는 IP의 개수는 2^32 개 (약 43억)가 된다. (각각의 비트는 0, 1이 올 수 있기 때문) IP주소는 약 43억 개 (2^16)의 주소를 대표할 수 있다. 약 43억 개의 IP 주소를 어떻게 하면 효율적으로 사용할 수 있을까? IP를 특정 단위로 쪼개어서 사용자들에게 부여하면 되겠다. 여기서 말하는 특정 단위가 클래스이다. 각각의 클래스는 첫 .. (DesignPattern) FrontController - Version05 (with HandlerAdapter) 2021. 5. 11. 22:25 현재의 문제점 Version03, Version04 모두 원래의 취지에 맞게 FrontController에서 각각의 역할에 맞는 컨트롤러에게 전달하고 해당 컨트롤러는 비즈니스로직만을 처리할 수 있도록 설계가 되었다. 하지만 아직 문제가 남아있다! Version03, Version04 각각을 사용하고 싶을땐 아래의 사진과 같이 사용자가 직접 명시적으로 코드를 수정해야한다는 단점이 있다. 해결방안 이를 개선하기 위해서 우리는 어댑터 패턴을 사용할 것이다. 어댑터 패턴을 사용을 사용하면 위와 같이 명시적으로 선언하지 않고도 컨트롤러를 매핑시킬 수 있다. 어댑터 패턴이란? 어댑터 패턴은 ControllerVersion03과 ControllerVersion04 같이 호환이 불가능한 경우에 이를 호환 가능하게 할 .. (DesignPattern) FrontController - Version04 (단순하고 실용적인 컨트롤러) 2021. 5. 7. 22:36 jwdeveloper.tistory.com/293 (DesignPattern) FrontController - Version03 (Model 추가) jwdeveloper.tistory.com/292 (DesignPattern) FrontController - Version02 (View 분리) jwdeveloper.tistory.com/291 (DesignPattern) FrontController 패턴이란? (with FrontController - Version01) 이번 포.. jwdeveloper.tistory.com Version03 문제점 위의 Version03의 문제점은 무엇일까? 컨트롤러에서 ModelView를 반환함으로써 부득이하게 ModelView에 뷰 랜더링 시에 전달할 Map을 담아.. (DesignPattern) FrontController - Version03 (Model 추가) 2021. 5. 4. 21:45 jwdeveloper.tistory.com/292 (DesignPattern) FrontController - Version02 (View 분리) jwdeveloper.tistory.com/291 (DesignPattern) FrontController 패턴이란? (with FrontController - Version01) 이번 포스팅에서는 FrontController 패턴을 소개하고자 한다. Spring의 가장 핵심적인 Servlet인 D.. jwdeveloper.tistory.com Version02 문제점 위의 Version02의 문제점은 무엇일까? 1. 서블릿에 종속적 2. 뷰 이름 중복 현재 컨트롤러는 단순히 비즈니스 로직만을 처리하는데 파라미터로 HttpServletRequest, HttpS.. (DesignPattern) FrontController - Version02 (View 분리) 2021. 5. 2. 16:48 jwdeveloper.tistory.com/291 (DesignPattern) FrontController 패턴이란? (with FrontController - Version01) 이번 포스팅에서는 FrontController 패턴을 소개하고자 한다. Spring의 가장 핵심적인 Servlet인 DispatcherServlet은 FrontController 패턴으로 구성되어있다. FrontController 패턴이 무엇인지에 대해서 이해하.. jwdeveloper.tistory.com Version01 문제점 위의 Version01의 문제점은 무엇일까? 모든 컨트롤러에서 뷰로 이동하는 과정에서 중복된 코드가 발생되었다. 해결방안 이를 위해서 뷰를 처리를 전담하는 객체를 만들어보자! 아래의 그림에서 MyV.. (DesignPattern) FrontController 패턴이란? (with FrontController - Version01) 2021. 4. 29. 20:37 이번 포스팅에서는 FrontController 패턴을 소개하고자 한다. Spring의 가장 핵심적인 Servlet인 DispatcherServlet은 FrontController 패턴으로 구성되어있다. FrontController 패턴이 무엇인지에 대해서 이해하는 시간을 갖고 이후 간단한 DispatcherServlet을 다섯 가지 스텝으로 나누어 구현해보는 시간을 갖고자 한다. FrontController 패턴이란? FrontContoller 패턴은 지휘자를 만드는 것이다. 오케스트라 연주를 보면 여러 연주자들이 각각의 연주를 진행한다. 이때 지휘자가 없다면 어떻게 될까? 통제를 받지 못함으로써 소리의 음량을 조절하지 못할뿐더러 악기의 순서가 뒤죽박죽 엉켜 결국엔 불협화음이 생기게 된다. FrontCo.. 이전 1 2 3 4 ··· 8 다음