CS 질문

- 파일 시스템(File System)

컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록, 유지 및 관리하는 방법

개발 목적

  • HDD와 RAM의 속도차이 줄이기
  • 파일 관리
  • HDD의 용량 효율적 이용

접근 방법
1. 순차 접근(Sequential Access)

  • 뒤로 돌아가야 한다면 offset만큼 되감기
  • 포인터를 앞으로 이동하며 read, write 진행

  1. 직접 접근(Direct Access)
  • cp 변수 : 현재 위치를 가리키는 포인터
  • 랜덤 액세스가 가능함

  1. 기타 접근
  • 실제 파일의 index를 따로 보관함.

디렉터리와 디스크 구조

  • 1단계 디렉터리
    파일들은 서로 유일한 이름을 가짐

  • 2단계 디렉터리
    1단계 디렉터리를 각 사용자들에게 제공함.

  • 트리 구조 디렉터리
    2단계 디렉터리가 여러 개 있는 구조.
    특정 비트를 통해 0 : 일반 파일, 1 : 디렉토리를 구분.

- 객체지향 프로그래밍

순차적 프로그래밍

  • 필요한 기능을 순서대로 추가하며 구현하는 방식
  • goto문을 활용해 이동을 해가면서 코딩하는 것
    단점 : 코드의 규모가 커질수록 흐름이 잘 읽어지지 않는다.

절차적 프로그래밍

  • 반복될 가능성이 있는 것을을 함수(프로시저)로 만드는 방식
    단점 : 너무 추상적이다. (함수), (변수, 상수)가 구분되게 된다.

객체지향 프로그래밍

  • 특정한 개념의 함수와 자료형(변수, 상수)을 함께 묶어서 관리하기 위해 탄생
  • 객체 내부에 자료형(필드)와 함수(메소드)가 같이 존재하는 것
    장점 : 객체 간의 독립성, 코드의 중복이 감소, 유지보수 편리

특징
1. 추상화(Abstraction) : 필요한 "속성", "행동"을 추출

  • 사물들의 공통점을 파악해 하나의 집합으로 만드는 것.
    ex 자동차 - (그랜져, 티코. 제네시스)

  1. 캡슐화(Encapsulation) : 객체의 기능 구현 방식을 감추는 것
  • 독립적인 객체는 다른 클래스나 모듈의 의존도가 최대한 낮아야 한다.
  • 캡슐화는 어떻게 높은 응집도와 낮은 결합도를 갖게 할까? => 정보 은닉(private)을 활용.

  1. 상속(Generalization) : 여러 개체들이 지닌 공통된 특성을 부각시켜 하나의 개념이나 법칙으로 성립
  • 자동차의 자식 클래스에 해당하는 벤츠, BMW, 아우디
  • 사람 클래스의 관점으로는 자동차의 종류가 어떤 것인지는 운전하는데 크게 중요하지 않다.
  • 자식 클래스 자체를 캡슐화하여 '사람 클래스'와 같은 외부에 은닉하는 것으로 확장

  1. 다형성(Polymorphism) : 서로 다른 객체가 동일한 명령에 다르게 동작하는 것
  • 부모 클래스의 메소드를 자식 클래스가 오버라이딩해서 자신의 역할에 맞게 활용하는 것이 다형성

설계원칙
1. SRP(Single Responsibility) - 단일 책임 원칙

  • 클래스는 단 한 개의 책임을 가져야 한다.
  • 클래스를 변경하는 이유는 단 한개여야 한다.

  1. OCP(Open-Closed) - 개방-폐쇄 원칙
  • 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.
  • 기능을 변경하거나 확장할 수 있으면서, 그 기능을 사용하는 코드는 수정하지 않는다.

  1. LSP(Liskov Substitution) - 리스코프 치환 원칙
  • 상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상적으로 동작해야 한다.
  • 상속 관계가 아닌 클래스들을 상속 관계로 설정하면, 이 원칙이 위배된다.

  1. ISP(Interface Segregation) - 인터페이스 분리 원칙
  • 인터페이스는 그 인터페이스를 사용하는 클라이언트를 기준으로 분리해야 한다.
  • 각 클라이언트가 필요로 하는 인터페이스들을 분리함으로써, 각 클라이언트가 사용하지 않는 인터페이스에 변경이 발생하더라도 영향을 받지 않도록 만들어야 한다.

  1. DIP(Dependency Inversion) - 의존 역전 원칙
  • 고수준 모듈은 저수준 모듈의 구현에 의존해서는 안된다.
  • 저수준 모듈이 고수준 모듈에서 정의한 추상 타입에 의존해야 한다.
  • 즉, 저수준 모듈이 변경돼도 고수준 모듈은 변경할 필요가 없는 것이다.

