[CS 지식] API 관련 질문

Kim Hyen Su·2024년 11월 27일

면접질문

목록 보기
20/27
post-thumbnail

메소드에서 리스트 타입의 파라미터를 받을 때, ArrayList - List - Collection - Iterable 처럼 구체적인 타입뿐만 아니라 상위 타입도 받을 수 있는데, 컬렉션을 받는 어떤 API를 구현할 때, 어떤 타입으로 받는 것을 선호하는지 설명해주고, 왜 그런 선택을 했는지 설명.

추상 타입의 API 디자인을 선호.
SOLID 원칙 중 의존성 역전 원칙(DIP)과 리스코프 치환 원칙(LSP)을 따르는 설계로써, 구체 클래스가 아닌 추상화에 의존함을 통해 결합도를 낮추고 유연성을 높일 수 있다.

그리고, 실제 API를 사용하는 클라이언트는 구체적인 구현체의 세부사항까지 필요하지 않다. 따라서 단순하게 집합인지 단일값인지 객체인지 여부만 알려주면 된다.

다만, 구체적인 구현체를 필요로 하는 요구사항의 경우에는 이에 맞게 구현되어야 한다.

API란?

서로 다른 프로그램들이 상호작용하기 위한 규약이다. 구체적으로 두가지 관점에서 설명할 수 있다. 통신 관점에서 클라이언트와 서버간에 어떠한 방식으로 데이터를 주고 받을지에 대한 설계서를 의미한다. 소프트웨어 관점에서는 특정 기능을 사용하기 위한 인터페이스를 의미한다.

profile
백엔드 서버 엔지니어

0개의 댓글