1. 인덱스란?인덱스는 관계형 DBMS가 관리하는 테이블에 존재하는 데이터를 빠르게 조회할 수 있도록 데이터를 저장하는 데이터베이스 객체입니다. 인덱스는 테이블의 특정 컬럼을 기준으로 만들 수 있기 때문에 특정 컬럼을 기준으로 정렬된 일종의 표라고 할 수 있습니다. 특정 컬럼을 기준으로 정렬되어 있기 때문에 인덱스가 걸려있는 컬럼을 기준으로 검색했을 때, 인덱스를 활용하여 데이터를 빠르게 조회할 수 있습니다. 1) 인덱스는 항상 정렬된 상태를 유지해야 한다.인덱스를 사용했을 때, 조회 상황에서 유리한 이유는 인덱스가 특정 컬럼을 기준으로 내림차순 혹은 오름차순으로 정렬되어 있기 때문입니다. 실제로 DBMS가 관리하는 데이터는 HDD 또는 SSD에 저장될텐데요. 내가 저장하는 데이터들이 항상 순서대로 저장..
SELECT FOR UPDATE는 테이블 내 레코드의 동시성 제어를 위해 사용할 수 있는 SQL 구문입니다. 하지만 SELECT FOR UPDATE를 사용했을 때, 락이 걸려있는 레코드에 대한 접근이 어디까지 제한되는지 직접 실습을 통해 확인해보고자 합니다. 1. 실습 환경 구성하기먼저, 하나의 DBMS에 두 개의 세션 연결을 해야하며, 하나의 세션에서 트랜잭션을 시작하고, SELECT FOR UPDATE를 사용하면, 다른 세션에서 해당 레코드에 접근했을 때, 어디까지 접근이 되는지 확인해야 합니다. 이를 위해, 두 가지 방법을 사용할 수 있습니다.MySQL Workbench를 활용하여, 두 개의 탭을 띄운다. (본 게시글에서는 1번을 사용할 것입니다.)하나는 MySQL Workbench를 활용하여 접근..
1. SQL이란?SQL은 Strucutred Query Language로 구조화된 질의 언어라고 해석할 수 있습니다. 앞선 포스팅에서 DBMS는 응용 프로그램과 컴퓨터 언어를 통해 데이터를 주고 받으며, 다양한 처리를 한다고 하였습니다. SQL은 관계형 DBMS와의 통신에서 사용되는 언어입니다. SQL을 사용하면 복잡한 데이터베이스에서 원하는 데이터를 추가, 삭제, 수정, 조회를 쉽고 빠르게 처리할 수 있습니다.1) 기존 프로그래밍 언어와의 차이점은 무엇일까?SQL은 C, Java와 같은 기존 프로그래밍 언어와 마찬가지로 컴퓨터에서 작업을 수행할 수 있는 컴퓨터 언어입니다. 또한 응용 소프트웨어를 만들기 위해 사용됩니다. 언어별로 다양한 데이터 타입(VARCHAR / CHAR 등)을 지원하며, 언어별로 ..
1. 파일 시스템과 데이터베이스의 차이1) 파일 시스템파일시스템은 컴퓨터를 사용하는 우리들에게 가장 익숙한 데이터 저장방식입니다. 엑셀 시트, 메모장, 이미지 등 다양한 형태의 데이터가 SSD/HDD에 저장되어 있습니다. 서비스에 필요한 데이터를 저장하는 방법으로 파일 시스템을 활용할 수도 있지만, 데이터가 수십만 개에서 최소 억 단위라면, 일일이 파일로 관리하는 것은 효율적인 방법이 아닐 것입니다. 만약, 100만 개의 메모장 파일이 있는 폴더에서 특정 문구를 포함한 파일을 찾고 싶다면?이 상황에서는 하나하나 열어보는 수밖에 없을 것입니다. 스프레드 시트는요...?그렇다면, 파일로 저장하되 스프레드 시트로 데이터를 저장한다면 위와 같은 문제를 해결할 수 있을 것입니다.하지만, 특정 조건에 맞는 행 혹..
1. NIC란NIC, Network Interface Card는 MAC주소로 식별되는 하드웨어 장치입니다. 네트워크 통신을 위해 하드웨어에 필수로 존재해야 하는 장치입니다. 주로, LAN 카드라고도 부르나 NIC라고 부르는 경우도 있으니 두 용어를 모두 알고 있으면 현업에서 유용할 것입니다.NIC는 AWS의 EC2에서도 확인할 수 있습니다.https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/using-eni.html 탄력적 네트워크 인터페이스 - Amazon Elastic Compute Cloud이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시..
1. 망이란 무엇일까 AWS는 각 나라별로 데이터센터를 운영하고 있으며, 이러한 데이터 센터가 모여있는 지리적인 영역을 리전이라고 합니다. 또한, VPC는 하나의 리전에만 종속되어야 합니다. 그리고 위 사진처럼, 하나의 VPC 내에서 여러 개의 서브넷으로 구분할 수 있는데, 이들은 각각 다른 AZ에 구성할 수 있습니다. 그렇다면, 여기서 서브넷은 무엇이고, 이들을 별도의 AZ에 구성하는 이유는 무엇일까요?1) 서브넷서브넷은 일종의 망입니다. 그렇다면, 망이란 무엇일까요? 망은 노드들과 노드들을 연결하는 링크로 구성된 시스템을 일컫습니다.노드 : OSI 7계층 기준, 3계층(네트워크 계층) 이상의 장비를 칭합니다. 즉, IP로 식별되는 장치를 말합니다.링크 : 노드들을 연결하는 물리적 회선을 칭합니다.이러..