페르미 추정

윤뿔소·2024년 1월 5일
0

CS 지식 / 다양한 팁

목록 보기
6/21
post-thumbnail

IT에서 문제를 풀어가는데 좋은 논리 방식.

페르미 추정

정의, 의의, 사용법, 논리법 및 개발자 관점의 예시에 대해 들어보겠다.

정의

페르미 추정(Fermi Estimation)은 복잡한 문제를 간단한 근사치로 해결하기 위해 사용되는 방법론이다. 물리학자 엔리코 페르미의 이름을 따서 명명된 이 방법은 직관적 추론과 간단한 계산을 통해 큰 수치를 신속하게 추정하는 데 중점을 둔다.
페르미 추정은 문제를 단순화하고 다양한 근사치를 결합하여 최종 추정치를 도출하는 과정.

의의

페르미 추정의 가장 큰 의의는 빠르고 효율적으로 문제를 해결할 수 있다는 점이다. 모든 정보를 완벽하게 알 수 없는 상황에서 중요한 결정을 내려야 할 때 유용하다.
또한, 이 방법은 장애물들을 치워주니 창의적 사고와 문제 해결 능력을 향상시키는 데 도움이 된다.

우리 같은 개발자들은 복잡한 시스템의 성능 예측, 리소스 할당, 시간 추정 등에 페르미 추정을 활용할 수 있다.

사용법

  1. 문제를 간단한 하위 문제로 분해: 문제를 더 작고 관리하기 쉬운 부분으로 나눔.
  2. 각 하위 문제에 대해 합리적인 추정치 도출: 각 부분에 대해 가능한 범위 내에서 추정치를 계산.
  3. 추정치 결합: 각 부분의 추정치를 결합하여 전체 문제에 대한 근사치를 도출.
  4. 결과 검증 및 조정: 결과를 검토하고 필요한 경우 조정.

논리법

페르미 추정의 논리법은 합리적 가정을 기반으로 한다. 이는 문제를 해결하기 위한 일련의 가정과 논리를 설정하고, 각 가정에 대한 근사치를 결합해 최종 결과를 얻는 과정.

  • 가정 설정: 문제를 해결하기 위해 필요한 가정을 설정.
  • 간단한 계산: 각 가정에 대해 간단한 계산을 수행.
  • 추정치 결합: 개별 계산 결과를 결합하여 최종 추정치를 도출.
  • 검증 및 조정: 최종 결과가 합리적인지 검증하고 필요한 경우 조정.

개발자 관점의 예시

예시 1: 대규모 웹 애플리케이션의 트래픽 추정

개발자가 대규모 웹 애플리케이션의 트래픽을 추정하려고 한다고 가정해보겠다. 이 경우 페르미 추정을 사용하여 대략적인 트래픽 양을 추정할 수 있다.

  1. 문제 분해:

    • 하루 평균 방문자 수 추정
    • 각 방문자가 방문하는 페이지 수 추정
    • 페이지 로드당 평균 요청 수 추정
  2. 각 하위 문제에 대한 추정치 도출:

    • 하루 평균 방문자 수: 10,000명
    • 각 방문자가 방문하는 페이지 수: 5페이지
    • 페이지 로드당 평균 요청 수: 3 요청
  3. 추정치 결합:

    • 하루 총 요청 수 = 10,000명 5페이지 3 요청 = 150,000 요청
  4. 결과 검증 및 조정:

    • 트래픽 패턴이나 피크 타임 등을 고려하여 최종 추정치를 조정.

예시 2: 코드 리뷰 시간 추정

개발자가 팀의 코드 리뷰에 소요되는 시간을 추정하려고 할 때, 페르미 추정을 사용할 수 있다.

  1. 문제 분해:

    • 한 명의 개발자가 하루에 리뷰할 수 있는 코드 양
    • 팀의 총 개발자 수
    • 코드 리뷰 빈도
  2. 각 하위 문제에 대한 추정치 도출:

    • 한 명의 개발자가 하루에 리뷰할 수 있는 코드 양: 200줄
    • 팀의 총 개발자 수: 5명
    • 코드 리뷰 빈도: 주 3회
  3. 추정치 결합:

    • 하루 총 코드 리뷰 양 = 200줄 * 5명 = 1,000줄
    • 주간 총 코드 리뷰 양 = 1,000줄 * 3회 = 3,000줄
  4. 결과 검증 및 조정:

    • 실제 코드 리뷰 시간을 측정하여 추정치가 적절한지 검증하고 조정.

결론

페르미 추정은 복잡한 문제를 신속하게 해결하는 데 유용한 도구이다. 개발자는 이를 통해 시스템 성능 예측, 리소스 할당, 시간 추정 등 다양한 상황에서 합리적인 추정치를 도출할 수 있다.

하지만, 당연하게도 정확도 부족, 가정의 불확실성, 복잡한 문제에 대한 한계, 주관성, 검증의 어려움과 같은 단점이 있다.

중요한 것은 이러한 단점을 극복하기 위해 다양한 가정의 타당성을 검토하고, 다른 추정 방법과 결합함과 동시에, 주기적으로 검증과 조정을 수행하는 것.
또한, 문제를 간단한 하위 문제로 분해하고, 각 부분에 대해 합리적인 가정을 설정한 후, 이를 결합하여 최종 결과를 도출하는 과정을 통해 보다 정확하고 신뢰성 있는 추정치를 얻을 수 있다.
이 과정은 단순한 계산 이상의 복잡한 문제를 해결하는 데 효과적이고, 페르미 추정의 장점을 최대한 활용하는 방법이다.

profile
코뿔소처럼 저돌적으로

0개의 댓글