Information Security Study
240116 회고록-리눅스(프로세스, 잡), 자바(추상메서드, 템플릿 메서드) 본문
프로세스
프로그램 실행 순서
1) 커널이 디스크에 저장된 프로그램을 메모리에 올린다.
2) cpu가 메모리에 올라간 프로그램을 실행한다.
디스크 -> 메모리 -> cpu
프로세스
: 메모리 위에 올라가서 실행 중인 프로그램
실행중인 프로그램(프로세스)는 각각 pid를 할당받는다.
데몬 프로세스
: 백그라운드에서 돌아가는 프로세스
: 터미널과 무관하게 돌아가는 프로세스
잡
커널 입장에서 실행되고 있는 것 -> 프로세스
셸의 입장 -> 잡
$ echo hello world | date > date.txt
위와 같은 명령어는 파이프로 두 명령이 연결되어있어 아래의 2개의 프로세스를 실행하지만
- $ echo hello world
- $ date > date.txt
명령어에 대한 잡은 하나만 생성된다.
fg(foreground)
: 사용자의 입력을 받을 수 있는 상태
추상메서드
- abstract 키워드가 붙은 추상메서드는 반드시 오버라이딩 해야 한다.
- 일반 클래스에는 추상메서드를 선언할 수 없다.
- 추상클래스 내부에서는 추상메서드가 하나 이상으로 존재한다면 일반 메서드 선언도 가능하다.
* 객체지향적으로 코드를 작성해야 하는 이유
- 객체 생성 시 Store와 ConvenienvtStore로 타입만 변경만 해주면 아래와 같이 작성된 클라이언트 코드는 변경하지 않아도 된다.
- 객체 지향적으로 작성하지 않으면 객체가 변경될 때마다 클라이언트 코드도 수정해야 한다.
- 오버라이딩 된 메서드와 추상메서드는 메서드명이 모두 같지만, abstract 키워드가 없다면 메서드명을 달리 할 수 있기 때문에 객체가 변경될 때마다 클라이언트 코드를 수정하게 된다.
템플릿 메서드
- 호출 구문은 구현메서드로 정의, 구현메서드가 호출하는 추상메서드는 상속 후 특징을 정하도록 작성한다.
- 호출 순서가 고정되고 사용자가 특징만 정의하도록 하는 디자인 패턴이다.
- 구현메서드에는 세부사항이 달라질 수 있는 내용을 작성한다.
템플릿 메서드의 장점
- 유지, 보수성이 좋다.
- 설계한 사람의 의도대로 구현할 수 있다.
'네트워크 캠퍼스 > 회고록' 카테고리의 다른 글
240121 3주차 주간회고록 (0) | 2024.01.19 |
---|---|
240119 회고록-리눅스(if [ 명령어 ], &&, ||), 자바(String과 StringBuffer / StringBuilder) (0) | 2024.01.19 |
240118 회고록-리눅스(source와 .의 차이, profile, if), 자바(throw, 사용자 정의 예외) (0) | 2024.01.18 |
240117 회고록-리눅스(잡/프로세스 종료, 셔뱅), 운영체제, 자바(예외처리, try~catch, throws) (0) | 2024.01.17 |
240115 회고록-리눅스(grep), 자바(싱글톤 패턴, final, abstract) (0) | 2024.01.15 |