분류 전체보기

지금껏 MySQL을 쓰면서 innoDB는 무엇이고 스레드풀은 무엇인지 등, 내부에 대해 용어만 듣고 정확히 아는 것이 별로 없었다. MySQL의 내부를 살펴보며 각각을 하나씩 살펴보려고 한다.  MySQL 엔진 아키텍처MySQL 서버는 크게 MySQL 엔진과 스토리지 엔진의 두 가지로 나뉜다. MySQL 엔진은 클라이언트로부터 요청된 문장을 분석하거나, 최적화하여 처리하는 역할을 담당하는데, 그림에서 보이듯 커넥션 핸들러, 파서, SQL 인터페이스, SQL 옵티마이저, 캐시버퍼 등이 있다. 스토리지 엔진은 실제 데이터를 디스크 스토리지에 저장하거나 조회하는 역할을 담당한다. 여러 엔진을 동시에 사용할 수 있다. MyISAM 엔진, InnoDB 엔진 등이 있다. 이렇게만 말하면 확 와닿지는 않으니, 실제 ..
· Git
[Git] Git의 내부 구조와 동작 원리를 알아보자git 명령어는 자주 사용했지만, 실제 동작 원리에 대한 이해는 부족했던 것 같다. 특히 깃 충돌을 겪을 때, 부족한 개념지식으로 해결이 꼬이는 경우가 간혹가다 있었는데 오늘도 작은 규모의 커dcloud.tistory.com  깃의 내부 구성요소에 대해서는 지난 포스팅에서 다루었다. 하지만 개념만 이해하고, 내부 요소가 구체적으로 어떻게 동작하는지는 이해하지 못했다는 것을 느꼈다. 그래서 이번 포스팅에서는 실제로 깃 파일을 만들고 각 동작마다 어떻게 내부 요소가 변경되는지를 살펴보겠다. 1. git init()GitTest라는 디렉토리를 만들고 명령을 수행했다.그리고 이전 포스팅에서 살펴보았듯이, git init 명령어를 실행하면, .git 파일이 해..
자바스크립트에서 비동기 처리와 비동기를 어떻게 처리하는지 정리해보자. 비동기 처리 동기와 비동기는 상반된 개념이다. 동기는 순차적으로 코드가 실행되는 것을 말한다. 동기 처리 방식은 순차적으로 코드가 실행되어서 이해하기가 직관적이지만 한 가지 문제가 있다.  이전 코드가 끝나기 전까지는 아무것도 하지못해서 다음 코드로 넘어갈 수 없다는 것인데, 아주 쉬운 예로는 자장면을 배달하시는 배달부가 짜장면을 배달하고, 손님이 짜장면을 전부 먹을 때까지 다른 일도하지못하고, 계속해서 대기해야하는 것과 비슷하다.  그래서 비동기 처리 방식이 등장한다.  비동기 처리는 꼭 순차적으로 동작하지 않는다. 위의 예시로 보자면, 배달부가 자장면을 배달하고 손님이 식사할 동안 다음 장소로 이동할 수 있는 것이다. 여기서 한 가..
Worker Thread와 의문의 시작 worker thread를 만나고 오늘 하루가 고되기 시작했다. 아래 내용들 때문인데, 자연스럽게 Node의 이벤트 루프와도 연관지어 생각해볼 수 있어서 좋았다.  우선, Worker Thread는 이름 그대로 작업을 진행하는 스레드를 말한다. Worker Thread를 통해 메인 스레드와 분리할 수 있고, 그런 점으로 인해 복잡한 로직을 다른 곳에서 처리할 수 있게 해서 사용성을 증가시킬 수 있다. 자바스크립트는 단일 스레드 아닌가? 그런데 오늘 구현을 하면서도 들었던 의구심이 한 가지 있었는데 자바스크립트는 단일 스레드를 사용하는 것으로 알고 있었다. 그런데 어떻게 스레드를 하나 더 사용할 수 있을까 라는 생각이었다.  이때 간과했던 점이 한 가지가 있었다. 자..
Call Stack콜 스택이란 무엇일까. Call Stack은 함수를 사용할 때마다, 관련된 정보들이 쌓이는 곳이다. 단어를 그대로 보면, Call 은 호출을 말하고 Stack은 자료 구조인 Stack을 말한다. 즉 함수가 호출될 때 스택에 정보가 쌓이는 곳을 콜스택이라고 한다.  프로그램에서 함수들이 연쇄적으로 호출될 때, 스택의 형태로 메모리에 들어왔다가 나가게 된다.function f1() { f2();}function f2() { f3();}function f3() {}f1(); 아주 간단한 예시로 살펴보자 위 프로그램을 실행시키면 어떻게 될까? 스택에 위의 형태로 쌓이게 된다. f1()이 실행되며 먼저 쌓이고, 2 3 이 순서대로 들어온다.  f3()이 실행이 완료가 되어야 f2()의 동작이..
객체 지향 프로그래밍객체 지향 프로그래밍은 프로그램을 객체 라는 기본 단위로 나누고, 이 객체들의 상호작용을 통해 로직을 구성하는 프로그래밍 방법이다. 객체 지향에 대해 설명할 때 흔히 언급되는 예시가 자동차가 있는데, 자동차를 만들 때 여러 부품이 모여 하나의 완성된 결과가 나오는 것처럼, 프로그램을 구성하는 객체를 모아 완성된 프로그램을 만드는 것과 같다.  객체 지향 프로그래밍은 무엇이 좋을까?객체 지향 프로그래밍의 장점은 객체 지향 프로그래밍이 등장하게 된 배경을 살펴보면 쉽게 이해할 수 있을 것 같다. 객체 지향 프로그래밍이 등장하기 전, 프로그래밍 방식은 절차적 프로그래밍 방식이었다. 절차적 프로그래밍은 논리를 순서로 써내려가는 방식이다. 이 방식의 문제는, 로직이 복잡해지면 순서도로 나타내는..
동구름이
'분류 전체보기' 카테고리의 글 목록 (4 Page)