취업,면접 대비/cs 전공 공부 18

<cs 지식> AccessControl, private vs public, private vs file private

음 이걸 한두번 본 개념도 아니고, 자주 쓰는 개념인데 막상 둘을 정확히 구분하려니까 잘 안된다. private는 그냥 느낌에 외부에서 쓰지 말아라... public은 외부에서 써도 된다... 정도로 느낌이 와닿아서, 그 이상으로 정확한 개념을 알려고 써본다. [baked-corn.tistory.com/80], [zeddios.tistory.com/383] 일단 이런 글도 있다. 위 블로그에서 본 이게 제일 와닿고 간단한 요약 정리 같다. 이건 애플 공식 문서 Open access and public access enable entities to be used within any source file from their defining module, and also in a source file from..

<객체 지향> 객체 지향 프로그래밍 원칙

[https://namu.wiki/w/%EA%B0%9D%EC%B2%B4%20%EC%A7%80%ED%96%A5%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D/%EC%9B%90%EC%B9%99#s-2.1] 디자인 패턴을 찾다 보니, 객체 지향 프로그래밍 원칙을 좀 알아야 될거 같아서 찾아 보게 되었습니다. SRP : single responsibility principle - 단일 책임의 원칙 객체는 오직 하나의 책임을 가져야 한다. (객체는 오직 하나의 변경의 이유만을 가져야 한다.) 사칙연산 함수를 가지고 있는 계산 클래스가 있다고 치자. 이 상태의 계산 클래스는 오직 사칙연산 기능만을 책임진다. 만일 프로그램이 대대적으로 공사를 들어가게 되더라도 계산 클래스가 수..

<용어> wrapper란?

wrapper의 사전적 의미는 '(특히 식품) 포장지'라는 뜻입니다. 여기서 래퍼 클래스는 기본 자료형(primitive data types)에 대한 클래스 표현을 래퍼 클래스(wrapper classes)라고 합니다. 기본 자료형에 대해서 객체로서 인식되도록 '포장'을 했다는 뜻입니다. 객체라는 상자에 기본 자료형을 넣은 상태로 생각하면 됩니다. 필요시 컴파일러가 자동으로 수행하기 때문에 이를 오토박싱(autoboxing)이라고 합니다. 아래 그림으로 보여지는 숫자 자료형의 모든 래퍼 클래스는 모두 Number라는 추상 클래스를 상속 받아서 구현한 것입니다. Byte 클래스는 byte 자료형, Short는 short 자료형, Integer는 int 자료형, Long은 long 자료형, Float는 fl..

<객체지향 & 디자인 패턴> 객체지향과 디자인 패턴 1

일단 디자인 패턴이랑 객체 지향이 무슨 관련인지 먼저 알아보자. 객체 지향의 다형성 [https://www.youtube.com/watch?v=Pk7K6JzK-TU] 이 유트브를 정리한 것입니다. 동일한 종에서 다양한 형질이 나옴. ~는 같은데 ~는 다르다 1. 메소드 명은 같은데, 동작이 다르다. 오버라이딩 : 하위 클래스에서 재정의 오버 로딩 : 매개변수의 유형과 갯수가 다름. 2. 서브 타입 다형성 같은 자료형에 다양한 객체를 주입...? 여기서 이제 중요한 포인트는 객체지향은 1,2번 두가지를 조합해서 사용할 수 있다. 오버라이드와 서브타입 다형성을 조합. 그럼으로서 하나의 자료형이 다양한 동작을 할 수 있다. 상속을 통해 가능. 이제 실전 예제다 이제 여기서 요구 사항이 생긴다. 1. 회원 정보..

<운영체제> Thread Preemption

Involuntarily suspending one thread to schedule another is called preemption. Scheduling methods that utilize preemption instead of run to completion are said to be preemptive, and operating systems that employ these methods are called preemptive multitasking operating systems. 스케줄러에 의해 한 스레드가 비자발적으로 중비되는 것을 선점이라한다. 작업을 완료시키기 전에 선점을 활용하는 스케줄러를 preemptive라 한다, 그리고 이런 방법을 채용한 운영체제를 preemptive mult..

<운영체제> Concurrency VS Parallelism

병행성(Concurrency) 동시에 실행되는 것처럼 보이는 것. Logical Level에 속한다. Single Core 물리적으로 병렬이 아닌 순차적으로 동작할 수 있다. 실제로는 Time-sharing으로 CPU를 나눠 사용함으로써 사용자가 Concurrency를 느낄 수 있도록 한다. Multi Core 물리적으로 병렬로 동작할 수 있다. Case Mutex, Deadlock 병렬성(Parallelism) 실제로 동시에 작업이 처리가 되는 것. Physical(Machine) Level에 속한다. 오직 Multi Core에서만 가능하다. Case OpenMP, MPI, CUDA 음 한개 코어로 여러 작업을 수행하는게 하는게 병행성이고, 여러개 코어로 처리하는게 병렬성이구나. 나는 병행성이 뭔말인지..

<운영체제> 시분할 시스템이란

시분할 시스템(時分割 System, 영어: time-sharing)은 컴퓨터를 대화식으로 사용하려는 시도에서 탄생하였다. 시분할 운영 체제는 CPU 스케줄링과 다중 프로그래밍을 이용해서 각 사용자들에게 컴퓨터 자원을 시간적으로 분할하여 사용할 수 있게 해 준다. 음 여기서 이제 시분할 시스템과 라운드로빈 그리고 선점형 스케줄링과의 관계를 보자. 라운드 로빈 스케줄링(Round Robin Scheduling, RR)은 시분할 시스템을 위해 설계된 선점형 스케줄링의 하나로서, 프로세스들 사이에 우선순위를 두지 않고, 순서대로 시간단위(Time Quantum)로 CPU를 할당하는 방식의 CPU 스케줄링 알고리즘이다. [https://coding-factory.tistory.com/301] 운영체제에는 여러가지..