컴플라이언스란 일반적으로 준법감시 혹은 내부통제로 번역된다. 회사가 자발적으로 관련 법력을 준수하기 위해 위험을 통제하고 사전 조치를 취하는 행위나 정책이다.
그렇다면 컴플라이언스 이슈란? 조직이 적용해야 하는 법적, 윤리적, 규제적 규칙 및 정책을 준수하지 않거나, 그러한 준수를 보장하기 위한 내부 규정을 따르지 않는 상황 또는 문제를 가리키는 용어이다. 컴플라이언스 이슈는 조직이 법적 문제나 규제 위반, 금융 손실, 평판 손상 등과 같은 불이익을 피하기 위해 주의해야 하는 중요한 사항이다.
이러한 컴플라이언스 이슈를 해결하고 준수를 보장하기 위해서는 조직은 적절한 정책, 절차, 교육, 모니터링 및 감사를 수행해야 한다. 또한 법률 전문가나 컴플라이언스 팀과 협력하여 법규 준수와 윤리적 행동을 확보해야 한다.
웹 보안: XSS는 CSP(Content Secure Policy)로 다른 소스의 스크립트를 차단하여 해결하고, CSRF는 CSRF TOKEN을 통해 해결, SQL인젝션은 쿼리의 파라미터에 사용자 입력을 삽입할 때 자동으로 이스케이핑하여 해결한다. 혹은 ORM라이브러리를 사용해 해결한다.
데이터 보호: 사용자별 데이터 접근 권한을 최소한으로 제한하는 등의 권한 관리가 필요하고, DRM(Digital Rights Management) 솔루션을 통해 디지털 콘텐츠의 사용권한을 제어 해야한다. 또한 HTTPS통신을 사용해 데이터 전송을 암호화하며, DLP(Data Loss Prevention) 을 도입해 데이터 흐름을 추적해 유출을 감지/차단해야한다.
웹 접근성: 시멘틱 HTML을 사용하고 레아이웃과 컨텐츠에 일관성을 줘야한다. 외에도 적절한 색상대비로 저시력자에게 도움을, 모든 이미지에 alt=""와 같이 대체 텍스트를 제공해 화면 낭독기 등 보조기술을 사용하는 사용자에게 내용을 설명해줘야 한다.
오픈 소스 라이선스 및 저작권: 라이선스에 명시된 규정을 준수하며 배포, 수정, 상업적 사용에 대한 제한사항이 있는지 확인해야 한다. 그 예시로 법적인 권리가 있는 콘텐츠를 사용할 때는 미리 허가를 받거나, 코드를 사용하기 위해서는 라이선스와 저작자 정보를 유지해야하는 등의 규정이 있다.
웹 성능: 이미지 최적화(포맷선택 및 압축), CSS&JS 최적화(트리 쉐이킹으로 불필요한 코드 제거, CSS에서 특정한 경우에만 사용하는것은 미디어쿼리로 지정해 로딩 단축, JS는 헤더 안에 defer 속성을 지정해 html 파싱중 동시에 JS파일을 다운받고 파싱이 끝난 후 실행 non-block), 외에도 preload속성을 통해 리소스의 우선순위를 지정하고, prefetch를 통해 로딩 이 후 필요해보이는 리소스를 미리 가져와 캐시에 저장하는 등의 다양한 성능 개선 방법이 있다.
국제화: i18n 리소스를 사용해 현지어에 맞게 데이터를 보여주고 처리해준다. 또 날짜/시간/숫자/단위 같은 부분을 국제화 표준에 맞게 객체 처리를 해줘야 한다.
쿠키 및 개인 정보 추적: 먼저, 해당 국가 또는 지역의 관련 법규, 규정을 이해하고 쿠기 관련 지침에 따라 사용자의 동의를 얻어야한다. 또한 사용자가 쿠키를 관리하고 철회할 수 있도록 절차를 마련해야 한다.
또한 위 방법 외에도 새로운 컴플라이언스를 주기적으로 검토하여 그에 맞게 업데이트를 시켜 개선 해야나가야한다.