1. 스레드(Thread)
- 하나의 작업 단위.
- 소프트웨어적 스레드: 하나의 프로그램 내 논리적 작업 단위.
- 하드웨어적 스레드: CPU의 물리적 처리 단위.
- 파이썬은 멀티 스레드 지원
- 서버 운영 시: 스레드를 많이 사용하면 속도는 빨라지지만 메모리와 CPU 사용량 증가 → 서버 비용↑ 대규모 트래픽에 비효율 적일 수 있음
2. 라이브러리 vs 프레임워크
- 프레임워크: 정해진 틀 안에서 작업, 흐름 제어권이 프레임워크에 있음.
예: Django, Spring - 라이브러리: 필요한 기능만 가져와서 사용, 제어권이 개발자에게 있음.
예: Pandas, NumPy
6. HTTP 메서드
- GET: 데이터 조회 (URL에 데이터 노출, 보안 X)
- POST: 데이터 생성 (Body에 데이터 저장, 암호화 가능)
- PUT/PATCH: 데이터 수정 (POST의 변형)
- DELETE: 데이터 삭제
7. HTTPS & SSL
HTTP와 HTTPS의 차이는 보안의 차이
- SSL 인증서: 모든 요청을 암호화.
- 프론트엔드와 백엔드 모두 HTTPS 사용.
8. JWT (JSON Web Token)
- Stateless 인증 방식. (상태가 없다.)
- Access Token: 짧은 유효기간(2~12시간).
- Refresh Token: 긴 유효기간(1년 이상), Access Token 재발급에 사용.
- Refresh Token 유출 시 매우 위험 → 별도 DB에 보관하거나 물리적으로 분리.
- 예를 들어 로그인한 유저만 볼 수 있는 화면을 구성할 때, 해당 유저의 인증 여부를 세션, JWT 등을 통해 확인 할 수 있는데
세션은 유효기간이 길고 프론트엔드에서 언제나 접근 가능하기 때문에, 보안에 취약하다. 그래서 JWT를 주로 사용한다.
- 토큰 유효기간, 토큰 시크릿 문자열 등 사용자가 다양하게 커스텀 할 수 있다.
9. HTTP 상태 코드
- 100~199: 정보(Informational) -> 애매한 성공
- 200~299: 성공(Success)
- 300~399: 리다이렉션(Redirection) -> 예) 주소가 바뀌어 현재에 접근할 수 없는 페이지의 경우
- 400~499: 클라이언트 에러(Client Error) -> 예) 클라우드 서버가 꺼져있을 때, 자연재해, 서버 자체가 실행이 안되었을 때
- 401/403: 권한 문제
- 404: 리소스 없음
- 500~599: 서버 에러(Server Error)
10. 가상환경
- 파이썬: venv, virtualenv
- 자바: JVM
- 장점: 환경 분리, 재사용성 높음.
- 예) 가상환경에 라이브러리 설치 후 가상환경 자체를 다른 개발 환경에서 가져다 사용할 수 있음
11. 배포
- AWS 같은 클라우드 환경에 서버를 실행한다. 즉 AWS 데이터 센터같은 곳에 하나의 컴퓨터(서버)를 빌려 그 환경에서 24시간 돌아갈 수 있도록 배포하는 것이다
12. 서버리스
- 서버를 직접 구축·운영하지 않고, 클라우드 서비스 제공자의 서버를 이용해 실행하는 방법
- 대표 서비스: AWS Lambda, Google Cloud Functions, Azure Functions.
- 장점: 서버 관리 불필요, 사용한 만큼 비용 지불, 확장성 좋음.
12-1. 서버리스의 보안 위험
- 프론트엔드에서 서버(백엔드) 없이 직접 클라우드 리소스에 접근하면 위험.
- 이유:
- API 키나 인증 토큰이 브라우저 코드에 노출될 수 있음.
- 사용자가 요청을 위조해서 민감 데이터에 접근 가능.
12-2. 안전한 요청 흐름
[FrontEnd] → [Database / 외부 API]
- 프론트엔드 : 사용자 요청을 백엔드(API)에 전달만 함
- 백엔드 :
- 1. JWT 등 이용해 사용자 확
- 2. 권한 체크 (Authorization)
- 3. 데이터 베이스 접근해 데이터 가지고 와 프론트엔드에 전달'
13. 핵심 보안 원칙
- 프론트엔드에는 민감한 인증 정보 저장 금지.
- API 요청은 반드시 백엔드를 거쳐서 실행.
- 데이터베이스 접근은 백엔드 전용 계정만 사용.
- 모든 통신은 HTTPS로 암호화.
- 토큰은 유효기간·권한을 최소한으로 설정.
'기타' 카테고리의 다른 글
| 데이터베이스 전용 툴과 서버 운영 개념 정리 (0) | 2025.09.21 |
|---|---|
| 프로그램 기본 개념 2 (OS, 모바일 앱 개발, 시간 복잡도, 데이터 베이스, 깃허브, AI 활용) (8) | 2025.08.17 |
| 파이썬 기초 문법 2 (변수명 규칙, 연산자, 런타임 에러, 컴파일 에러) (0) | 2025.08.10 |
| 파이썬 기초 문법과 메모리 개념 정리 (자료형, 함수, 조건문) (1) | 2025.08.03 |
| API란 무엇인가? 쉽게 정리해보기 (2) | 2025.07.13 |