boostcamp

Day16 학습 정리

daykim 2023. 7. 31. 14:28

파일 시스템


(2010년도 글이라 주의)
저장매체가 개발되었을 때는 데이터를 저장할 수 있다는 것 자체가 큰 이슈였다.
따라서 파일 시스템이라는 개념이 존재하지 않았다.

그런데, 저장할 데이터가 많아지면서, 파일이라는 개념을 사용해 데이터를 구분해 저장하기 시작했다.
이 때도 다순히 순차적으로 데이터를 기록한 후, 데이터의 시작위치와 크기만 알고 있다면, 해당 파일을 다룰 수 있을 것이다.

하지만, 단순히 백업용이 아닌, 데이터는 수시로 지워졌다 재기록된다.
또한 저장매체 용량이 커지면서 개인이 관리하는 파일 수가 수만에서 수십만개를 초과한다.
수많은 파일에서 자신이 필요한 파일을 순식간에 접근해 읽어야 하고, 또는 기록해야 한다.

 

파일 시스템

  • 데이터를 효과적으로 관리하기 위해 사전에 정의한 기록 방식이다.
  • 효과적인 관리를 위해 압축, 암호화, 저널, 동적 할당, 다국어 지원 등 다양한 기능을 보유하고 있다.
  • 현재 운영체제를 통해 파일에 데이터를 기록하고, 일고, 지우고, 암호화 등의 작업이 원활한 것은, 오랜시간 개선되어온 현재의 파일시스템 덕분이라고 한다.
  • 파일 시스템은 운영체제나 저장 매체, 사용 환경에 따라 고유한 파일 시스템이 사용된다.
    • Window 파일 시스템 : FAT, NTFS
    • Linux : ext
    • MacOS : HFS
    • 각 운영체제에서 고정적으로 사용되는 것은 아니고, 서로 포팅 되어 사용될 수 있다.

 

파일 시스템 구조

운영체제 입장에선, 많은 파일을 관리할 수 있어야 하므로 파일 시스템이라는 구조에 의존한다.
컴퓨터 구조로 보면, 파일 시스템은 커널 영역에서 동작하게 된다.

즉, 파일 시스템은 사용자에게 하드디스크의 동작을 추상화 시켜주는 도구가 되는 것이다.
하드디스크의 동작과 해당 드라이버의 동작을 파악하지 않아도, 운영체제가 제공하는 API를 통해 파일 시스템을 쉽게 접근할 수 있기 때문이다.

Meta Area Data Area
  • Meta 영역 :  일반적으로 데이터 영역에 기록된 파일의 이름, 위치, 크기, 시간 정보, 삭제 유무 등이 구조적으로 저장되어 관리된다.
  • 직접 파일 데이터가 필요한 경우가 아니면, 메타 영역만의 접근으로 해당 파일 정보를 확인할 수 있다.
  • 윈도우 탐색기를 통해 확인하는 파일 정보도, 직접 파일에 접근하는 것이 아니라, 메타 영역만 확인해 빠르게 파일 정보를 보여주는 것이다.
  • 메타 영역을 탐색하다 파일을 클릭했을 때, 윈도우 경우엔 파일 확장자와 애플리케이션 바인딩된 응용 프로그램으로 제어권이 넘어간다.
  • 제어권 받은 응용프로그램은, 메타 영역을 확인해, 해당 파일이 위치한 데이터 영역으로 이동해, 해당 위치부터 순차적으로 파일 데이터를 읽어 들이면서, 처리하게 된다.
  • 물론 메타 영역으로 실제 저장매체 일부를 사용하게 되지만, 효율성이라는 관점에서 더 많은 이득이 있다.

 

파일 시스템과 디렉토리


Directory Structure (디렉토리 구조)

디렉토리는 파일의 메타 데이터 중 일부를 보관하고 있는, 일종의 특별한 파일이다.

  • 파일 시스템 안에서 파일과 하부 디렉토리들로 구성된다.
  • 해당 디렉토리에 속한 파일 이름과 속성들을 포함하고 있다.

 

