개발에 앞서 알아야 할 컴플라이언스 이슈 정리

JACKJACK·2023년 9월 5일
1
post-thumbnail

컴플라이언스란?

컴플라이언스란 일반적으로 준법감시 혹은 내부통제로 번역된다. 회사가 자발적으로 관련 법력을 준수하기 위해 위험을 통제하고 사전 조치를 취하는 행위나 정책이다.

그렇다면 컴플라이언스 이슈란? 조직이 적용해야 하는 법적, 윤리적, 규제적 규칙 및 정책을 준수하지 않거나, 그러한 준수를 보장하기 위한 내부 규정을 따르지 않는 상황 또는 문제를 가리키는 용어이다. 컴플라이언스 이슈는 조직이 법적 문제나 규제 위반, 금융 손실, 평판 손상 등과 같은 불이익을 피하기 위해 주의해야 하는 중요한 사항이다.

이러한 컴플라이언스 이슈를 해결하고 준수를 보장하기 위해서는 조직은 적절한 정책, 절차, 교육, 모니터링 및 감사를 수행해야 한다. 또한 법률 전문가나 컴플라이언스 팀과 협력하여 법규 준수와 윤리적 행동을 확보해야 한다.


개발자 관점의 컴플라이언스 이슈 예시

  • 웹 보안 (Web Security): XSS, CSRF 및 SQL 인젝션 공격 방지를 통해 사용자 입력 데이터를 검증하고 안전하게 처리해야 한다. 또한 인증 및 권한 관리를 통해 사용자 인증 및 권한 부여를 안전하게 처리하여 민감한 기능에 대한 접근을 제한해야 한다.
  • 데이터 보호 (Data Protection): 사용자 개인 정보를 안전하게 저장 및 처리하고, 개인 정보 유출을 방지해야 하며 데이터베이스 및 데이터 통신을 암호화하여 데이터 보안을 강화해야 한다.
  • 웹 접근성 (Web Accessibility): 웹 콘텐츠 접근성 준수를 위한 WCAG 가이드라인에 따라 웹 사이트와 애플리케이션을 장애인 및 저시력자를 위한 접근이 가능하도록 만들어야 한다.
  • 오픈 소스 라이선스 및 저작권 (Open Source Licensing&Copyright): 오픈 소스 소프트웨어를 사용할 때 해당 라이선스를 이해하고 준수해야 한다. 또한 타인의 코드나 콘텐츠를 사용할 때, 해당 소유자의 권한을 준수해야 한다.
  • 웹 성능 (Web Performance): 사용자 경험을 향상시키기 위해 웹 페이지의 로딩 시간 등 성능을 개선해야 한다.
  • 국제화 (Internationalization): 다양한 언어와 지역에 대한 지원을 제공하여 국제 사용자를 대상으로 확장성을 확보해야 한다.
  • 쿠키 및 개인 정보 추적 (Cookies and Tracking): 쿠키 사용과 사용자 추적에 대한 관련 법규를 준수하고, 사용자 동의를 얻어야 한다.

컴플라이언스 이슈 해결 예시

  • 웹 보안: 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 리소스를 사용해 현지어에 맞게 데이터를 보여주고 처리해준다. 또 날짜/시간/숫자/단위 같은 부분을 국제화 표준에 맞게 객체 처리를 해줘야 한다.

  • 쿠키 및 개인 정보 추적: 먼저, 해당 국가 또는 지역의 관련 법규, 규정을 이해하고 쿠기 관련 지침에 따라 사용자의 동의를 얻어야한다. 또한 사용자가 쿠키를 관리하고 철회할 수 있도록 절차를 마련해야 한다.

또한 위 방법 외에도 새로운 컴플라이언스를 주기적으로 검토하여 그에 맞게 업데이트를 시켜 개선 해야나가야한다.

profile
러닝커브를 빠르게 높이자🎢

0개의 댓글