Fan in
어떤 모듈을 제어 (호출) 하는 모듈의 수
하나의 모듈이 제어받는 상위 모듈의 수
Fan out
어떤 모듈에 의해 제어 (호출) 되는 모듈의 수
하나의 모듈이 제어하는 하위 모듈의 수
시스템 복잡도 최적화를 위해서는 fan in 은 높게, fan out 은 낮게 설계해야 한다.
예시

1 min read
소프트웨어 디자인 원칙으로 coupling 은 줄이고 cohesion 을 높이는데 도움을 준다.
상위 클래스의 함수를 하위 클래스에서 동일한 이름으로 재정의하는 것 함수의 return type 과 parameter type, 개수는 동일해야 합니다.
컴파일러를 거치지 않고 바로 실행되는 프로그래밍 언어를 의미한다. Interpreted language 는 플랫폼에 구애받지 않는다는 것이 장점이다.
스케일 업 기존의 서버를 보다 높은 사양으로 업그레이드하는 것 하드웨어적인 예를 들면, 성능이나 용량 증강을 목적으로 하나의 서버에 디스크를 추가하거나 CPU 나 메모리를 업그레이드시키는 것을 말한다.
물리 하드웨어가 하는 일을 소프트웨어로 흉내 내어, 그 위에서 프로그램이 진짜 기계 위에서처럼 돌게 만드는 계층이다. “가상”이라는 말이 붙는 이유는 프로그램이 보는 명령어 집합·메모리·레지스터가 실제 CPU 의 것이 아니라 VM 이 정의한 것이기 때문이다.
I/O 멀티플렉싱 (multiplexing) 이란 하나의 전송로로 여러 종류의 데이터를 송수신하는 방식을 말한다. select 는 소켓 프로그래밍에서 I/O 멀티플렉싱을 가능하게 하는 모듈이다.
바인딩 프로그램의 어떤 기본 단위가 가질 수 있는 구성요소의 구체적인 값, 성격을 확정하는 것 예시 C 언어 int num = 123 의 경우, num 은 변수의 이름, int 는 자료형, 123 는 값을 각각 할당하는 과정을 바인딩이라고 함 .
모듈 (Module) 은 하나의 파일 .py 을 가리킴 파이썬 모듈 .py 파일은 import 하여 사용할 수 있을 뿐만 아니라, 해당 모듈 파일 안에 있는 스크립트 전체를 바로 실행할 수도 있다.
먼저 들어온 것을 먼저 내보내는 처리 순서다. 줄을 선 순서대로 처리한다고 보면 되고, 이 규칙을 구현한 자료구조가 큐(queue) 다. 반대는 나중에 들어온 것을 먼저 꺼내는 LIFO 이고, stack 이 그쪽이다.
함수의 이름은 같으나 함수의 매개변수 숫자, 타입등을 달리해서 다르게 사용하는것을 의미 .