728x90
유튜브에서 우연히 아래 영상을 보고 정말 쉽고 간단하면서도 중요한 개념이라는 생각이 들어서 간략하게 영상의 내용을 정리해봤습니다!
호출벨을 인터페이스의 예시로 들며 누구나 이해하기 쉽고 재미있게 설명해주시니 가볍게 시청하시면 좋을 것 같습니다 😊
인터페이스는 약속이다
- 인터페이스는 상호 작용을 위해서 미리 정의된 약속이다
- ex) A 함수를 호출하면 B가 호출된다, 리모콘, 변기 레버, 호출벨 등..
- API 또한 인터페이스의 일종이다
- API : Application Programming Interface
- 기능을 사용하기 위한 코드나 문서 같은 세트
- 프론트와 백엔드 역시 API 라는 약속을 통해 기능을 연결한다
인터페이스 = 호출벨
- 저기요~! → 구버전 인터페이스
- 호출벨이 등장하기 전에는 직원을 직접 부름으로써 호출을 했다
- 그러나 직접 호출하는 것은 바쁜 상황에서는 제대로 듣지 못하는 경우가 존재한다
- 이를 해결하기 위해 등장한 것이 호출벨이다
- 호출벨 → 신버전 인터페이스
- 호출벨을 누르면 누가 불렀는지 바로 확인 후 정확한 응답이 가능해졌다
- 호출벨 인터페이스에서 입력은 손님의 호출, 출력은 직원의 응답이 된다!
호출벨 인터페이스의 고려사항
1) 직관적인 입출력
- 만약 호출벨의 동작이 연속 두번을 누른다거나 특정 횟수를 맞춰야만 이뤄진다면, 대부분의 손님이 사용이 어려워서 꺼릴 것이다
- 이는 우리의 함수에도 적용된다
- 함수가 특정 순서로만 동작하거나 개발자만 아는 특정 값을 파라미터로 넘겨야 한다면 좋지 않은 인터페이스이다
- 따라서 인터페이스든 함수든 직관적이고 명확하게 설계하는 것이 중요하다
2) 성능 요구사항
- 호출벨을 눌렀는데 10초 동안 응답이 없다면 손님은 호출벨이 아닌 다른 방식으로 요청할 것이다
- 만약 손님이 5초 정도는 기다릴 수 있다면, 호출벨에는 5초 안에는 어떤 응답이든 리턴되어야 한다는 정의가 붙어야 한다
- 예를 들면, 5초 안에 직원이 응답하거나 ‘잠시만요’라고 응답한 후 5초 이후에 가서 요청을 처리하는 것이다
- 따라서 인터페이스를 호출하면 언제까지 어떤 결과가 오든 에러가 리턴이 되든간에 문서나 주석에 명시가 되어 사용자가 알게 해야 한다
3) 하위호환지원
- 어떤 음식점에서 호출벨을 누르면 응답을 하는데, 직접 직원을 호출했을 때는 응답하지 않는다면 손님은 다시 그 가게를 방문하기를 꺼릴 것이다
- 이처럼 신버전 인터페이스를 지원한다면, 구버전 인터페이스 또한 지원해야 한다
- 마이크로소프트의 경우 하위호환지원을 잘 지켜서 구버전의 OS에서도 모든 기능이 잘 동작한다
- 물론 하위호환을 지원하지 않는 경우도 많고, 이를 지원하려다보면 오히려 신규 기능을 지원하기가 힘들기도 한다
- 따라서 하위호환을 지원하려면 많은 부분에 대한 고려가 필요하다
4) 쉬운 접근성과 대중성
- 호출벨의 의미를 모르거나 호출벨을 숨겨놓았다면 의미가 없을 것이다
- 따라서 인터페이스는 누구나 알 수 있도록 만들어야 하고, 노력해야 한다
굉장히 익숙하면서도 크게 와닿지 않는 인터페이스와 한발짝 더 친해진 느낌이 드는 영상이었습니다!
그럼 오늘도 맛있는 코딩을 위해 야미는 공부하러 가궜습니다🌱
728x90
'야미스터디 > Backend' 카테고리의 다른 글
[Youtube] kafka 조금 아는 척하기 2편 - 프로듀서 (0) | 2024.09.04 |
---|---|
[Youtube] kafka 조금 아는 척 하기 1편 - 개발자용 (0) | 2024.08.21 |
개발자로 성장하는 꿀팁 5가지🍯 (3) | 2022.11.07 |
[Etc] Docker 📌 (0) | 2022.10.11 |
[Etc] DTO 📌 (0) | 2022.09.28 |
댓글