[혼공학습단 9기] 혼공얄코: 4주차

오늘은·2023년 2월 2일
0

혼공학습단

목록 보기
8/14

기본미션

운영체제: 사람이 컴퓨터를 쉽게 사용하기 위한 시스템 소프트웨어
GUI: 그래픽 요소를 사용해서 직관적이고 편리하게 구성한 인터페이스
CLI: 명령어 줄을 입력하여 사용 가능한 인터페이스
커널: 운영체제의 핵심 기능을 담당하는 요소
오픈 소스: 누구나 소스 코드를 볼 수 있고 개발에 참여할 수 있는 소프트웨어

선택미션

Chapter 02 내용과 비슷한 강의 내용
한 곳에 저장된 정보를 어디서든 사용하여 어디에도 종속되지 않은 독립된 정보 저장소.
데이터 베이스는 정보를 넣고 원하는 정보를 찾는 등의 기능으로 DBMS (데이터 베이스 관리 시스템)이 된다.
각 DB는 사용자 정보를 입력 조회 수정 삭제 등 데이터를 관리할 수 있도록 제공하는 방식이 있다. 다수의 DB는 SQL를 사용
정보 저장하는 방법: 각각의 파일로 저장하여 사용시 입력의 자유로움과 빠른 읽기 속도를 보장하나 제약이 없어 항목이 없을 때, 분류명이 다를때 오류가 발생할 수 있다.
형식을 정해 표/테이블 형식으로 만들 수 있으며, 입력 형식을 한정할 수 있으며 SQL를 통해 정보 조작이 가능하다.

RDBMS 관계형 데이터 베이스. 중복된 데이터를 분리하여 데이터 낭비를 줄임.
테이블을 분리하여 데이터 중복을 막을 수 있으며 분리한 테이블은 관계를 통해 필요시마다 join을 통해 묶어 사용하여 효율적이고 오류를 막을 수 있는 것.
필터링 정렬 가공을 통해 의미있는 데이터를 생성할 수 있다. (SQL을 사용하는 DBMS이기도 하다)

NoSQL Database 보통은 비관계형 데이터베이스를 통틀어 말하는 것.
유연성과 속도를 장점으로 내새워 다량의 데이터를 처리하는 빅데이터 처리에 사용하되 안정적이며 일관된 데이터를 사용해야할 경우에는 적합하지 않다.
key-value DB - key 값과 value 값을 하나로 묶어 사용하며 메모리에 저장되는 만큼 빠르게 처리할 수 있다.
그래프 데이터 베이스 - node를 연결하여 관계를 파악할 수 있다. 연관성 분석등을 시각적으로 활용 가능.


Chapter 02. 개발자와 소통하기: IT 업계 용어 알기

02-7 디지털 시대, 데이터와 데이터베이스의 이해

데이터와 데이터베이스

데이터: 의미나 목적없이 단순 수집된 자료
정보: 데이터가 모여 의도나 목적에 따라 분석되어 의미가 부여된 것.
데이터베이스: 많은 양의 데이터를 모은 곳.
보통은 전산상으로 저장된 구조화된 정보, 조직화된 데이터 모음으로, 소프트웨어를 통해 데이터를 읽고, 저장, 수정, 삭제가 가능한 형태의 데이터 집합을 말한다.
(특정 프로그램에 종속되지는 않는 독립된 소프트웨어로 구축된다.)

DBMS

데이터베이스 관리 시스템이라 부르며, 많은 양의 데이터를 효과적으로 관리하기 위한 기능을 갖춘다. 특정 데이터의 CRUD 및 유지 및 보안 유지가 가능하다.
MySQL, MongoDB, Oracle 등이 있다.

관계형 데이터베이스

RDBMS로 불리며 일반적으로 데이터 베이스를 말할 때 떠올리는 시스템이다.
테이블에 데이터를 저장하는 방식으로 관리.
특징

  • 사전에 각 열마다 어떠한 형태의 데이터가 들어갈지 설정하여 잘못된 데이터가 입력되는 것을 방지할 수 있다.
  • 테이블을 분할하여 데이터를 입력하는 방법을 제공한다. (중복되는 부분을 줄이며 불필요한 열을 제거하면 총 용량도 줄일 수 있음)
  • 나눠진 테이블은 join을 통해 쓰임에 따라 효율적이고 안정적으로 활용할 수 있다.

주요 관계형 데이터베이스

