Hooking ? Hook?

문상우·2024년 9월 11일

IT 용어

목록 보기
2/2
post-thumbnail

Hooking?

프로그램 실행 흐름 중 특정 지점에 미리 정의된 작업을 삽입 또는 실행할 수 있게 만드는 개념입니다. 이는 코드나 시스템의 실행 과정에서 특정 이벤트가 발생했을 때, 추가적인 작업이 진행될 수 있도록 트리거를 설정하는 것을 의미합니다. 이를 통해 기본 흐름을 수정하지 않고 동작을 확장하거나 특정 이미지가 발생할 때 자동으로 동작을 제어하는 것이 가능합니다.

이를 이용해 시스템 호출, 함수 호출 중간에 특정 작업을 추가할 수 있고, 보안 점검을 위한 모니터링처럼 실행 중인 프로그램을 수정하지 않고도 행동을 변경할 수 있습니다.

Hook?

Hooking의 기본 단위입니다. 프로그램 실행 흐름 중에서 특정 시점에 실행되는 함수나 명령어를 말합니다. 시스템이 미리 정의된 이벤트를 인식한 경우, 이 지점에서 특정 코드를 실행할 수 있도록 하는 주체는 Hook입니다. 운영체제, 애플리케이션, 클라우드 배포 과정에도 사용되며 다양한 시점에 자동으로 추가 작업을 할 수 있게 도와줍니다.

Code Deploy에서의 사용 예시

클라우드 서비스인 AWS CodeDeploy에서는 AppSpec 파일을 사용해서 배포 프로세스를 제어하는데, 이 과정에서 hooks은 애플리케이션 배포 중 특정 단계에 실행되는 스크립트를 정의하는데 사용됩니다.

이 스크립트를 이용하여 배포 파이프라인에서 특정 지점에 추가 작업을 삽입해 배포 전에 시스템을 준비하거나, 배포 후에 서비스를 시작하는 등 자동화 작업을 수행할 수 있습니다.

AppSpec 파일에서의 Hook 예시

hooks:
  AfterInstall:
    - location: scripts/install_dependencies.sh
      timeout: 300
      runas: root

위 작업은 배포를 하며 실행되는 스크립트로서 필요한 의존성 패키지 설치나 기타 설정 작업을 수행합니다.

이렇게 Hook을 통해 자동으로 작업함으로써 개발자가 수동으로 의존성 패키지를 설치해줘야 하는 작업을 생략할 수 있습니다.

Hook 사용 이유

  • Hook은 애플리케이션 배포 과정에서 유연성과 자동화를 제공합니다.
  • 각 단계에서 스크립트 실행을 통해 배포 준비, 설치 후 작업, 서비스 시작 등 매우 중요한 작업들을 자동으로 처리할 수 있습니다.
  • 사람이 수동으로 처리해야 하는 복잡한 단계를 생략할 수 있습니다.

AWS CodeDeploy처럼 배포 자동화 서비스에서 Hook은 필수적인 개념으로 사용되며 이런 작업을 통해 여러 작업을 쉽게 제어하고 자동화할 수 있게 됩니다.

이처럼 Hooking과 Hook은 프로그램의 실행 흐름 중에 특정 작업을 삽입하여 프로그램의 동작을 확장하거나 제어할 수 있게 해 주는 중요한 개념입니다.



[참고]

위키백과 - 후킹

후킹 (Hooking) 이란

profile
성실하게 도전하고 기록하며 성장하자

0개의 댓글