코드 저장소

공부에는 끝이 없다!

분류 전체보기 79

Gradle 프로젝트 추가하기, IntelliJ 한글 깨짐 해결

해당 카테고리에서는 Spring MVC 강의를 들으며 발생했던 이런 저런 문제점들과 해당 문제점들을 어떻게 해결했는지 정리해 보도록 하겠다.Gradle 프로젝트 추가하기강의를 수강하면서 진행 사항을 기록해 두고자 intelliJ를 Git과 연동하였는데 왜 인지는 모르겠지만 Git 연동 후 gradle "java.lang.NoClassDefFoundError"라는 에러가 발생하며 프로젝트가 정상적으로 실행되지 않는 것을 확인하였다.Build도 되는데 Run만 안되는 상황에서 이게 뭔 상황이지 하고 이것 저것 찾아 보았는데, 다행히 잘 정리된 글을 찾아 해결할 수 있었다.정확한 방법은 아래의 글을 참고하기 바란다.더보기https://timotimo.tistory.com/99 [IntelliJ] Gradle ..

Spring MVC - 멀티 쓰레드

쓰레드란?웹브라우저에서 WAS로 요청이 온다고 생각해보자.요청이 오면 WAS는 Servlet을 호출하여 웹 브라우저와 연결해 줄 것이다.그럼 Servlet은 누가 호출해 줄까?이 애플리케이션 코드를 하나하나 순차적으로 실행해 주는 것을 쓰레드라고 부른다.자바 코딩을 하다보면 가장 처음 보게되는 것이 Main 메서드 인데, 예를 들어 자바 Main 메서드를 처음 실행하면 main이라는 이름의 쓰레드가 실행되게 된다.만약 쓰레드가 없다면 자바 애플리케이션 실행이 불가능하며 쓰레드는 한번에 하나의 코드라인만 수행 가능하기 때문에 동시 처리가 필요하다면 쓰레드를 추가로 생성해야한다.단일 쓰레드만약 단일 요청이 오게 된다면 쓰레드는 하나만 사용하게 될 것이다.과정을 생각해 보면 요청이 들어오기 전까지 쓰레드는 W..

Spring/Spring MVC 2024.05.19

Spring MVC - 서블릿

서블릿이란?서블릿이란 TCP/IP 대기, 소켓 연결, HTTP 요청 메시지 파싱, 메시지 바디 내용 파싱, 저장 프로세스 실행 등 비즈니스 로직 실행을 제외한 여러가지 행위들을 처리할 수 있도록 도와주는 것이다.서블릿의 특징서블릿은 여러가지 특징을 지니는데 위의 사진을 예시로 들면, rulPatterns의 URL이 호출되면(/hello) 서블릿 코드가 실행되게 된다.또한 HTTP 요청 정보를 사용하는 HttpServletRequest와 HTTP 응답 정보를 제공하는 HttpServletResponse가 있다. HTTP 요청이 오면 WAS는 Request, Response  객체를 새로 만들어 서블릿 객체를 호출하며 개발자는 Request 객체나 Response 객체를 이용하여 편리하게 요청 정보나 응답 ..

Spring/Spring MVC 2024.05.16

Spring MVC - Web Server와 Web Application Server

웹 서버 (Web Server)웹서버란 HTTP 기반으로 동작하여 적정 리소스 제공, 기타 부가기능등을 제공하는 서버를 말한다.정적 HTML, CSS, JS, 이미지, 영상 등이 포함된다. 웹 애플리케이션 서버 (WAS - Web Application Server)HTTP 기반으로 동작하며 웹 서버의 기능을 포함하여 프로그램 코드를 실행해서 애플리케이션 로직을 수행하는 서버를 말한다.동적 HTML, HTTP API나 서브릿, JSP, 스프링 MVC를 포함한다. 간단하게 설명하면 웹 서버는 정적 리소스, WAS는 애플리케이션 로직을 담당하는 서버를 말한다.하지만 실제로는 둘의 용어도 경계도 모호하다.웹 서버가 프로그램을 실행하는 기능을 포함하기도 하고 반대로 WAS가 웹 서버의 기능을 제공하기 때문이다.자..

Spring/Spring MVC 2024.05.11

HTTP - 캐시와 조건부 요청(3)

프록시 캐시네트워크는 실제로 굉장히 멀리 떨어진 곳의 데이터를 받을 수 있게 해준다.하지만 실제로 물리적인 거리가 멀어지면 전송속도가 상당히 떨어지기 때문에 이런 문제를 방지하고자 프록시 캐시 서버라는 것을 사용하게 되었다.프록시 캐시 서버란 브라우저가 원서버에 바로 접근하는 것이 아니라 프록시 캐시 서버로 들어오게 하여 응답 속도를 높이는 것이다.CDN Service라고도 부르는 이 방법은 원 서버에 있는 데이터를 첫번째 요청이 들어오면 프록시 캐시 서버에 저장해 두고 다음 요청이 들어올 때는 프록시 캐시 서버에서 응답을 보내게 하여 전송 속도를 높이는 방법이다.이때 프록시 캐시 서버에 저장되는 것을 public 캐시라고 부르고 브라우저에 저장되는 것을 private 캐시라고 부른다.쉽게 설명하면 공용..