- 함수형 프로그래밍

선언형 프로그래밍 : How보다는 What을 설명하는 방식 (어떻게보단 무엇을)
알고리즘을 명시하지 않고 목표만 명시함

순수함수로 만들면, 에러를 추적하는 것이 쉬워진다. 인자에 문제가 있거나 함수 내부에 문제가 있거나 둘 중 하나일 수 밖에 없기 때문이다.

- 이상 Anomaly

종류
1. 삽입 이상 (Insertion Anomaly) : 불필요한 데이터를 추가해야지, 삽입할 수 있는 상황

  • 기본키가 {Student ID, Course ID} 인 경우
  • Course를 수강하지 않은 학생은 Course ID가 없는 현상이 발생함.
  • Course ID를 Null로 할 수밖에 없는데, 기본키는 Null이 될 수 없으므로, Table에 추가될 수 없음. => 삽입하기 위해서는 '미수강'과 같은 Course ID를 만들어야 함.

  1. 갱신 이상 (Update Anomaly) : 일부만 변경하여, 데이터가 불일치 하는 모순의 문제
  • 어떤 학생의 전공 (Department) 이 "컴퓨터" -> "음악"으로 바뀌는 경우.
  • 모든 Department를 "음악"으로 바꾸어야 함.
  • 그러나 일부를 깜빡하고 바꾸지 못하는 경우, 제대로 파악 못함.

  1. 삭제 이상 (Deletion Anomaly) : 튜플 삭제로 인해 꼭 필요한 데이터까지 함께 삭제되는 문제
  • 만약 어떤 학생이 수강을 철회하는 경우, {Student ID, Department, Course ID, Grade}의 정보 중
  • Student ID, Department 와 같은 학생에 대한 정보도 함께 삭제됨.


신문

- 지역화폐 예산지원 원점 재검토

정부는 올해 지역화폐 지원에 6000억원을 썼다.

지역화폐의 시작 자체가 제대로 설계하고 연구된 다음에 시작된 게 아닌 것 같다.
다시 2년 전의 지출 방식으로 돌아가면 되겠다.

- 유럽 열받을수록 주가 올라…美천연가스주 한달새 60% 급등 [월가월부]

국제유가가 100달러 아래로 떨어지는 데 반해 천연가스 가격은 급등하면서 천연가스 관련주가 주목받고 있다.
반대로 원유 가격은 하락세를 걷고 있다.
미국 최대 천연가스 생산업체인 EQT코퍼레이션은 최근 한 달간 주가가 약 22.73% 상승했다.

신기하네.. 근데 매번 지난 4월부터 뭐 이런 말 하면서 뭐 그 떄는 뉴스를 못 보긴 했다. 천연가스를 가지고 뭘 하는 기업들이 아닌 1차적인 생산 기업들이라 큰 영향을 받았다.

- 메가스터디 매물로 나왔다…MBK파트너스, 인수 추진

학령인구 감소세에도 에듀테크(교육+기술) 서비스 이용자가 증가세를 보이면서 온라인 교육업체를 인수하려는 PEF들의 시도가 이어지는 모습이다.

옹 신기하다. 메가스터디가 가지고 있는 사업 아이템이 저렇게 많은 것부터가 처음 보는 거고, 고등학교때만 인강을 접해서 인지 내가 가지고 있는 정보가 매우 제한되어 있었다. 국내뿐 아니라 국외의 회사들도 인수를 했다는 건 처음 보는 얘기였다. 근데 이게 더 성장할 거리가 있나?

- 카카오 CEO도 놀랐다…카톡사용량 40%가 '오픈채팅'

카카오톡 전체 대화량에서 지인이 아닌 관심사 기반 채팅 방식인 오픈채팅 비중은 최대 40%에 달한다. 이는 10% 수준이던 2018년과 비교해 괄목할 만한 변화다.

여러 친구들이 알고리즘 오픈챗이나 이런 커뮤니티에 속해있다는 것은 들은 적이 있다. 그런데 이렇게 많을 줄은 몰랐다. 과거에도 카페같은 것에서 활동한 적도 없고 커뮤도 하지 않았을 뿐더러 실제로 얼굴 보는 친구들과만 교류를 했기 때문에 거부감이 더 컸다.
음.. 좀 바뀌어야 할 필요가 있을 것 같다.



0개의 댓글