
174
2
부
시스템 설계
6.4.3
API
사용성에 대한 고려
API
를 도입하고 사용할 때 조직의 개발자와 생산성에 미치는 영향을 고려해보는 것이 좋다.
만일
API
가 사용하기에 번거롭다면 개발자의 작업 속도가 느려지거나
API
의 도입을 꺼려할
것이다. 생성 시 안전한
API
는 코드를 더 이해하기 쉽게 하고 개발자가 애플리케이션 로직에
집중하면서도 조직 문화에 보안 인식을 자동으로 심어줄 수 있다는 복합적인 장점을 제공한다.
다행히 생성 시 안전한
API
로 개발자에게 장점을 제공하면서도 보안과 신뢰성 문화를 갖출 수
있는 라이브러리와 프레임워크를 설계(
21
장 참고)하는 것이 가능한 경우가 대부분이다. 개발
자가 이미 익숙한 패턴과 관용 표현을 정립할 수 있는 안전한
API
를 도입하면 개발자는
API
를
사용하는 것과 관련된 보안 불변성에 대한 직접적인 책임을 지지 않아도 된다.
예를 들어 문맥에 따라 자동으로 코드를 이스케이핑하는
HTML
템플릿 시스템을 도입하면 이
시스템이 템플릿에 주입되는 모든 데이터에 올바른 검증과 이스케이핑에 대한 책임을 갖게 된
다. 이는 시스템이 렌더링하는 템플릿에 어떤 (잠재적으로 악의적인 ) 데이터가 주입되더라도
XSS
취약점으로 이어지지 않기 때문에 전체 애플리케이션에 강력한 보안 불변사항이다.
동시에 개발자 관점에서 보면 ...