카테고리 없음 2024.05.06

HTTP - 캐시와 조건부 요청(2)

검증 헤더와 조건부 요청 헤더이전에 알아본 검증헤더와 조건부 요청 헤더를 정리하면 다음과 같다.검증 헤더캐시 데이터와 서버 데이터가 같은지 검증하는 데이터Last-Modified, ETag조건부 요청 헤더검증 헤더로 조건에 따른 분기If-Modified-Sine: Last-Modified 사용If-None-Match: ETag 사용조건이 만족하면 200 OK, 만족하지 않으면 304 Not Modified로 응답하지만 Last-Modified, If-Modified-Since에는 단점이 존재한다.1초 미만(0.x초) 단위로 캐시 조정이 불가능 하고 날짜 기반의 로직을 사용하기 때문에 데이터를 수정해서 날짜가 다르지만, 같은 데이터를 수정해서 데이터 결과가 똑같은 경우(Ex.A > B > A로 원점 복귀 ..

카테고리 없음 2024.05.05

HTTP - 캐시와 조건부 요청(1)

캐시란?1MB 정도의 크기를 하진 이미지 파일을 요청한다고 생각해보자.캐시가 없다면 HTTP 헤더라 0.1MB 바디가 1.0MB로 총 1.1MB의 응답이 전송되었다.그런데 같은 요청을 똑같이 반복해서 보낼때 또다시 1.1MB의 응답 메시지를 만들어 서버가 전송하게 될 것이다.이런 경우 데이터가 변경되지 않아도 계속 네트워크를 통해서 데이터를 다운로드 받아야 한다.인터넷 네트워크는 매우 느리고 비싸고 브라우저 로딩 속도가 느리기 때문에 사용자가 느린 환경에서 작업을 하게 될 것이다. 그럼 캐시를 적용하면 어떻게 될까?브라우저가 서버로 이미지를 요청하면 cache-control 헤더를 통해 캐시를 제어할 수 있다.max-age옵션을 이용하면 해당 캐시의 라이프 사이클을 제어 할 수 있는데, 예를들어 cach..

HTTP 2024.05.01

HTTP - HTTP 일반헤더와 쿠키

쿠키쿠키 사용시 2개의 헤더를 사용하게 된다. Set-Cookie : 서버에서 클라이언트로 쿠키 전달(응답)Cookie : 클라이언트가 서버에서 받은 쿠키를 저장하고, HTTP 요청시 서버로 전달우선 쿠키가 무엇이고 어떤 역할을 하는지 알아보자.만약 홍길동이라는 이름의 유저가 로그인을 한다고 가정해보자.1.쿠키를 사용하지 않는 경우웹 브라우저는 POST 요청으로 user에 대한 로그인 정보를 보내고 서버는 로그인에 대한 응답을 주게 될 것이다.쿠키를 사용하지 않는 경우, 이미 로그인이 된 상태에서 다시한번 GET 요청으로 Index 페이지로 접근한다고 가정해보자.서버에서는 로그인 된 유저에 대한 정보가 없기 때문에 해당 요청이 홍길동이 보낸것인지 알수가 없다.HTTP는 무상태 프로토콜이기 때문에 클라이언..

HTTP 2024.04.30

SaaS, PaaS, IaaS의 의미와 차이

클라우드의 시대에 접어들면서 IT에서도 여러 용어들이 새롭게 만들어졌다. 그 중에서도 가장 많이 들어본 것이 Saas(Software as a Service)라는 용어이다. 아마 IT쪽에서 일한다면 뭔지는 몰라도 용어 자체는 한번 쯤 들어보았을 것이다. 그런데 정작 SaaS, PaaS, IaaS가 정확하게 어떤 차이를 가졌고 어떤 의미인지를 모르다보니 이번 기회에 한번 정리해 보려 한다. SaaS, Paas, IaaS란? SaaS란 Software as a Service의 줄임말로 굳이 번역을 하자면 서비스형 소프트웨어라는 의미가 되겠다. 마찮가지로 각각 PaaS는 Platform as a Service, IaaS는 infrastructure as a Service의 줄임말이다. as a Service ..

IT용어 2024.02.07

HTTP - HTTP 일반 헤더(3)

HTTP 헤더의 일반 정보 HTTP 헤더에는 단순 정보성의 필드가 존재한다. 대표적인 일반 정보 필드를 살펴보자. From : 유저 에이전트의 이메일 정보 일반적으로 잘 사용되지는 않지만 검색 엔진 같은 곳에서는 주로 사용되기도 한다. 요청에서 사용된다. Referer : 이전 웹 페이지 주소 현재 요청된 페이지의 이전 웹 페이지 주소를 말한다. 가장 많이 사용되는 일반 정보 필드 중 하나이며 Referer를 사용하여 유입 경로 분석이 가능하다. A > B로 이동하는 경우 B로 요청을 할 때, Referer: A를 포함하여 요청하는 방식으로 사용되며 From과 마찮가지로 요청에서 사용된다. User-Agent : 유저 에이전트 애플리케이션 정보 클라이언트의 애플리케이션 정보(웹 브라우저 정보 등등..)를..

HTTP 2024.01.23