전체 글
-
서블렛(Servlet)이란?Spring Framework 2022. 1. 9. 00:01
서블렛(Servlet)이란? 자바를 지원하는 웹이나 애플리케이션에서 실행되는 자바 프로그램으로 웹 서버에서 얻은 요청을 처리하고 응답을 생성하여 보냅니다. 즉 서버측에서 작동하며, 클라이언트가 보내는 요청을 처리하여 다시 클라이언트에게 전송하는 자바 프로그램입니다. 서블릿을 사용하는 이유 일반적으로 웹 서버는 정적인 페이지만을 제공합니다. 정적인 페이지란 100명의 사용자가 있으면 100명의 사용자가 모두 같은 페이지를 보게 됩니다. 하지만 동적인 페이지를 제공하기 위해서 웹서버는 다른 곳에 도움을 요청하여 동적인 페이지를 작성해야 합니다. 동적인 페이지란 100명의 사용자가 있으면 100명의 사용자가 다른 페이지를 볼 수 있습니다. 예를 들자면 평소에 우리가 로그인을 했을 때 "~~ 님 반갑습니다"라는..
-
HTTP 헤더 - 캐시와 조건부 요청 헤더CS/네트워크 2022. 1. 8. 00:01
캐시와 조건부 요청 헤더에 대해 알아보기 위해 캐시에 대해서 먼저 알아보겠습니다 캐시란(Cache)? 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킵니다. 반복적으로 동일한 결과를 돌려주는 경우나 빠른 속도로 데이터에 접근하기 위해 사용합니다. 캐시를 왜 사용할까요? 웹 브라우저가 서버에게 1MB짜리 이미지를 요청한다고 가정하겠습니다. 이때 네트워크에서 HTTP 헤더의 전송 비용은 0.1MB라고 가정하겠습니다. 캐시를 사용하지 않을 때 사용자가 브라우저를 새로고침 하거나 접속할 때마다 1MB의 이미지를 계속 요청해야 합니다. 그렇게 되면 전송 비용이 HTTP 헤더 + HTTP 바디 = 1.1MB가 계속 요청됩니다. 만약에 클라이언트가 서버에게 이미지를 100번 요청한다면 1.1MB * ..
-
템플릿엔진이란?Spring Framework 2022. 1. 7. 00:01
이전에 Spring Initailzr를 통하여 스프링 부트를 시작할 때 Dependencies 부분에 Thymeleaf라는 템플릿 엔진을 추가하여 사용했습니다. 또한 동적인 페이지를 만들기 위해 Thymeleaf라는 템플릿 엔진을 사용하기 위해 아래와 같은 HTML을 만들었습니다. 안녕하세요. 손님 그러면 템플릿엔진이란 무엇일까요? 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어(또는 소프트웨어 컴포넌트)를 말합니다. 그중 웹 템플릿엔진은 웹 템플릿 양식인 View Code(HTML)와 특정 데이터 모델인 Data Logic Code(DB connection 등)을 합성하여 웹 콘텐츠를 출력하는 소프트웨어를 말합니다. 위의 HTML을 예시로 들면 data 부분..
-
[Java] 상속(Inheritance)이란?Java 2022. 1. 6. 00:01
상속(Inheritance)이란? 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나입니다. 기본이 되는 클래스를 확장하여 새로운 클래스를 정의하는 것을 말합니다. Java의 클래스는 변수와 메서드로 구성되기 때문에 상속이란 기본이 되는 클래스에서 변수와 메서드를 물려받고 여기에 자식 클래스에서만 가지는 추가적인 특징을 추가합니다. 기본이 되는 클래스는 부모 클래스, 기본 클래스, 상위 클래스 등으로 불립니다. 상속된 클래스는 자식 클래스, 확장된 클래스, 파생 클래스, 하위 클래스로 불립니다. 여기서는 부모 클래스와 자식 클래스로 부르도록 하겠습니다. 다음 그림은 자바의 상속을 표현한 그림입니다. 그러면 상속을 왜 사용할까요? 기존의 작성된 클래스의 재활용하여 효율적이다. 자식 클래스 설계 시 중복되..
-
[Java] 오버로딩(Overloading)이란?Java 2022. 1. 5. 00:01
오버로드(Overload)란? Overload를 번역하면 초과 적재라는 뜻을 가지고 있는데 자바에서 오버로드란 어떤 의미로 사용되는 걸까요? 변수와 메서드의 차이점을 보면서 알아보겠습니다. 보통 변수와 달리 하나의 클래스에 동일한 이름의 메서드를 여러 개 정의할 수 있습니다. 하지만 변수 이름이 동일한 경우는 허용하지 않습니다. 변수의 이름이 동일한 경우 public class Employee { int age; String name; char grade; String grade; } char grade와 String grade는 데이터 타입이 다르지만 변수명이 동일하여 에러가 발생합니다. 클래스 안에 동일한 이름의 변수를 사용했을 때, 프로그램이 모호해지기 때문입니다. 메서드의 이름이 동일한 경우 pu..
-
MVC 패턴이란? (스프링 MVC)Spring Framework 2022. 1. 4. 00:01
이전에 포스팅했던 Spring Framework의 특징 중 하나인 MVC 패턴에 대하여 알아보겠습니다. https://junuuu.tistory.com/35?category=968779 Spring Framework 특징 스프링 프레임워크(Spring Framework)의 특징에 대해 알아보겠습니다. 스프링프레임워크(Spring Framework)란? https://junuuu.tistory.com/17?category=968779 Spring Framework의 유래 Spring Framework란? 자바.. junuuu.tistory.com MVC 패턴이란? Model, View, controller의 약자로 애플리케이션을 세 가지의 역할로 구분하는 디자인 패턴입니다. 디자인 패턴이란? 프로젝트를 개..
-
웹 스토리지란?CS/네트워크 2022. 1. 3. 00:01
웹 스토리지(Web Storage)란? 데이터베이스(DB)나 서버 또는 클라우드 플랫폼이 아닌 사용자의 브라우저 내에 데이터를 저장하는 기술입니다. HTML5 이전에는 데이터를 쿠키에 저장되어야 했습니다. 웹 스토리지가 등장한 이후에 쿠키 보다 많은 저장 공간을 사용할 수 있으며 정보가 서버로 전송되지 않습니다. 웹 스토리지 객체 HTML 웹 스토리지는 클라이언트에 데이터를 저장하기 위해 두 가지 객체를 제공합니다. 객체를 통하여 브라우저 내에 키-값 쌍을 저장할 수 있도록 합니다. 1. 로컬 스토리지(localStorage) 특정 웹사이트를 새탭이나 새창으로 띄워도 동일한 데이터를 공유합니다. 즉 브라우저를 종료한 후 실행시켜도 데이터가 남아있습니다. 직접 브라우저의 캐시 삭제 및 로컬 스토리지 초기화..
-
HTTP 헤더 - 일반 헤더CS/네트워크 2022. 1. 2. 14:32
헤더의 종류가 많아서 일반적으로 자주 사용하는 헤더와 캐시와 조건부 요청과 관련된 헤더로 구별하여 작성하겠습니다. 오늘은 일반 헤더에 대해 작성하겠습니다. HTTP 헤더란? HTTP 전송에 필요한 모든 부가정보를 헤더에 담습니다. 메시지 바디의 내용, 메시지 바디의 크기, 압축, 인증, 요청 클라이언트, 서버 정보, 캐시 관리 정보 등 매우 다양하게 이루어집니다. HTTP 헤더의 구조 header-field or field-name ":" OWS field-value OWS (OWS는 띄어쓰기를 허용한다는 의미입니다.) HTTP 헤더 예시 Host: www.google.com Content-Type:text/html;charset=UTF=8 Content-Length: 3423 표현 헤더 표현이란 요청이..