본문 바로가기

분류 전체보기

(122)
MySQL 스토리지 엔진 MySQL 스토리 엔진 스토리 엔진은 데이터베이스에서 데이터를 저장, 검색 및 관리하는 방법을 결정한다 MySQL은 여러 가지 스토리지 엔진을 지원한다 이러한 엔진들은 서로 다른 성능과 기능을 가지고 있다 주요 스토리지 엔진 InnoDB MySQL의 기본 스토리지 엔진이며 트랜잭션을 지원하고 행레벨 잠금, 외래 키 제약 조건 등을 제공한다 InnoDB는 ACID 규정을 지원하며 데이터의 무결성을 보장하며 롤백 및 복구 기능을 제공한다 웹 응용 프로그램과 같은 고성능 데이터베이스에서 가장 널리 사용되는 엔진이다 MyISAM MySQL의 오래된 스토리지 중 하나로 InnoDB가 등장하기 전에 많이 사용되었다 MyISAM은 테이블 단위의 잠금을 사용하며 이는 동시성에 제한을 주지만 읽기 집중적인 작업에는 뛰어..
웹 서버와 웹 애플리케이션 서버 웹 서버(Web Server) 웹 기반 애플리케이션을 호스팅하고 클라이언트와 통신하는 소프트웨어나 하드웨어다. 웹 서버의 주요 역할은? HTTP 프로토콜 사용 웹 서버는 클라이언트의 요청을 받고 응답을 전송하기 위해 HTTP 또는 HTTPS와 같은 프로토콜을 사용한다. 정적 콘텐츠 제공 웹 서버는 HTML, CSS, 이미지, javascript 파일 등과 같은 정적 콘텐츠를 처리하고 클라이언트에게 전송한다. 이러한 파일들은 웹 페이지를 구성하는 요소이며 웹 서버는 이러한 정적 콘텐츠를 저장하고 관리한다. 요청 및 응답 처리 클라이언트는 웹 서버에 웹 페이지를 요청하면 웹 서버는 해당 요청을 처리하고 적절한 응답을 클라이언트에게 전송한다. 응답에는 일반적으로 웹 페이지의 콘텐츠가 포함되어 있으며 클라이언트..
정규 표현식(Regular Expression) 정규 표현식(Regular Expression)이란? 문자열 검색, 추출, 치환 등의 작업을 수행할 때 사용되는 패턴 매칭 기법이다. 정규 표현식은 특정한 규칙을 따르며 이 규칙에 따라 문자열의 구조와 일치하는 부분을 찾아내거나 다른 문자열로 대체할 수 있다. 프로그래밍 언어와 텍스트 편집기에서 광범위하게 사용되며 특히 텍스트 처리와 관련된 작업에 유용하게 사용된다. 정규 표현식 구성 요소 리터럴(Literals) 일반 문자, 그대로 일치하는 문자열을 찾습니다. 예) apple은 apple과 일치한다. 메타 문자(Meta characters) 특수한 의미를 가지고 있는 문자, 정규 표현식의 규칙을 정의하는 데 사용한다. 예) , * + ? ^ $ 등등 문자 클래스(Character classes) 대괄호..
클라우드 컴퓨팅 클라우드 컴퓨팅은 인터넷을 통해 사용자가 필요에 따라 컴퓨팅 자원을 제공받고 사용한 만큼 비용을 지불하는 서비스 모델이다. 개인이나 기업이 자체적으로 컴퓨터나 데이터센터를 구축, 관리하던 것과 대비하여 클라우드 컴퓨팅은 이러한 인프라, 플랫폼, 소프트웨어 등을 외부 서비스 제공자로부터 쉽게 이용할 수 있게 한다. 클라우드 컴퓨팅 세 가지 서비스 모델 인프라스트럭처 애즈 어 서비스(IaaS) 가상 머신, 스토리지, 네트워크 등의 기본 컴퓨팅 인프라를 제공한다. 사용자는 이런 자원 위에 운영체제와 애플리케이션을 설치하고 관리한다. 대표적으로 AWS, AZURE, GCP 등이 있다. 플랫폼 애즈 어 서비스(PaaS) 사용자가 애플리케이션을 개발, 배포, 관리할 수 있는 플랫폼을 제공한다. 운영체제, 데이터베이..
멀티스레딩과 멀티프로세싱 멀티스레딩과 멀티프로세싱은 컴퓨터 프로그램이 여러 작업을 동시에 수행할 수 있도록 하는 두 가지 병렬처리 기술입니다. 그러나 각각의 기술은 다른 방식으로 동작하며 서로 다른 환경과 요구 사항이 있다. 멀티스레딩과 멀티프로세싱이란? 멀티스레딩(Multithreading) 멀티스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 병렬 처리를 수행하는 기술 이러한 스레드들은 동일한 메모리 공간을 공유하며 자원을 효율적으로 사용할 수 있다. 멀티스레딩은 주로 I/O작업이 많이 포함된 프로그램에 적합하며 빠른 응답 시간이 필요한 상황에서 유용하다. 그러나 스레드들이 공유하는 자원으로 인해 동기화 및 데이터 경쟁 문제가 발생할 수 있다. 사용 예) 웹 서버, 그래픽 사용자 인터페이스, 동영상 편집 소프트웨어..
테스트(Testing) 테스트를 해야하는 이유는 무엇일까? 테스트는 소프트웨어 개발 프로세스의 품질과 안정성을 높이기 위해서 수행한다. 버그 발견 및 수정 소프트웨어의 버그를 빠르게 발견하고 수정할 수 있다. 이를 통해 사용자에게 더 안정적이고 신뢰할 수 있는 소프트웨어를 제공한다. 코드 품질 향상 코드의 동작을 검증하고 예상치 못한 상황이나 특정 입력에 대한 처리를 확인한다. 이를 통해 전반적인 코드 품질을 향상 시킨다. 안정성 및 신뢰성 소프트웨어의 안정성과 신뢰성을 높일 수 있다. 안정적인 소프트웨어는 사용작의 만족도를 높이고 장기적으로 비용 절감과 시장 경쟁력 향상에 도움이 된다. 리팩토링 지원 테스트 케이스가 있으면 코드 변경 시 안전하게 리팩토링할 수 있다. 예상하지 못한 문제를 빠르게 찾아낼 수 있다. 문서화 및 ..
호이스팅 호이스팅(Hoisting) 변수와 함수 선언을 코드의 상위 부분으로 끌어올리는 것을 의미한다 Javascript에서 컴파일 단계에서 변수 선언과 함수 선언이 해당 스코프 맨 위로 이동한다 호이스팅의 과정 코드 실행 전 실행 컨텍스트가 생성되고 변수 객체가 초기화된다. 변수 객체 내에서 변수 선언과 함수 선언이 찾아지고 메모리에 저장된다. 이때 변수는 undefined로 초기화되고 함수는 전체 함수 선언이 저장된다. 코드 실행이 시작되면 변수 값이 할당되고 함수 호출이 이루어진다. 호이스팅은 주의해야하는 부분이 있다 예상하지 못한 결과 : 호이스팅으로 인해 변수가 선언되기 전에 참조되거나 사용될 수 있다 이로 인해 예기치 않은 결과가 발생할 수 있다 가독성 및 유지 보수의 어려움 : 변수나 함수 선언이 코..
실행 컨텍스트와 스코프 실행 컨텍스트(execution context)는 Javascript코드가 실행되는 환경을 의미한다 코드를 실행하는 과정에서 생성되며 전역 컨텍스트, 함수 컨텍스트, eval 컨텍스트 등으로 구분한다 전역 컨텍스트 : 코드가 처음 실행될 때 생성되는 기본 실행 컨텍스트, 전역 컨텍스트는 하나만 존재 전역 스코프에 속한다 함수 컨텍스트 : 함수가 호출될 때 생성되는 실행 컨텍스트, 각각 호출에 따라 독립적인 실행 환경을 제공한다. 함수 컨텍스트는 호출된 함수가 종료되면 소멸한다. 지역 스코프에 속한다 실행 컨텍스트는 다음 세 가지 구성 요소로 이루어진다 변수 객체 : 현재 실행 컨텍스트에서 정의된 모든 변수와 함수를 저장하는 객체 스코프 체인 : 현재 실행 컨텍스트와 관련된 모든 스코프를 포함하는 리스트이..