AP?
- 웹서버와 WAS를 묶어서 AP 서버라고 부를 수 있다.
- 단순히 말하면 웹서버는 프론트엔드단을 처리합니다.
- WAS는 백엔드단을 처리합니다.
- 둘이 반드시 공간이 분리되어 따로 존재할 필요는 없습니다.
좋은 ap의 조건
- 성능: 빠를수록 좋다 (캐싱, 비동기 처리, 요청 시간) -> 외부 Rest API 비동기호출, synchronous, asynchronose
- 안정성: 요청 정상 처리 및 사고 방지
- 보안: 보안 스펙트럼이 넓으니 주요 동작에 대한 이해 필요
보안 관련 고려사항
- 클라이언트가 아닌 서버 중심의 로직 처리 (클라이언트 요청은 쉽게 변경 가능)
- 사용자 인증&인가 (사용자 인증 없는 요청 처리는 다양한 접근 경로 존재)
- 사용자 요청의 유효성 (서버) 검증 (요청 필드 값 유효 검증, 리소스 변경 건은 철저하게 진행) -> 요청 길이 코드 부합성 검사는 성능에도 도움이 된다
- sql injection, XSS(Cross-Site Sctipting) 방어 (클라이언트 입력 값은 WHERE 조건문의 일부로 사용하는 경우, script 태그를 사용하는 경우)
보통 http 요청의 첫 진입점으로 ngnix를 쓰는데 Dos 공격 방지 등 최소한의 장치 마련
부하 테스트(필수)
- N개의 클라이언트 요청
- 적절한 응답 시간과 데이터 신뢰성
- JMeter 등의 도구 활용
데이터 신뢰성
- concurrency 이슈
- 단일/멀티 서버
- 트랜잭션 처리
- 암호화: 갈취당하더라도 쓸 수 없도록 하는 것이 핵심, 솔루션 자체도 인가 제품 사용
- https 통신 필수
로깅
- logger 이용
- 이슈 추적의 시작
서버 테스트
- 서버 테스트 시나리오
서버 프로그래밍
- 너를 의심 : 서버 중심 로직 처리, 유효성 검증, 사용자 인증/인가, 해킹 방어
- 나를 의심 : 응답 시간, 신뢰성, 트랜잭션, 리소스 권한, 암호화
- 발생한 일 기록 : 로깅
'CS지식' 카테고리의 다른 글
Data Flow (0) | 2023.06.02 |
---|---|
AWS 배포에 필요한 구조 (0) | 2023.06.02 |
JPA (0) | 2023.06.01 |
Mordern Java with Python (0) | 2023.06.01 |
JIRA란? (0) | 2023.06.01 |