반응형 Server5 [Server] 커넥션 풀 커넥션풀이 필요한 이유 WAS는 사용자의 요청에 DB에서 필요한 데이터를 얻게된다. 이 과정에서 DB에 대한 커넥션을 연결해야 하는데 이는 시간이 오래걸리는 무거운 작업이다. 그렇기 때문에 이 커넥션 풀을 사용하게 된다. DB가 커넥션을 얻는 과정 애플리케이션 로직은 DB 드라이버를 통해 커넥션 조회 DB 서버와 TCP/IP 연결(3way handshake) DB에 ID/PWD 전달 인증 후 DB 세션 생성 커넥션 객체 반환 풀 이란? 객체를 보관하는 장소. 한번 생성된 객체 인스턴스를 필요할 때 꺼내 쓰고 사용 후 반환하는 기술. 장점 미리 생성해 놓은 커넥션을 재활용 하기에 복잡한 커넥션을 얻는 과정을 애플리케이션이 시작할 당시에 한번만 수행하면 된다 DB에 무한정 연결이 생성되는 것을 막아주어 DB.. 2022. 10. 4. [Server] Go Web Server HTTPS 적용하기 HTTPS란? HTTP 프로토콜을 사용하여 통신하는 웹 애플리케이션에 TLS 프로토콜을 적용시켜 암호화된 데이터를 사용하여 통신하는 프로토콜. TLS란? 컴퓨터 네트워크 통신에 데이터를 암호화하는 데 활용할 수 있는 프로토콜. 대칭 암호화 방식과 공개키 암호화 방식을 사용한다. 디지털 인증서란? 믿을 수 있는 제3자 기관에 의해 발행된 디지털 문서이다.(스스로가 OpenSSL과 같은 오픈소스를 통해 자가 인증이 가능하기도 하다) 공개키, 이 키가 속한 서버 이름, 정보를 검증하는 믿을 수 있는 제3자 기관의 이름, 발행자가 기록돼 있다. 이 제3자 기관을 인증기관(CA)이라 한다. 만료일자가 존재한다. 웹 클라이언트는 일반적으로 알려진 인증기관의 리스트를 갖고 있다. 대칭 암호화 방식 대칭키 알고리즘이라.. 2022. 6. 7. [Server] OAuth 알고 쓰기 OAuth란? 다양한 플랫폼 환경에서 권한 부여를 위한 산업 표준 프로토콜이다. 아마 다양한 환경에서 알게 모르게 OAuth를 사용한 인증을 해 보았을 것이다. 당장에 생각나는 예시를 들자면 첨부한 인프런의 로그인화면을 보면 인프런 자체의 회원임을 인증하는 방법과 간편 로그인 란의 다양한 플랫폼을 통해 인증하는 방법이 있는 것을 볼 수 있는데 여기서 간편 로그인을 통한 인증이 이 OAuth 프로토콜을 사용한 인증 방법이다. OAuth에서의 용어 정리 사용자 : Resource Owner 사용하고자 하는 서버 : Client 리소스 제공 서버 : Resource Server 리소스 제공 서버의 인증 서버 : Auth Server OAuth를 사용하는 이유 신뢰성이 확보되지 않은 서비스에 본인의 정보를 넘기.. 2022. 6. 2. [Server] 인증(Authentication)과 인가(Authorization), 그리고 JWT(JSON Web Token) 인증과 인가 인증 사용자가 서비스를 사용할 때, 서비스에 가입된 회원을 확인받거나 권한 있음을 확인받는 과정. 인가 계속되는 인증 과정을 거치지 않아도 서비스를 제공하는 서버가 사용자에게 권한이 있음을 알게 하는 과정. 인증과 인가의 필요성 인증의 필요성은 말할 것도 없다. 서비스를 사용하기 위해선 서비스는 해당 사용자가 가입된 회원임을 확인받아야 하고 그 과정을 진행하는 것을 인증이라 한다. 즉, 로그인이다. 만약 인가를 해주는 기능이 없다면 회원만이 사용할 수 있는 서비스 기능을 사용하고자 할때 계속해서 인증 과정을 거쳐야 할 것이다. 티스토리를 예로 들자면 게시글을 작성할 때도 로그인을 해야 하고 댓글을 작성할 때도 로그인을 해야 할 것이며 어쩌면 게시글을 보는 것에도 로그인을 계속해서 해야 할 것.. 2022. 5. 1. [Server] APACHE와 NGINX의 특징과 차이 APACHE의 특징 Apache는 서버의 요청에 1:1로 프로세스 또는 쓰레드가 대응하는 방식 요청이 늘어날 수록 CPU와 메모리 사용량이 늘어남 프로세스가 Blocking 현상이 일어나면 요청을 처리하지 못하고 계속해서 대기하는 현상이 생김 ⇒이를 해결하기 위한 방법으로 Keep Alive를 사용. Keep Alive란 설정한 KeepAlive TimeOut 동안 접속을 끊지 않고 다음 접속을 기다리는것 즉, 한번 연결된 클라이언트와의 연결을 지속하고 있는다는 것 → Apache의 성능 향상 기대 but. 바쁜 서버 환경에서 KeepAlive On으로 설정해 놓을 경우, 모든 요청 마다 연결을 유지해야 하기 때문에 프로세스 수가 기하급수적으로 늘어나 MaxClient값을 초과 → Apache의 성능 저.. 2021. 8. 29. 이전 1 다음 반응형