목록분류 전체보기 (4)
개발 메모장
오늘은 컴파일 언어와 인터프리터 언어에 대해 알아보겠습니다. 또한 많이 사용되는 언어들이 어떤 언어인지도 살펴보도록 하겠습니다.1. 컴파일 언어(Compiled Language)컴파일 언어는 소스 코드가 실행되기 전에 컴파일러를 통해 기계어로 변환되는 언어입니다. 이 과정에서 전체 소스 코드가 기계어로 변환되며, 변환된 기계어 코드는 특정 운영 체제와 하드웨어에서 직접 실행됩니다.예시: C, C++, Go장점:빠른 성능: 컴파일된 기계어 코드는 직접 실행되기 때문에 성능이 뛰어납니다.최적화: 컴파일러는 다양한 최적화 기법을 적용하여 성능을 개선할 수 있습니다.단점:플랫폼 종속성: 기계어는 특정 운영 체제와 하드웨어에 종속적입니다. 따라서 코드의 이동성과 호환성에 제약이 있을 수 있습니다.1.1 컴파일러(..
오늘은 MySQL의 스토리지 엔진 중 하나인 InnoDB에 대해 알아보겠습니다.1. InnoDB 특징InnoDB는 다음과 같은 특징을 가집니다.레코드 기반의 잠금 제공: 행 수준의 잠금(Record Lock)을 통해 동시성을 향상시키고, 테이블 전체 잠금과 관련된 성능 문제를 줄입니다.프라이머리 키에 의한 클러스터링: 프라이머리 키를 기준으로 데이터를 클러스터링하여 데이터 접근 성능을 높입니다.외래 키 지원: 참조 무결성(Foreign Key Constraints)을 제공하여 데이터베이스의 관계형 모델을 지원합니다.MVCC (Multi-Version Concurrency Control): 다중 버전 동시성 제어를 사용해 트랜잭션 격리 수준에서 잠금 없이 일관된 읽기(Consistent Read)를 제공합..
이번 글에서는 MySQL 아키텍처에 대해 알아보겠습니다.1. MySQL 아키텍처MySQL의 아키텍처는 크게 2가지로 나눌 수 있습니다.1.1 MySQL 엔진요청된SQL 문장을 분석하고 최적화하는 등의 작업을 수행합니다.MySQL 엔진은 다음의 요소들로 구성되어 있습니다.쿼리 파서: 요청된 쿼리 문장을 토큰으로 분리 하여 파서 트리로 만드는 작업을 수행합니다.전처리기: 파서 트리를 기반으로 쿼리 문장에 구조적인 문제점이 있는지 확인합니다.옵티마이저: 쿼리 문장을 어떻게 실행할지 계획을 작성합니다.실행 엔진: 계획을 바탕으로 핸들러 API를 호출합니다.1.2 스토리지 엔진실제 데이터를 디스크 스토리지에 저장하거나 읽어오는 작업을 수행합니다.MySQL의 경우 스토리지 엔진을 플러그인해서 사용할 수 있으며, 동..
결합도(Coupling)와 응집도(Cohesion)은 소프트웨어 공학에서 중요한 개념으로, 소프트웨어의 구조와 품질을 평가하는 데 중요한 역할을 하며, 잘 설계된 시스템은 높은 응집도와 낮은 결합도를 가집니다. 이번 글에서는 결합도와 응집도가 무엇인지, 그리고 왜 중요한지에 대해 알아보겠습니다.1. 모듈(Module)과 모듈화(Modularization)모듈은 소프트웨어 기능을 독립적이고 재사용 가능하게 설계하기 위해 논리적으로 분리된 코드의 집합을 말합니다.모듈화는 소프트웨어를 여러 개의 모듈로 분할하는 과정을 말합니다.1.1 모듈의 특징독립성: 각 모듈은 다른 모듈과 독립적으로 작동할 수 있습니다.재사용성: 모듈은 여러 곳에서 재사용할 수 있습니다.캡슐화: 모듈은 자신의 데이터와 기능을 내부적으로 유..