목록STUDY (106)
공부해봅시당

본 포스팅은 뉴렉처님의 리눅스 강의를 바탕으로 학습 내용 정리의 용도로 작성한 것임을 명시합니다. 1. 셸(Shell)이란? 명령어와 프로그램을 실행할 때 사용하는 인터페이스 즉, 커널과 사용자간의 다리역할 윈도우에서는 아래 그림과 같은 명령 프롬프트창이 일종의 셸이라고 할 수 있다. 아래는 위키백과 정의이다. 셸(shell)은 운영 체제 상에서 다양한 운영 체제 기능과 서비스를 구현하는 인터페이스를 제공하는 프로그램이다. 셸은 사용자와 운영 체제의 내부(커널) 사이의 인터페이스를 감싸는 층이기 때문에 그러한 이름이 붙었다. 셸은 일반적으로 명령 줄과 그래픽 형의 두 종류로 분류된다. 명령 줄 셸은 운영 체제 상에서 명령 줄 인터페이스(CLI)를 제공하는 반면에, 그래픽 셸은 그래픽 사용자 인터페이스(G..

트랜잭션이란? 트랜잭션은 하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합이다. 다시 말해 '여러 읽기/쓰기를 논리적으로 하나로 묶은 것'을 말한다고 표현할 수 있다. (위 표현은 https://www.youtube.com/watch?v=urpF7jwVNWs 링크의 영상을 참고하였음) 트랜잭션의 가장 큰 특징은 진행 과정에 있다. 여기서 커밋은 데이터베이스에 결과를 반영하는 것이고, 롤백은 결과를 반영하지 않는 것을 말한다. 만약 트랜잭션이 없다면 문제가 발생하더라도 데이터베이스가 데이터 일관성을 보장할 수 없기 때문에 소프트웨어가 데이터 일관성을 보장해야 하는 문제가 생긴다. (이와 관련하여 자세한 사항은 이전에 작성한 https://study0304.tistory.com/3 글에서 참고하길 바..

저번 시간까지 서버에 대해 알아보는 시간을 가졌다 이번 시간에는 Web Server와 WAS에 대해 알아보고자 한다. 이 두가지 개념은 헷갈리기 쉬운 개념이니 이번 기회에 정리하고 넘어가면 좋을 것이다. Static Pages와 Dynamic Pages 위 사진은 Static Pages와 Dynamic Pages를 가장 잘 설명한 그림이다. Web Server와 WAS를 알아보기로 했는데 Static Pages와 Dynamic Pages가 갑자기 등장한 것이 의외일 수도 있을 것이다. 하지만 Web Server와 WAS를 알아보는 데 있어서 가장 중요한 개념이기 때문에 꼭 알아야 한다. Web Server가 Static Pages이고, WAS가 Dynamic Pages이기 때문이다. 쉽게 말해, Web ..

Server란? 먼저 Server의 사전적 의미를 살펴보도록 하자. Server란 클라이언트에게 네트워크를 통해 정보나 서비스를 제공하는 컴퓨터 시스템으로 컴퓨터 프로그램 또는 장치를 의미한다. 특히, 서버에서 동작하는 소프트웨어를 서버 소프트웨어라 한다. - 위키백과 아주 잘 정의가 되어 있지만 우리는 좀 더 자세히, 그리고 천천히 이해해 보도록 하자. 영어적 의미의 Serve를 알아보자 먼저, 우리는 한 가지 질문에 대해 생각해 볼 필요가 있다. 컴퓨터에서 사용되는 용어들은 누가 만든 것일까? 당연히 대답은 '사람'이다. 따라서 현실세계에서 사용되는 의미를 가져온 용어가 많다. Server라는 용어도 마찬가지이다. 너무 많이 들어서 익숙하지만, 막상 설명해보라고 하면 제대로 설명하지 못할 것 같은 S..

IDC(Internet Data Center) 이전 시간에 서버의 개념에 대해 알아보았다. 이번 시간에는 타워형 서버와 랙형 서버에 대해 알아보고자 한다. 타워형 서버와 랙형 서버를 알아보기 전, 서버의 이미지에 대해 떠올려 보자. 보통 서버라고 하면 아래 사진처럼 불리는 곳을 먼저 떠올릴 것이다. 이것을 우리는 IDC, 즉 Internet Data Center라고 부른다. IDC는 인터넷 연결의 핵심이 되는 서버를 한 데 모아 집중시킬 필요가 있을 때 설립하는 시설을 말한다. IDC를 통해 온라인 게임의 운영에 필요한 서버 컴퓨터와 네트워크 회선 등을 제공하는데, 다른 말로는 서버 호텔이라고도 한다. 서버 호텔이라는 말을 들으니 더 와닿지 않은가? 규모가 큰 호텔에서 손님들이 비용을 치루면 방을 가격에..

JDBC란? JDBC는 Java Database Connectivity의 약자로 자바에서 데이터베이스에 연결하기 위한 인터페이스이다. 이전에 RDBMS를 지원하는 3대 DB에 대해 알아보았다. RDBMS를 지원하는 3대 DB에 따라 SQL문이 다를 수 있다는 것도 이미 설명한 바 있다. RDBMS를 지원하는 3대 DB의 특징은 이 뿐만이 아니다. 각 DB를 사용하기 위한 SQL문을 실행하기 위한 실행 도구는 DB Client 프로그램으로, 각 DB마다 연결/인증, 문장실행, 결과패치 순으로 진행된다. 하지만 DB Client 프로그램을 일반인이 사용하기란 쉽지 않다. SQL 언어를 알아야 사용할 수 있기 때문이다. 더해, 일반인은 업무용 프로그램만 사용할 수 있으면 되기 때문에 굳이 SQL 언어를 학습하..
InnoDB와 MyISAM InnoDB와 MyISAM은 모두 MySQL의 스토리지 엔진이다. 스토리지 엔진이 중요한 이유는 locking 방식 때문이다. locking 방식에 따라 스토리지 엔진이 달라질 수 있으므로 데이터베이스를 사용할 때 함께 고려해야 할 중요한 사안이라고 할 수 있다. 아래는 MyISAM과 InnoDB의 특징이다. MyISAM 한번에 대량의 Insert 작업을 할 때 유용함 읽기 위주의 간단한 작업에서 빠른 속도를 보임 -> Read Only 기능이 많은 서비스일수록 유용함 전문검색이 필요할 경우 유용함 트랜잭션이나 복구 등이 필요 없는 경우에 적합함 Row-level Locking(행 수준의 잠금)이 지원되지 않음 Row-level Locking(행 수준의 잠금) : 한 테이블 내..

대표적인 3대 DB를 알기 전에 먼저 대표적인 3대 DB란 기본적으로, 현재 가장 대중적으로 쓰이는 RDBMS를 효율적으로 사용하기 위한 언어를 제공하는 시스템을 말한다. 따라서 3대 DB를 알아보기 전에 간단하게 RDBMS이 무엇인지만 알고 넘어가려고 한다. RDBMS란? RDBMS란 Relational DataBase Management System의 약자로, 말 그대로 관계형 데이터 베이스 시스템을 뜻한다. 또한 이름에서부터 예상할 수 있겠지만 RDBMS는 DBMS의 한 종류이다. DBMS에는 한 가지만 있는 것이 아니라 여러 가지 종류가 있다는 것이다. 아래는 위 4가지 종류를 그림으로 간략히 표현한 것이다. 오늘의 목표는 대표적인 3대 DB를 알아보는 것인데, 대표적인 3대 DB 모두 RDBMS..