본문 바로가기
야미스터디/Backend

개발자가 알아야 할 인터페이스 개념💡

by 의정부핵꿀밤 2023. 6. 27.
728x90

유튜브에서 우연히 아래 영상을 보고 정말 쉽고 간단하면서도 중요한 개념이라는 생각이 들어서 간략하게 영상의 내용을 정리해봤습니다!

호출벨을 인터페이스의 예시로 들며 누구나 이해하기 쉽고 재미있게 설명해주시니 가볍게 시청하시면 좋을 것 같습니다 😊

https://youtu.be/a6F7rIKaxzo


인터페이스는 약속이다

  • 인터페이스는 상호 작용을 위해서 미리 정의된 약속이다
    • ex) A 함수를 호출하면 B가 호출된다, 리모콘, 변기 레버, 호출벨 등..
  • API 또한 인터페이스의 일종이다
    • API : Application Programming Interface
    • 기능을 사용하기 위한 코드나 문서 같은 세트
    • 프론트와 백엔드 역시 API 라는 약속을 통해 기능을 연결한다

 

인터페이스 = 호출벨

  • 저기요~! → 구버전 인터페이스
    • 호출벨이 등장하기 전에는 직원을 직접 부름으로써 호출을 했다
    • 그러나 직접 호출하는 것은 바쁜 상황에서는 제대로 듣지 못하는 경우가 존재한다
    • 이를 해결하기 위해 등장한 것이 호출벨이다
  • 호출벨 → 신버전 인터페이스
    • 호출벨을 누르면 누가 불렀는지 바로 확인 후 정확한 응답이 가능해졌다
    • 호출벨 인터페이스에서 입력은 손님의 호출, 출력은 직원의 응답이 된다!

 

호출벨 인터페이스의 고려사항

1) 직관적인 입출력

  • 만약 호출벨의 동작이 연속 두번을 누른다거나 특정 횟수를 맞춰야만 이뤄진다면, 대부분의 손님이 사용이 어려워서 꺼릴 것이다
  • 이는 우리의 함수에도 적용된다
  • 함수가 특정 순서로만 동작하거나 개발자만 아는 특정 값을 파라미터로 넘겨야 한다면 좋지 않은 인터페이스이다
  • 따라서 인터페이스든 함수든 직관적이고 명확하게 설계하는 것이 중요하다

 

2) 성능 요구사항

  • 호출벨을 눌렀는데 10초 동안 응답이 없다면 손님은 호출벨이 아닌 다른 방식으로 요청할 것이다
    • 만약 손님이 5초 정도는 기다릴 수 있다면, 호출벨에는 5초 안에는 어떤 응답이든 리턴되어야 한다는 정의가 붙어야 한다
    • 예를 들면, 5초 안에 직원이 응답하거나 ‘잠시만요’라고 응답한 후 5초 이후에 가서 요청을 처리하는 것이다
  • 따라서 인터페이스를 호출하면 언제까지 어떤 결과가 오든 에러가 리턴이 되든간에 문서나 주석에 명시가 되어 사용자가 알게 해야 한다

 

3) 하위호환지원

  • 어떤 음식점에서 호출벨을 누르면 응답을 하는데, 직접 직원을 호출했을 때는 응답하지 않는다면 손님은 다시 그 가게를 방문하기를 꺼릴 것이다
  • 이처럼 신버전 인터페이스를 지원한다면, 구버전 인터페이스 또한 지원해야 한다
  • 마이크로소프트의 경우 하위호환지원을 잘 지켜서 구버전의 OS에서도 모든 기능이 잘 동작한다
  • 물론 하위호환을 지원하지 않는 경우도 많고, 이를 지원하려다보면 오히려 신규 기능을 지원하기가 힘들기도 한다
  • 따라서 하위호환을 지원하려면 많은 부분에 대한 고려가 필요하다

 

4) 쉬운 접근성과 대중성

  • 호출벨의 의미를 모르거나 호출벨을 숨겨놓았다면 의미가 없을 것이다
  • 따라서 인터페이스는 누구나 알 수 있도록 만들어야 하고, 노력해야 한다

 


영상을 보고 제가 단 댓글입니다ㅋㅋ

굉장히 익숙하면서도 크게 와닿지 않는 인터페이스와 한발짝 더 친해진 느낌이 드는 영상이었습니다!

그럼 오늘도 맛있는 코딩을 위해 야미는 공부하러 가궜습니다🌱

728x90

댓글