본문 바로가기

IT

서블릿(Servlet) VS 스프링(Spring) 처음 웹 서버는 정적인 요청에 대한 응답만 가능했다. 동적인 페이지를 만들기 위해 프로그램을 붙였고 대표적인 것이 서블릿이다. 초기에는 CGI 구현체를 활용했지만 요청마다 새로운 프로세스를 만드는 것은 너무 비효율적이였다. 그래서 하나의 싱글톤 CGI 구현체를 사용함으로써 스레드로 처리할 수 있게 되었고 이것이 현재의 서블릿이 된 것이다. Spring Web MVC는 서블릿을 사용한다. 그럼 이 둘을 비교하는게 맞을까도 싶다. 그래서 서블릿과 서블릿을 사용한 Spring Web MVC에 대해 기록해보려고 한다.  그림과 같은 http 요청과 응답을 개발자가 직접 처리하기 위해 응답을 만들고 하는 과정을 거친다면 힘들 것이다. 모든 규약을 확인해가며 긴 텍스트로 들어온 요청을 분석하고 거기에 맞는 처리를 .. 더보기
SQL과 NoSQL SQLSQL 관계형 데이터베이스에서 사용하기 위해 설계된 언어이다. 표준적인 SQL 명령어들이 있으며 이것은 모든 관계형 데이터베이스에 의하여 지원된다. SQL 명령어들은 두 가지의 카테고리로 나누어진다.데이터 정의 명령어(Data Definitnion Language)테이블을 생성하거나 변경대표 명령어 : CREATE, ALTER, DROP, USE데이터 조작 명령어(Data Manipulation Language)데이터를 추출, 추가, 삭제, 수정대표 명령어 : SELECT, INSERT, DELETE, UPDATESQL이 사용되는 분야관계를 맺고 있는 데이터가 자주 변경되는 프로그램이나 변경될 여지가 없으며 명확한 스키마가 더 중요할 때 사용하면 좋다.NoSQL는 변경될 때마다 여러 컬렉션을 모두 .. 더보기
인덱스(INDEX)의 필요성 인덱스는 RDBMS에서 검색 속도를 높이기 위한 자료구조Index는 DB 분야에 있어서 테이블에 대한 동작의 속도를 높여주는 자료 구조 음반(music)row id 제목 가수 발매일1aaaaaaa2022.03.042bbbbbbe2021.03.033ccccccb …   52222ddddddb2021.03.0352223eeeeeea2021.03.0352224ffffffffb2021.03.03…   99999gggggggc2021.03.03100000hhhhhhhd2021.03.03어떤 사람이 가수가 a인 모든 음반을 구매하려고 한다고 가정하자!SELECT * FROM musicWHERE 가수 = 'a';index가 없는 경우, 100000개의 데이터를 하나하나 모두 뒤져서 결과를 찾는다.이 방식을 Full .. 더보기
[JAVA] next(), nextLine(), 입력과 버퍼 입력과 버퍼의 관한 정리  우선 우리가 키보드를 통해 키입력을 받으면 입력받은 내용이 버퍼라는 기억공간에 저장이 된다.​또한 콘솔에서 아무 키만 입력된다고해서 입력이 되는것이 아니라 마지막에 엔터키를 눌러야 지금까지 눌렀던​내용이 버퍼에 전달되어 저장이 된다.​먼저 키보드로 120 라고 입력했다고 가정하자. 참고로 엔터에 해당하는 코드 문자는 \r\n 이다.​그럼 버퍼에는 120라고 들어갈 것이다. ​입력은 nextInt() 메서드가 실행된이후 버퍼에 내용이 있는지 확인하게 된다. 처음이니 버퍼에 내용은 없다.​따라서 키보드로부터 사용자의 입력을 기다리는 상태가 되고, 위에 가정한대로 입력을 받게 된다.​그리고 버퍼에서 공백,탭문자,개행문자(엔터)를 구분으로 해서 하나의 단어를 가져오게 된다.​버퍼에서는.. 더보기
클래스와 객체, 인스턴스 📌클래스(Class)클래스란, 객체를 만들어 내는 설계도 혹은 틀이다.서로 연관되어 있는 변수, 메서드의 집합이다.class Animal { // 변수 String name; int age; // 메서드 void run(){ System.out.println(name + "달려"); } void eat(){...}}클래스의 구성class 키워드를 이용하여 선언한다.필드 = 멤버 변수캡슐화의 원칙으로 클래스 외부에 어떤 변수나 메서드가 위치해서는 안된다. 📌객체(Object)실세계에서 우리 주변에 있는 TV, 책, 의자, 사람 등 모든 것이 객체이다. 객체는 자신만의 고유한 상태와 행동을 가지며 서로 상호작용하며 존재한다.이러한 객체는 클래스로부터 생성된다. 자신만의 고유한 상태인 필드(멤버 변수)와.. 더보기
오버로딩과 오버라이딩 오버로딩 : 기존에 없는 새로운 메서드를 정의하는 것 (new)오버라이딩 : 상속받은 메서드의 내용을 변경하는 것 (change, modify)class Parent { void parentMethod() {} }class Child extends Parent { void parentMethod() {} // 오버라이딩 void parentMethod(int i) {} // 오버로딩 void childMethod() {} void childMethod(int i) {} // 오버로딩} 바인딩오버로딩 : 정적 바인딩, 호출될 메소드가 컴파일 시점에 결정된다. (컴파일 다형성)오버라이딩 : 동적 바인딩, 호출될 메소드가 실행 시점에 결정된다. (런타임 다형성) 바인딩이란 프로그래밍에서 컴각종 값들이 확정되.. 더보기
Kubernetes(쿠버네티스) 2 CNI 설치 및 실행, taint 쿠버네티스는 하나의 MASTER [control-plane]와 여러 서버 NODE[node]가 존재MASTER를 실행시켜야 쿠버네티스가 돌아가고 있다고 할 수 있다.sudo kubeadm init --pod-network-cidr=10.100.0.0/16sudo kubeadm init --pod-network-cidr=10.100.0.0/16 -v=5 => 클러스터 구성과정을 자세히 보여줌pod => 도커의 컨테이너 개념으로 쿠버네티스에서 다루는 배포의 최소 단위10.100.0.0/16 => 쿠버네티스가 설치된 이 PC에 존재하는 IP와 상관없이 구성 요소들끼리 통신이 가능하도록 묶는 IP 대역**문서 -create-cluster-kubeadmhttps://kubernetes.io/docs/setup/p.. 더보기
Kubernetes(쿠버네티스) 1 설치 및 활성화 https://sh970901.tistory.com/40 Linux(centOS9) 설정 1(CentOS, Virtural BOX, PuTTy 원격 접속)Virtural BOX 설치 https://www.virtualbox.org/ Virtural BOX 확장팩 설치 https://www.virtualbox.org/wiki/Downloads CentOS9.iso 설치 https://www.centos.org/download/ PuTTY 설치 https://www.putty.org/..sh970901.tistory.com실습 환경은 위에서 포스팅한 CentOS9, VB를 이용하였다.가상머신 필수사항프로세서 : 2개 이상메모리 : 4GB 이상저장소 : 32GB 이상네트워크 : 브릿지 네트워크브릿지 네트워크가.. 더보기

728x90