전체보기(202)
-
서버 기반 인증 vs 토큰 기반 인증
서버 기반 인증 시스템 서버 기반 인증 시스템이란 서버 측에서 사용자들의 정보를 기억하고 있는 시스템을 말합니다. 사용자들의 정보를 기억하기 위해서는 세션을 유지해야 하는데, 메모리나 디스크 또는 데이터베이스 등을 통해 관리합니다. 서버 기반의 인증 시스템은 클라이언트로 요청을 받으면 클라이언트의 상태를 계속 유지하고 이 정보를 서비스에 이용합니다. 서버 기반 인증 시스템의 문제점 세션 사용자가 인증을 할 때, 서버는 이러한 정보를 저장하고 이를 세션이라고 부릅니다. 대부분의 경우에는 메모리에 저장하는데 로그인 중인 사용자가 많으면 서버의 RAM에 부하가 걸리게 됩니다. 이를 피하기 위해 데이터베이스에 저장하기도 하는데 이러한 방식 역시 데이터베이스에 무리를 줄 수 있습니다. 확장성 사용자가 늘어나게 되..
2021.12.08 -
L4 스위치 vs L7 스위치
스위치란 스위치란 네트워크를 연결하는 일을 하는 목적을 가진 기기입니다. 스위치는 자신에게 연결된 모든 기기들로부터 들어오는 패킷을 수신하고 이 패킷을 적당한 기기로 보내는 일을 합니다. 스위치는 OSI 7계층에서 어느 계층까지를 다루는지 기준으로 스위치의 카테고리를 나눕니다. L4 스위치 OSI 3 - 4계층에 속하는 IP, TCP/UDP 포트 정보를 참조하여 패킷을 확인하고 세션을 관리하며 로드밸런싱을 제공하는 스위치 장비입니다. L4는 TCP/UDP 패킷 정보를 분석해서 해당 패킷이 사용하는 서비스 종류별로 처리합니다. L4 스위치는 서버 IP를 VIP와 매핑한 테이블을 가지고 있습니다. 따라서 L4 스위치 장비는 VIP로 들어오는 트래픽을 여러 서버에 분산시킬 수 있는 로드밸런싱 기능이 있습니다...
2021.12.06 -
Apache 서버 업데이트 이슈
최근 Apache 보안 이슈로 인해 서버를 업데이트를 하며 여러 문제가 발생해 해당 이슈와 해결 방안에 대해 정리를 해봅니다. 참고로 서버는 Centos 6과 7버전입니다. libpcre.so.0 cannot open shared object file no such file or directory 여기서 libpcre는 정규 표현식을 지원하는 라이브러리입니다. .so가 붙는 파일들은 리눅스의 동적 라이브러리 파일로 프로그램 실행 후 필요할 때 호출됩니다. 에러 내용을 보면 libpcre의 동적 라이브러리를 찾을 수 없다는 내용입니다. 이러한 문제를 해결하는 방법은 아래와 같습니다. 링크 재생성 일반적으로 libpcre.so.0나 libpcre.so.1은 /lib나 /lib64 디렉토리 내부에 libpcr..
2021.12.01 -
Spring MVC
Spring MVC란 Spring MVC란 Front Controller Pattern에 기초한 웹 MVC 프레임워크입니다. Spring MVC는 Model, View, Controller를 명확한 클래스로 분할하고 losse coupling 시켜놓아서 매우 유연하고 확장성이 좋게 만들어 놓았습니다. Spring MVC의 구성요소 DispatcherServlet Spring MVC가 Front Controller Pattern에 기반하고 있는데 바로 그 Front Controller가 DispatcherServlet입니다. DispatcherServlet은 클라이언트의 모든 요청을 접수합니다. 그리고 받아들인 요청에 대한 처리를 다른 컴포넌트들에게 보내서 위임하고 있습니다. Infrastructure C..
2021.11.02 -
CORS
CORS란 CORS란 Cross-Origin Resource Sharing의 약자입니다. 브라우저에서 다른 출처의 리소스를 공유하는 방법입니다. URL 구조 출처란 출처란 URL 구조에서 살펴본 Protocol, Host, Port를 합친 것을 말합니다. 브라우저 개발자 도구의 콘솔 창에 location.origin을 실행하면 출처를 확인할 수 있습니다. CORS 동작 원리 Simple Request Simple Request는 서버에게 바로 요청을 보내는 방법입니다. 단순 요청은 서버에 API를 요청하고, 서버는 Access-Control-Allow-Origin 헤더를 포함한 응답을 브라우저에 보냅니다. 브라우저는 Access-Control-Allow-Origin 헤더를 확인해서 CORS 동작을 수행할..
2021.11.01 -
Spring MVC와 WebFlux의 차이
Spring WebFlux Spirng WebFlux는 Event driven 방식이고 비동기 논블로킹 방식입니다. WebFlux는 Node.js처럼 이벤트 루프가 돌아서 요청이 발생할 경우 그것에 맞는 핸들러에게 처리를 위임하고 처리가 완료되면 callback 메소드 등을 통해 응답을 반환합니다. 그래서 이 방식의 경우 Spirng MVC에 비해 적은 스레드로 많은 사용자의 요청을 받아낼 수 있습니다. Spirng MVC Spring Mvc는 사용자의 요청이 들어왔을 때마다 Thread를 생성하여 요청을 처리합니다. 하지만 다수의 사용자 요청이 들어왔을 때, Thread를 계속 생성하는 것은 리소스가 굉장히 많이 들어갑니다. 그래서 Spring MVC의 경우 어플리케이션이 실행되면서 Thread Poo..
2021.10.29