web
WAS
WAS Web Server 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠를 제공하는 서버 및 애플리케이션 동적인 컨텐츠를 제공하기 위해 WAS에 요청을 보내고, 해당 결과를 제공하기도 함 EX) Nginx, Apache Server WAS Web Application Server의 약자로, 동적인 컨텐츠를 제공하기 위해 만들어진 서버 DB 조회 및 웹 서버에서 불가능한 로직 처리 등을 담당 Web container 혹은 servlet container라고도 함 Jakarata EE (Java EE)는 WAS의 표준을 제공함. 이 표준을 따르는 서버를 java application server 라고 함 EX) Tomcat Web Server과 WAS의 분리 WAS는 web server의 기능 역시 수행 가능함.
read moreweb
Proxy Server
Proxy Server Proxy Server 서버와 클라이언트 사이에서 중계 역할을 해 주는 서버 및 애플리케이션 클라이언트의 및 서버의 요청/응답을 대신 받아 전달해 주는 등 대리자의 역할을 수행 이렇게 대리로 통신하는 행위를 proxy라고 함 Open(forward) proxy 와 reverse proxy로 나뉨 Forward Proxy 클라이언트 한테 붙어 있는 proxy server 클라이언트가 요청을 보낼 때 proxy server를 통해 요청을 보내 서버에 연결 Proxy server의 IP를 통해 요청이 들어오므로, 클라이언트의 정보가 감춰짐 다음과 같은 기능 제공 캐싱: 정적인 컨텐츠를 캐싱해서 웹 서버의 부하를 줄임 IP 우회: 서버 측에 proxy server의 IP를 제공함으로 인해 클라이언트의 IP를 감춤 연결 제한: 내부망에서 proxy server를 두어, 해당 망의 사용자들이 특정 사이트로 접속하는 것을 제한 가능 Reverse Proxy Forward proxy와 달리, 서버에 붙어 있는 proxy server 클라이언트는 reverse proxy server에 요청을 보내게 됨 외부에서는 웹 서버에 직접 연결할 수 없으므로 서버의 정보가 감춰짐 Nginx, Apache등이 해당 역할 수행 다음과 같은 기능 제공 로드 밸런싱: Proxy server 뒤에 여러 웹 서버를 사용해 요청을 분산 가능 보안: 웹 서버가 노출되지 않으므로 DDos 공격 및 외부의 DB 접근에 안전.
read moreweb
CORS
CORS Origin URL의 protocol, domain name, port을 합쳐 origin 이라고 함. 즉, https://localhost:8080/about과 https://localhost:8080/users?id=5는 같은 origin을 가짐. 반대로 protocol, domain name, port가 하나라도 다른 경우 cross origin 이라고 함. SOP (Same Origin Policy) 동일한 origin에서만 resource를 가질 수 있다는 정책. 이 정책이 없다면 웹 어플리케이션은 공격(XSS, CSRF)에 취약해짐. Origin 비교는 브라우저가 수행하고, 같은 origin이 아닌 경우 CORS 에러를 생성. CORS (Cross-Origin Resource Sharing) 다른 origin 으로부터의 리소스도 제한적으로 공유받을 수 있게 하는 정책.
read moreweb
Nginx
Nginx Nginx 란 여러 기능을 제공하는 경량 오픈 소스 웹 서버 소프트웨어. 동시 접속 처리에 특화되어 있어, 많은 웹 사이트들이 nginx를 웹 서버로 사용. BSD 2-clause 라이선스라는 원본 라이선스를 유지하는 선에서 수정, 재배포가 자유로운 라이선스 사용. 웹 서버 기능 요청에 맞는 정적 파일 제공 (일반적인 web server 기능) 캐싱을 통한 리버스 프록시 (클라이언트와 내부 서버의 중개자 역할) 로드 밸런싱 및 health check OpenSSL을 통한 TLS/SSL 지원 IPv6 호환 가능 HTTP, HTTP/2 지원, HTTP3 개발 중 URL rewrite / redirection Reload를 통해 서버 데몬을 재시작하지 않고 설정 변경 가능 Apache와의 차이 Apache 요청을 받을 때 마다 새 프로세스 / 스레드를 생성해서 동작.
read moreweb
MVC pattern
MVC pattern MVC pattern이란 사용자 인터페이스로부터 비즈니스 로직을 분리하는 디자인 패턴. 애플리케이션을 Model, View, Controller 세 가지 구성 요소로 구분. 웹 애플리케이션 개발에 널리 사용. 각 구성 요소들의 기능이 명확해지기 때문에 확장성, 유연성, 유지 보수 등의 이점이 있음. Model 애플리케이션의 데이터를 가지고 있고 비즈니스 로직을 담당하는 부분. 뷰나 컨트롤러에 대한 정보가 없음. 데이터 상태가 변경되면 이벤트를 발생시켜 뷰나 컨트롤러에게 알려 줌. View 애플리케이션의 레이아웃과 화면. 데이터를 보여주는 방식을 담당. 모델로부터 필요한 데이터를 받아옴.
read more