사용자 도구

사이트 도구


web:신규서비스

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
다음 판 양쪽 다음 판
web:신규서비스 [2021/12/04 19:34]
kwon37xi
web:신규서비스 [2022/01/12 10:44]
kwon37xi [보안]
줄 287: 줄 287:
     * 문자 필드에 어떤 문자를 사용할 수 없게 해야하는 상황일 경우에도, ''한글,영문 대소문자, 숫자, _, ...'' 식으로 whitelist 를 지정하는게 낫다.     * 문자 필드에 어떤 문자를 사용할 수 없게 해야하는 상황일 경우에도, ''한글,영문 대소문자, 숫자, _, ...'' 식으로 whitelist 를 지정하는게 낫다.
   * 인증 토큰(token) 은 변조가 불가하면서 애플리케이션 사용에 필요한 최소한의 데이터를 담도록 한다. [[web:jwt|JWT]] 등을 암호화 하는 방법을 권장함.   * 인증 토큰(token) 은 변조가 불가하면서 애플리케이션 사용에 필요한 최소한의 데이터를 담도록 한다. [[web:jwt|JWT]] 등을 암호화 하는 방법을 권장함.
 +  * DDoS 공격 방어를 위해 WAF(Web Application Firewall, 웹방화벽) 설정을 해야한다.
 ===== 서버 운영 ===== ===== 서버 운영 =====
   * 절대로 여러 사람이 공유하는 공용 계정으로 서버를 관리하지 말라(AWS 등 포함). 이는 치명적인 보안 사고로 이어진다.   * 절대로 여러 사람이 공유하는 공용 계정으로 서버를 관리하지 말라(AWS 등 포함). 이는 치명적인 보안 사고로 이어진다.
줄 326: 줄 327:
       * 이렇게 해야 ''주문 취소건'' 이라는 검색어로 주문 취소와 관련된 연관 로그를 한 번에 검색 가능해진다.       * 이렇게 해야 ''주문 취소건'' 이라는 검색어로 주문 취소와 관련된 연관 로그를 한 번에 검색 가능해진다.
     * 절대로 예외를 먹지 말것. 정말 특별한 경우가 아니면 항상 예외의 stacktrace까지 모두 남길것. 특별한 경우에는 왜 특별한지 주석 달 것.     * 절대로 예외를 먹지 말것. 정말 특별한 경우가 아니면 항상 예외의 stacktrace까지 모두 남길것. 특별한 경우에는 왜 특별한지 주석 달 것.
 +  * UI 관점에서 사용자 행위 로그를 꼭 남기도록 하고 이를 분석하여 개선 방향을 도출할 수 있도록 한다.
 ===== Production Server ACL ===== ===== Production Server ACL =====
   * 운영 시스템에 대한 ACL은 개발 초기부터 망 분리 등을 통해 운영시스템에서만 접속가능하도록 하고 **절대 개발자 PC, 테스트 시스템 등에서는 접속이 불가능**하도록 구성한다(여기서 말하는 접속은 서버에 대한 SSH 접속이 아니라 DB,Redis,MQ 같은 시스템, API 서버 등에 대한 접속을 뜻한다).   * 운영 시스템에 대한 ACL은 개발 초기부터 망 분리 등을 통해 운영시스템에서만 접속가능하도록 하고 **절대 개발자 PC, 테스트 시스템 등에서는 접속이 불가능**하도록 구성한다(여기서 말하는 접속은 서버에 대한 SSH 접속이 아니라 DB,Redis,MQ 같은 시스템, API 서버 등에 대한 접속을 뜻한다).
줄 443: 줄 444:
     * [[:docker|Docker]], [[aws:localstack|LocalStack]], [[devops:vagrant|Vagrant]] 등을 활용하여 개발자 전용 개발 환경을 만들어주고     * [[:docker|Docker]], [[aws:localstack|LocalStack]], [[devops:vagrant|Vagrant]] 등을 활용하여 개발자 전용 개발 환경을 만들어주고
     * [[java:database:migration:flyway|Flyway Java Database Migration]], [[java:database:migration:liquibase|Liquibase]], [[devops:terraform|Terraform]], [[devops:ansible|Ansible]]같은 Infrastructure As Code 툴로 운영환경을 Local 에서 복구하는 것이 자동화 돼 있어야 한다.     * [[java:database:migration:flyway|Flyway Java Database Migration]], [[java:database:migration:liquibase|Liquibase]], [[devops:terraform|Terraform]], [[devops:ansible|Ansible]]같은 Infrastructure As Code 툴로 운영환경을 Local 에서 복구하는 것이 자동화 돼 있어야 한다.
 +  * 개발 시간도 아니면서 개발 시간이 부족하게 만드는 요소들(배포 복잡도로 인한 배포 시간이 너무 오래걸린다던가, 매우 반복적인 통계 생성 요청이나 기타 운영 요청을 받아주느라 개발을 못한다던가)이 있는지 확인하고 개선하여 개발 시간을 확보하고 또한 이를 계속 반복 확인한다.
   * 기술 선언서를 만든다.   * 기술 선언서를 만든다.
     * 장애대응 방법과 태도(비난하지 말고 함께 문제를 해결한다던가)     * 장애대응 방법과 태도(비난하지 말고 함께 문제를 해결한다던가)
줄 455: 줄 457:
       * Test 방법       * Test 방법
     * 그리고 지속적인 회고로 기술 선언서를 개선한다.     * 그리고 지속적인 회고로 기술 선언서를 개선한다.
 +
 +
  
 ===== 지속적인 업그레이드 ===== ===== 지속적인 업그레이드 =====
web/신규서비스.txt · 마지막으로 수정됨: 2024/03/08 11:26 저자 kwon37xi