Developer Note/국비과정 수업내용 정리&저장

24년 10월 2일

DH_PARK 2024. 10. 8. 00:14

오전

프로세스란 ?

단순하게 말하자면 현재 실행중인 프로그램이다.

사용자가 작성한 프로그램이 메모리 공간을 할당받아 실행 중인 것.

이런 프로세스에는 데이터 , 메모리 등의 자원 그리고 스레드로 구성됨

스레드란?

프로세스 내에서 작업을 수행하는 주체를 말한다.

모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다.

스레드가 하나일 때는 싱글스레드, 2개 이상일 때는 멀티스레드 라고한다.

(스레드를 예로 들어보자면 가게에서 역할을 분담해서 일을 하는 사람 객체 하나 하나를 스레드라고 보면 될 것 같다.)

스레드의 생성과 실행

스레드를 생성하는 방법에는 두가지 방법이 있다.

  • Runnable 인터페이스를 구현하는 법
  • Thread 클래스를 상속받는 법

스레드의 메서드

Thread.sleep(10); : 0.01 초간 스레드를 멈춘다

※ Thread 클래스를 상속받으면 다른 클래스를 상속을 못받아서 일반적으로 Runnable 인터페이스를 구현하는 방법으로 스레드를 생성한다.

(Runnable 인터페이스는 run() 추상메소드 하나만을 가지고있는 함수형 인터페이스이다.)

리플렉터란?

실행중인 프로그램의 클래스, 인터페이스 , 메서드 ,필드 등의 정보를 동적으로 얻고 조작할 수 있는 기능을 제공하는 API

동적 바인딩 , 정적 바인딩 ?

※ 바인딩이란 ? 프로그램 구성요소의 실제 값 또는 프로퍼티를 결정짓는 행위 (간단히 값을 설정하는 행위를 바인딩이라고 생각하자.)

  • 동적 바인딩 :
    • 실행시간(런타임) 에 결정
    • 오버라이딩
    • 늦은 바인딩이라고도 부른다.
  • 정적 바인딩 :
    • 프로그램이 실행되도 변하지 않는다
    • 오버로딩
    • private , final , static 이 붙은 메서드

정적 바인딩의 대표 예시 : 오버로딩

Compile 과정에서 어떤 메서드를 호출할지 결정하기 때문에 코드 작성을 하는 단계에서 사용할 메서드를 구분하고 사용이 안될경우 컴파일 에러

를 발생시킨다.

동적 바인딩의 대표 예시 : 오버라이딩

예를 들어 부모에서 정의한 메서드를 자식에서 Overriding 했다 가정했을 때 그 메서드를 이용할 때 Runtime (실행시에) 어떤 메서드를 호출할지 결정한다.

리플렉션은 생성자 , 메서드, 필드 등 클래스에 대한 정보를 아주 자세히 알아낼 수 있다.

 

'Developer Note > 국비과정 수업내용 정리&저장' 카테고리의 다른 글

24년 10월 7일  (0) 2024.10.09
24년 10월 4일  (0) 2024.10.08
24년 10월 1일  (6) 2024.10.07
24년 09월 30일  (1) 2024.10.03
24년 09월 27일  (1) 2024.10.03