Spring
-
Spring ContainerSpring 2023. 10. 6. 19:58
[Spring은 DI와 IoC를 기반으로 설계된 프레임워크이다] 1. IoC (Inversion of Control)일반적으로 개발자가 객체를 생성하고 필요한 의존성을 연결하지만, IoC는 그 제어권한을 프레임워크(즉, Spring Container)가 가져가는 것이다.즉, 개발자의 객체에 대한 제어 권한을 Spring Container에게 넘겨줬다는 의미로 제어의 역전이라고 표현하는 것이다! 2. DI(Dependency Injection)객체가 필요로 하는 의존성을 외부에서 주입받는 방식이다.Spring은 객체를 만들고, 그 객체가 필요로 하는 의존성을 찾아서 알아서 주입해준다. [스프링 컨테이너] 스프링에서 Bean 들을 관리하는 객체 == 객체들을 관리하는 객체이다 해당 스프링 어플리케이션에 필요..
-
Spring Boot Application 아키텍처Spring 2023. 10. 6. 10:14
[웹 어플리케이션 아키텍쳐] 웹 어플리케이션의 아키텍쳐가 다양할 수 있다는 생각을 가지고 공부를 진행하면 좀 더 유연하게 공부를 진행할 수 있다. 웹서버와 WAS는 독립적인 서버로만 생각 된다.하지만 이는 아키텍쳐를Client - Web Server - WAS - DB로 잡아서 해석하면 그렇게 된다. 하지만 웹서버의 아키텍쳐는 보다 다양하게 설계되어질 수 있다. 1. Client - Web Server - DB 정적인 컨텐츠만 처리하는 서버 (이게 Nginx) 2. Client - WAS - DB WAS내에 Web Server를 포함하는 구조 (이게 Spring Boot)Spring은 WAS 내부에 Web Server가 있는 구조로, WAS가 Web Server를 포함하는 구조로아래부터는 Spring을..
-
Web Server와 Web Application Server(WAS)Spring 2023. 10. 5. 11:36
1. 동적 웹페이지의 탄생 배경과 역사초창기 웹이 출현했을때는 정적(Static)인 웹 페이지들이 많았고 그것들만으로도 충분했다. 하지만 정적 웹 페이지의 모든 내용은 정해져있었기 때문에 각각의 사용자의 요구를 맞출 수 없었고 이로 인해 동적(Dynamic)인 웹페이지를 필요로 하게 되었다. 그래서 등장한 것이 CGI(Common Gateway Interface)였다.CGI는 프로그래밍 언어나 스크립트는 아니었고, 서버에서 수행중인 일반 프로세스 사이에서 정보를 주고 받는 규칙을 의미했다.CGI는 Perl, C, C++등의 언어를 지원하면서 1) 웹 서버를 통해 요청을 받고 2) 실행 결과를 다시 웹 서버를 거쳐 클라이언트의 브라우저로 보낼 수 있는 기능을 가지고 있다. 하지만 CGI 방식의 근본적인 문..
-
WAS 안에서 동작하는 서블릿Spring 2023. 7. 25. 22:37
1. 서블릿이란? Java로 작성된 서버 사이드 프로그램HTTP 요청을 처리하고, HTTP 응답을 생성하는 역할WAS 안에서 사용됨사실 우리가 HttpRequest를 직접 분석하고 파싱해서 써야한다.HttpResponse도 직접 생성하고 데이터 집어넣어서 client한테 보내줘야한다. HTTP 요청 메시지를 개발자가 직접 파싱해서 사용해도 되지만, 매우 불편할 것이다.서블릿은 개발자가 HTTP 요청 메시지를 편리하게 사용할 수 있도록 개발자 대신에 HTTP 요청 메시지를 파싱한다.그리고 그 결과를 HttpServletRequest 객체에 담아서 제공한다. 서블릿이 HTTP Request를 파싱하는 것은 다 알아서 해주니 우리는 그냥 서블릿 내의 비즈니스 로직만 작성해주면 됨. 2. 서블릿 동작과정 클라이..
-
스프링 vs 스프링 부트 vs 스프링 프레임워크Spring 2023. 7. 5. 21:41
https://hstory0208.tistory.com/entry/Spring%EC%8A%A4%ED%94%84%EB%A7%81%EA%B3%BC-Spring-Boot%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8%EA%B0%80-%EB%AD%94%EC%A7%80-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90https://www.elancer.co.kr/blog/detail/158https://velog.io/@minrami1115/Spring-VS-Spring-Boot-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94-%EC%9D%B4%E..