[디자인 패턴] Bridge, Adapter
·
cs 공부 기록용
디자인 패턴이 너무 어려워서 정리하기 위한 포스팅 / 개인 기록용Bridge Pattern브릿지 패턴은 복잡하거나, 큰 클래스를 좀 더 추상화하여 분리하는 패턴이다. 좀 더 추상화 한다는 게 어떤 의미일까? 도형과 색깔이 있다고 하자. 경우의 수는 빨간색 원, 빨간색 직사각형, 파란색 원, 파란색 직사각형이 된다.이후 오각형이 추가되었고 빨간색 오각형, 파란색 오각형이 필요하여 2종류가 추가 되었다.이게 클래스라고 가정한다면 도형이 추가될 때 마다 자연스럽게 엄청 많은 클래스가 생길 것이다. 근데 잘 생각 해보면 빨간 사각형, 파란 사각형처럼 도형 자체에서 상속을 통해 색을 표현하기 보다는도형이 색이라는 것을 소유하는 게 더 효율적일 수 있다. 즉 Shape이라는 클래스가 Color라는 별도의 계층을 가..
[디자인 패턴] Factory Method, Abstract Factory
·
cs 공부 기록용
디자인 패턴이 너무 어려워서 정리하기 위한 포스팅 / 개인 기록용 팩토리 메서드 패턴, 추상 팩토리 패턴은 객체를 생성하는 패턴으로 생성 패턴으로 분류 된다.말 그대로 객체를 생성하는 이론이다.Factory Method Patternpublic class Main { public static void main(String[] args) { Foo foo = new Foo("FOO"); }} 일반적으로 객체를 생성할 때에는 Java의 경우 new 연산자를 통해 생성자를 호출하고 코틀린의 경우 생성자 함수를 호출한다. 팩토리 메서드 패턴은 클라이언트가 객체를 생성할 때 직접 생성자를 통해 객체를 생성하는 것이 아니라 객체 생성 과정을 추상화 하고 있는 객체에게 위임하여 생성한다. 먼저..
[디자인 패턴] Proxy, Decorator
·
cs 공부 기록용
디자인 패턴이 너무 어려워서 정리하기 위한 포스팅 / 개인 기록용 프록시 패턴, 데코레이터 패턴은 객체의 어떤 행동에 추가적인 행동을 추가하고 싶을 때 사용한다.그런데 추가적인 행동을 추가하는데 객체를 수정하지 않는다는 것이 특징이다.Proxy Pattern프록시 패턴은 Proxy 개념을 사용하는 패턴이다.Spring을 사용하는 개발자라면 종종 들을 수 있다. 특히 @Transaction은 AOP로 동작하는데 이 AOP는 Proxy로 동작하기 때문이다. 그래서 프록시가 뭐냐면 대리인, 중재다이다. A가 B에게 어떠한 작업을 요청 해야한다고 가정하자. 여기서 프록시 개념이 사용된다면A는 B에게 직접 요청을 하지 않고 중간 대리인 C에게 요청을 한다. C는 A의 요청을 받으면 B에게 요청을 전달한다.그런데..
[디자인 패턴] Strategy, Template Method
·
cs 공부 기록용
디자인 패턴이 너무 어려워서 정리하기 위한 포스팅 / 개인 기록용 Strategy, Template Method 패턴은 디자인 패턴 중 행동 패턴에 속한다.행동 패턴이라 함은 객체의 행동을 캡슐화하고 상황에 따라 동적으로 동작할 수 있도록 만드는 패턴이다. Strategy, Template Method는 비슷한 느낌이다. 어떠한 함수, 행위들을 보니 전체적인 흐름, 진행 알고리즘은 동일한데 세부적인 구현사항이 다른 경우 사용한다.큰 틀(흐름, 진행 알고리즘)을 추상화하고 구현, 혹은 상속을 통해 하위 클래스가 직접 상황에 따른 세부적인 구현을 한다.그리고 기능을 사용하는 클라이언트에서는 추상화 타입을 사용하여 실제 기능을 실행한다.근데 디자인 패턴은 글로 봐도 절대 쉽게 이해가 되지 않는다. 아래에서 자..
운영체제 기록용
·
cs 공부 기록용
운영체제 공부를 하면서 면접에 나올 것 같은 내용을 질문으로 만들어 답변해보는 공간 (계속 업데이트) Q. 운영체제는 무엇인가요?더보기A. 운영체제는 하드웨어를 제어하여 여러 프로세스들에게 자원을 할당하고 실행될 수 있도록 하는 프로그램입니다.추가적으로 파일 시스템을 관리하는 기능도 있습니다.Q. 커널이 수행하는 역할은 무엇이 있나요?더보기A. 프로세스 실행에 필요한 자원을 생성/제거 하며 스케줄러를 통해 여러 프로세스들이 한정된 자원을 이용할 수 있도록 합니다.또한 프로세스가 하드웨어를 필요로 하는 (파일입출력, 네트워크 통신) 작업을 할 수 있도록 인터페이스를 제공합니다.Q. 유저 모드와 커널 모드에 대해 설명해주세요.더보기A. 유저 모드와 커널 모드는 프로세스가 작업을 처리하는 모드 2가지입니다...