Information Security Study

240116 회고록-리눅스(프로세스, 잡), 자바(추상메서드, 템플릿 메서드) 본문

네트워크 캠퍼스/회고록

240116 회고록-리눅스(프로세스, 잡), 자바(추상메서드, 템플릿 메서드)

gayeon_ 2024. 1. 16. 16:34

프로세스

프로그램 실행 순서

1) 커널이 디스크에 저장된 프로그램을 메모리에 올린다.

2) cpu가 메모리에 올라간 프로그램을 실행한다.

 

디스크 -> 메모리 -> cpu

 

프로세스

: 메모리 위에 올라가서 실행 중인 프로그램

 

실행중인 프로그램(프로세스)는 각각 pid를 할당받는다.

 

데몬 프로세스

: 백그라운드에서 돌아가는 프로세스

: 터미널과 무관하게 돌아가는 프로세스


커널 입장에서 실행되고 있는 것 -> 프로세스

셸의 입장 -> 잡

 

$ echo hello world | date > date.txt

위와 같은 명령어는 파이프로 두 명령이 연결되어있어 아래의 2개의 프로세스를 실행하지만

  1. $ echo hello world
  2. $ date > date.txt

명령어에 대한 잡은 하나만 생성된다.

 

fg(foreground)

: 사용자의 입력을 받을 수 있는 상태

 


추상메서드

  • abstract 키워드가 붙은 추상메서드는 반드시 오버라이딩 해야 한다.
  • 일반 클래스에는 추상메서드를 선언할 수 없다.
  • 추상클래스 내부에서는 추상메서드가 하나 이상으로 존재한다면 일반 메서드 선언도 가능하다.

 

* 객체지향적으로 코드를 작성해야 하는 이유

  • 객체 생성 시 Store와 ConvenienvtStore로 타입만 변경만 해주면 아래와 같이 작성된 클라이언트 코드는 변경하지 않아도 된다.
  • 객체 지향적으로 작성하지 않으면 객체가 변경될 때마다 클라이언트 코드도 수정해야 한다.
  • 오버라이딩 된 메서드와 추상메서드는 메서드명이 모두 같지만, abstract 키워드가 없다면 메서드명을 달리 할 수 있기 때문에 객체가 변경될 때마다 클라이언트 코드를 수정하게 된다.

 

템플릿 메서드

  • 호출 구문은 구현메서드로 정의, 구현메서드가 호출하는 추상메서드는 상속 후 특징을 정하도록 작성한다.
  • 호출 순서가 고정되고 사용자가 특징만 정의하도록 하는 디자인 패턴이다.
  • 구현메서드에는 세부사항이 달라질 수 있는 내용을 작성한다.

 

템플릿 메서드의 장점

  • 유지, 보수성이 좋다.
  • 설계한 사람의 의도대로 구현할 수 있다.