필터 필터는 디스패처 서블릿에 요청이 전달되기 전/후에 요청에 대해 부가작업을 처리할 수 있는 기능을 제공한다. 필터는 스프링 범위 밖에서 처리된다. 즉, 스프링 컨테이너가 아닌 tomcat과 같은 서블릿 컨테이너에 의해 관리가 된다. 인터셉터 Spring이 제공하는 기술로서 스프링 컨테이너에서 관리된다. 디스패처 서블릿(Dispatcher Servlet)이 컨트롤러를 호출하기 전과 후에 요청과 응답을 참조하거나 가공할 수 있는 기능을 제공한다. https://mangkyu.tistory.com/173 [Spring] 필터(Filter) vs 인터셉터(Interceptor) 차이 및 용도 - (1) Spring은 공통적으로 여러 작업을 처리함으로써 중복된 코드를 제거할 수 있도록 많은 기능들을 지원하고 ..
다시 한번 정리하는 의미에서 작성합니다. IaaS (Infrastructure as a Service) 서버 인프라 환경 서비스를 제공한다. 기존 서버 환경의 인프라를 클라우드 서비스로 제공한다. 서버, 스토리지, 네트워킹과 같은 컴퓨팅 자원을 사용 할 수 있다. PaaS (Platform as a Service) 애플리케이션 개발 및 실행 환경을 제공한다. 인프라를 구축할 필요 없이 개발자가 코드만 작성하면 서버 환경이 구성되는 것을 의미한다. PaaS를 사용하면 사용자는 코드 작성 및 애플리케이션 구축에 집중할 수 있고, 클라우드 제공자는 기본 인프라 관리 작업을 처리한다. 관련 서비스는 애저 앱 서비스 등이 있다. SaaS (Software as a Service) 브라우저 기반으로 소프트웨어를 사..
스키마란 데이터베이스 내에서 특정 사용자가 소유한 객체들을 그룹화하고 관계를 정의하는 논리적인 구조입니다. 스키마는 특정 사용자 또는 응용 프로그램에 속하는 데이터베이스 객체들의 모음이라고 생각할 수 있습니다. 스키마는 테이블, 뷰, 인덱스, 프로시저, 함수 등과 같은 데이터베이스 객체들을 그룹화하고 그들 간의 관계를 정의합니다. 일반적으로 데이터베이스 사용자는 자신만의 스키마를 가지며, 해당 스키마 내에서 데이터베이스 객체를 생성하고 사용합니다. 여러 사용자가 동일한 데이터베이스에 접근하는 경우, 각 사용자는 자신의 스키마를 가지고 그 안에서 작업을 수행합니다. 이를 통해 데이터베이스 내에서 객체의 이름 충돌을 방지하고, 사용자 간에 격리된 환경을 제공할 수 있습니다. 예를 들면, YYJ 스키마는 YY..
프로세스 (Process) 프로세스는 쉽게 말해 '실행 중인 프로그램' 입니다. 프로그램이 메모리에 로드되면 프로세스가 됩니다. 하나의 프로그램이 여러 프로세스가 될 수 있습니다. 스레드 (Thread) 프로세스 내에서 동시에 진행되는 작업의 단위를 말합니다. 스레드끼리 프로세스의 자원을 공유합니다. 하나의 프로그램은 하나 이상의 프로세스를 가지고 있고, 하나의 프로세스는 반드시 하나 이상의 스레드를 갖는다. 서블릿 컨테이너는 멀티스레드를 자동으로 지원하고 관리합니다. 여기서 멀티 스레드란 무엇일까? 멀티 스레드 메인 스레드 외, 추가적인 스레드를 이용하여 병렬적으로 작업을 처리하는 것입니다. 장점은 경제성이 있다. 프로세스 내 자원들과 메모리를 공유하기 때문에 메모리 공간과 시스템 자원 소모가 줄어든다..
정규화의 기본 목표는 테이블 간에 중복된 데이터를 허용하지 않는 것이다. 동일한 정보가 여러 번 저장되지 않도록 중복을 최소화 해서 저장공간을 절약합니다. 또한 특정 테이블에서 데이터를 수정할 때 다른 테이블의 데이터에는 영향을 미치지 않도록 합니다. 제 1 정규화 - 테이블의 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해하는 것 - 각 행은 유일한 PK(Primary Key)를 가져야 합니다. 제 2 정규화 제1 정규화를 진행한 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것이다. 여기서 완전 함수 종속이라는 것은 기본키의 부분집합이 결정자가 되어선 안된다는 것을 의미한다. 제 3 정규화 제2 정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해하는 것이다. 여기서 이..
서블릿(Servlet) : 서블릿은 WAS내의 서블릿 컨테이너에서 동작하며, 클라이언트의 요청에 맞춰 동적인 결과를 만들어줍니다. 요청을 받으면 요청에 맞는 로직을 실행하고 클라이언트에게 HTTP 형식으로 응답합니다. 근데 서블릿만으로는 한계가 있는 것이, 클라이언트가 URL을 입력하여 요청을 하게 되면 정보를 처리하기 위해 스레드를 만들고 객체를 생성하고 직접 서블릿을 맵핑하는 등의 작업이 있어야 한다. 이를 손쉽게 처리해주는 것이 서블릿 컨테이너이다. 서블릿 컨테이너 서블릿을 담고 관리해주는 컨테이너입니다. 주요 기능으로는 서블릿의 생명주기를 관리하고 통신을 지원합니다. 또한 클라이언트의 요청을 받을 때마다 새로운 자바 스레드를 형성하며 멀티쓰레드를 지원하고 관리합니다. 이를 통해 개발자가 비즈니스 ..
(1) HTTP 통신 클라이언트의 요청이 있을 때만 서버가 응답 JSON, HTML, Image 등 다양한 데이터를 주고 받을 수 있음 서버가 응답한 후 연결을 바로 종료하는 단방향 통신이지만 Keep Alive 옵션을 주어 일정 시간동안 커넥션을 유지할 수 있다. (2) 소켓 통신 클라이언트와 서버가 특정 포트를 통해 양방향 통신을 하는 방식 데이터 전달 후 연결이 끊어지는 것이 아니라 계속해서 연결을 유지 → HTTP에 비해 더 많은 리소스 소모 실시간 동영상 스트리밍이나 온라인 게임 등에 사용 - 단방향 통신인 Http 통신 Http 통신은 Client의 요청이 있을 때만 Server가 응답하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식입니다. Client가 요청을 보내는 경우에만 Serve..
톰캣 - WAS(웹 애플리케이션 서버) - 웹 서버와 컨테이너의 결합 (웹 컨테이너, 서블릿 컨테이너라고 부름) - 8080 포트를 사용 WAS 란? (web Application Server) 여러 web client의 요구를 web서버가 감당할수없는 기능을 구조적으로 web서버와 분리하기 위해 만들어진것으로 web application server(WAS) 라고 한다. WAS는 동적인 데이터를 처리하는 서버, DB 연결, 데이터 조작 등의 처리를 담당한다. ex) tomcat, weblogic, jeus 아파치 - 웹서버(web server)를 일컫는다. -정적인 데이터들 (html, css 이미지, 파일 등)에 대한 클라이언트의 요청을 데이터로 만들어서 응답한다. - 80 포트를 사용 Web Ser..