SOLID 원칙 중 L에 해당하는 리스코프 치환 원칙(Liskov Substitution Principle, LSP)은 "서브타입은 언제나 기본 타입으로 교체될 수 있어야 한다"는 원칙입니다. 다르게 말하면, 클래스 A의 객체를 클래스 B의 객체로 대체하였을 때, 프로그램이 제대로 작동해야 한다면 클래스 B는 클래스 A의 서브타입이라고 할 수 있습니다. 이 원칙을 준수하면 다형성을 이용한 객체지향 프로그래밍이 잘 동작하게 됩니다. 예제 문제 상황: 동물을 나타내는 Animal 클래스와 그 하위 클래스인 Bird 클래스가 있다고 합시다. Bird는 Animal을 상속받고 fly 메서드를 추가로 가지고 있습니다. 여기서 Penguin이라는 특별한 종류의 Bird를 표현하고 싶다면 어떻게 해야 할까요? cla..
좋은 질문입니다. 세마포어는 동시에 여러 스레드가 자원에 접근할 수 있게 허용하는 동기화 도구이기는 하지만, 그 자체로는 데이터의 일관성을 보장해주지 않습니다. 세마포어는 단순히 동시 접근 가능한 스레드의 수를 제한합니다. 세마포어가 동시에 여러 스레드에 자원 접근을 허용하는 경우는 아래와 같은 상황에서 유용합니다: 제한된 자원을 가진 상황: 예를 들어, 데이터베이스 연결 풀에서 동시에 사용할 수 있는 연결 수를 제한하고 싶을 때 세마포어를 사용할 수 있습니다. 연결 풀의 크기가 10이면, 세마포어의 허용 수도 10으로 설정되며, 10개를 초과하는 스레드는 연결이 반환될 때까지 기다려야 합니다. Rate Limiting: 동시에 너무 많은 요청이 서비스에 도달하지 않도록 요청의 수를 제한하고 싶을 때 사..
- Total
- Today
- Yesterday