본문 바로가기
반응형

Study/Server8

[Server] 커넥션 풀 커넥션풀이 필요한 이유 WAS는 사용자의 요청에 DB에서 필요한 데이터를 얻게된다. 이 과정에서 DB에 대한 커넥션을 연결해야 하는데 이는 시간이 오래걸리는 무거운 작업이다. 그렇기 때문에 이 커넥션 풀을 사용하게 된다. DB가 커넥션을 얻는 과정 애플리케이션 로직은 DB 드라이버를 통해 커넥션 조회 DB 서버와 TCP/IP 연결(3way handshake) DB에 ID/PWD 전달 인증 후 DB 세션 생성 커넥션 객체 반환 풀 이란? 객체를 보관하는 장소. 한번 생성된 객체 인스턴스를 필요할 때 꺼내 쓰고 사용 후 반환하는 기술. 장점 미리 생성해 놓은 커넥션을 재활용 하기에 복잡한 커넥션을 얻는 과정을 애플리케이션이 시작할 당시에 한번만 수행하면 된다 DB에 무한정 연결이 생성되는 것을 막아주어 DB.. 2022. 10. 4.
[Server] DDD(Domain-Driven Design) 도메인 주도 설계 정의 유사한 업무들을 묶어 중심에 놓고 설계하는 방식 프로젝트 단위의 바운디드 컨텍스트가 생긴다. 장점 명시적인 강제 언어 경계가 생긴다. 컨텍스트 별 독립적인 발전이 가능해진다. 인터페이스에 기반한 컨텍스트 간 통신이 이뤄진다. 언어가 중요한 요소! 언어의 경계를 얼마나 잘 나누느냐가 DDD의 성패 결정 Conway's Law 우리가 만드는 시스템은 조직의 모양에 따라간다. 비지니스 도메인 별 팀을 꾸리게 된다면 자연스럽게 그에 맞는 바운디드 컨텍스트를 가진 프로세스가 제작될 가능성이 높다. 분산화된 데이터 관리 통일화된 DB를 가진다면 join의 유혹에 빠지기 쉽다. 서비스별 물리적 논리적 DB를 가지게 된다면 경계를 치기가 더욱 유리하다. 진화하는 설계 각각의 프로세스가 개별로써 진화하고 발.. 2022. 7. 15.
[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.
[Network] HTTP란? 그리고 HTTP 1.1, HTTP 2 Rest API가 HTTP/1.0의 특징과 연관이 있듯 gRPC에 대해 알아보니 HTTP/2.0의 특징과 큰 연관이 있는 듯 하다. 근본이 되는 기술을 공부해 두는게 좋겠지.. 면접에서도 종종 나오는 질문인듯하고. 아자아자! HTTP란? HTTP(Hypher Text Transfer Protocol)란 웹에서 데이터를 주고 받기 위한 프로토콜 즉, 일종의 약속이다. 주로 TCP/IP 전송계층을 사용한다.(Google님이 HTTP를 3.0버전을 UDP를 사용하여 제작했다. 정보를 찾아보니 많은 장점이 있던데 이를 통해 또 어떤 기술이 생겨날지 기대된다.) HTTP의 특징 TCP/IP 전송 계층을 사용하는 애플리케이션 계층의 프로토콜 비연결성 프로토콜 Client 측과 Server측의 request, res.. 2021. 9. 2.
반응형