HTTP Request와 Response


HTTP 메시지

서버와 클라이언트 간에 데이터가 교환되는 방식이다.

메시지 타입은 두가지가 있다.

  • 요청 (request) : 클라이언트가 서버로 전달해 서버의 액션이 일어나게 하는 메시지다.
  • 응답 (response) : 요청에 대한 서버의 답변이다.

 

네트워크 스터디에서 정리한 글

  • HTTP 요청 메시지
  • HTTP 메소드
  • HTTP 응답 메시지 및 상태코드

 

데이터베이스


구조화된 정보 || 데이터의 조직화된 모음으로, 일반적으로 컴퓨터 시스템에 전자적으로 저장된다.

  • 일반적으로 데이터베이스 관리 시스템(DBMS)에 의해 제어된다.
  • 처리 및 데이터 쿼리를 효율적으로 수행하기 위해, 일련의 테이블에서 행과 열로 모델링 된다.
  • 그러면 데이터에 쉽게 액세스하고 관리, 수정, 업데이트, 제어 및 구성할 수 있다.
  • 대부분의 데이터베이스는 데이터 작성 및 쿼리에 SQL을 사용한다.

 

DBMS

데이터베이스와 최종 사용자 || 프로그램 간의 인터페이스 역할을 함으로써,
데이터베이스를 물리적, 논리적으로 관리할 수 있게 해주는 소프트웨어다.

  • 사용자가 data의 구성 및 최적화 방법을 검색, 업데이트 및 관리할 수 있게 해준다.
  • 데이터베이스의 감독 및 제어가 용이하고, 성능 모니터링, 튜닝, 백업, 복구 같은 다양한 관리 작업이 가능하다.

파일 기반으로 데이터를 관리하게 되면, 데이터 중복, 데이터 불일치 등의 문제가 발생한다.
이러한 파일 시스템의 단점을 보완하기 위해 데이터베이스가 생겨났다.

 

데이터베이스 특징

  • 독립성
  • 무결성
  • 보안성
  • 일관성
  • 경제
  • 중복 최소화

 

데이터베이스 유형

  • 관계형 데이터베이스
  • NoSQL 데이터베이스
  • 클라우드 데이터베이

 

Transaction (트랜잭션)

하나의 논리적 작업 단위를 구성하는 일련의 연산들의 집합이다.

  • 쪼갤 수 없는 업무 처리의 최소 단위다.
  • 이 업무가 정상적으로 완료되지 않는다면, 아무것도 실행되지 않은 처음 상태로 되돌려져야 한다.
  • ACID
    • Atomicity (원자성)
    • Consistency (일관성)
    • Isolation ( 독립성)
    • Durability (지속성)

 

SQL (Structured Query Language)


 

데이터를 쿼리, 조작 및 정의하고, 액세스 제어를 제공하기 위해 거의 모든 관계형 데이터베이스에서 사용되는 프로그래밍 언어다.

 

SQL 동작 원리

https://ssunws.tistory.com/44

  1. user process는 자신이 가져온 SQL을 server process에 전달하기 위해 tnsnames.ora를 참고해 서버를 찾는다.
  2. 서버에서 작동하고 있는 listener에 접속을 요청한다.
  3. listener가 서버에 요청하면, user process와 server process가 연결된다.
  4. user process가 server process에 SQL을 전달한다.
  5. server process가 oracle server에 접속한다.
  6. Parse (구문 분석) : 문법, 의미, 권한 검사 및 실행 계획
  7. Execute (실행) : 데이터 파일에서, 데이터가 들어있는 블록 찾아 DataBase buffer Cache로 복사한다.
  8. Fetch (인출) : 복사된 블록에서 사용자가 원하는 데이터 추출

 

 

 

 

 

참고자료

'boostcamp' 카테고리의 다른 글

Day18 학습정리  (0) 2023.08.02
Day13 학습정리  (0) 2023.07.26
Day11 학습 정리  (0) 2023.07.24
Day09 학습 정리  (0) 2023.07.20
Day08 학습 정리  (0) 2023.07.19