오라클 데이터베이스, MySQL, MSSQL,PostgreSQL, MariaDB, SQLite

SQL

DBMS는 연결된 프로그램으로부터 요청을 받아 데이터를 처리하며, 데이터 처리는 SQL을 통해 수행한다.

NoSQL

관계형이 아닌 데이터베이스를 의미. 보안, 비용, 기능의 문제로 관계형 방식이 적합하지 않을 경우 대안으로 사용되기도 한다.

주요 사용되는 NoSQL 모델

문서 데이터베이스: 문서 형태로 저장한다.
각 데이터에 XML 혹은 JSON등 비슷한 형태로 문서를 저장하며 데이터마다 동일 항목이 필요한 것은 아니기 때문에 유연성이 작용하는 곳에서 유용하게 사용할 수 있다.
키-값 데이터베이스: 키와 값의 쌍을 저장하는 단순한 데이터베이스
속도가 빠르며 용량 부족시 다른 서버와 분담이 가능한 확장성을 갖는다.
그래프 데이터베이스: 각 데이터를 여러 노드(node)와 관계(edge)로 구성된 자료 구조를 말한다.

02-8 개발자들은 왜 리눅스를 좋아하나요?

운영체제

하드웨어 기기와 사용자를 연결하며 중재하는 역할을 수행
윈도우, 맥OS, 리눅스, 안드로이드, iOS, WearOS/WatchOS, 라즈베리파이 까지 수많은 운영체제가 존재한다.

GUI vs CLI

운영체제에는 프로그램을 실행할 수 있는 인터페이스를 함께 제공한다.

GUI (Graphic User Interface)

그래픽으로 구성된 사용자 인터페이스. 그래픽을 사용하여 소통한다.

CLI (Command Line Interface)

명령줄에 텍스트를 입력하여 작동하는 방법. 기본 명령어를 알아야 하기 때문에 접근성 및 활용도가 상대적으로 낮다.

CLI 방법을 아직 사용하는 이유
1. 자원 소모가 덜하다. 그래픽요소가 불필요하여 성능을 우선시하는 환경에서 유리하다.
2. 환경이 간편하고 정확하다. 한번에 여러 과정을 수행할 경우 CLI는 한줄의 명령어로 처리할 수 있으며 복사하여 사용할 때는 더욱 간편하게 사용이 가능하다.
3. 네트워크에서는 CLI가 더 정확하다. 백엔드 개발시 원격에서 사용할 경우 불필요한 과정을 줄여 결과만 전송받는 방식으로 다룰 수 있다.

정리: 사용자 친화적인 GUI vs 시스템 상호작용에 유리한 CLI

리눅스

오픈 소스로 자유롭게 개발이 가능하며 다른 프로그램 대비 안정적으로 작동할 수 있다.
오픈소스 커뮤니티에서 필요에 따라 기존 리눅스를 개량하여 새로운 버전으로 만들기도 한다. (자유롭게 활용이 가능한 이유)
또한 무료로 사용이 가능하여 설치 비용 절감효과가 있다.

우분투

가장 많이 사용되는 리눅스 버전으로 데스크탑용, 서버용을 제공한다.

라즈베리 파이

우분투같은 데비안 계열(* 리눅스 운영체제 중 하나) 라즈베리 파이 하드웨어에 최적화.
이외에도 레드햇 (엔터프라이즈) 리눅스, 센트OS, 로키 리눅스, 리눅스 민트, 만자로 리눅스 등이 있다.

커널

위 배포판이 모두 리눅스라고 불릴 수 있는 이유. 리눅스 커널을 사용하기 때문이다.
운영체제의 핵심을 의미하는 커널은 하드웨어와 응용 프로그램 사이에서 작동하여 모든 일을 통제하게 된다. 인터페이스 연결, 작업간 우선순위 지정으로 효율적으로 분배하기도 한다. 메모리 할당, CPU점유율 등을 추적하여 안정적으로 작동되도록 관리하기도 한다.
운영체제와 같은 의미로 사용되기도 하며 인터페이스가 커널 위에 배치되어 사용해야 한다.

오픈 소스

누구든지 프로그램의 소스 코드를 살필 수 있으며, 오류 수정, 기능 제안 등의 방식으로 개발에 참여할 수 있다. 리눅스 배포판 처럼 기존의 소스코드를 수정하여 다른 프로그램 출시도 가능하다.

profile
게으르지만 기록은 하고싶어!

0개의 댓글