Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 데이터분석
- 웹 모의해킹
- 파이썬
- AI
- 데이터3법
- 회귀분석
- 웹모의해킹
- vagrant
- 마이데이터
- 코딩테스트
- 도커
- 파이썬 문법
- 머신러닝
- 정보보안
- 개인정보보호
- 백준
- AWS
- 알고리즘
- 클라우드
- 코딩테스트 연습
- 자료형
- XSS 취약점
- 개인정보보호법
- 프로그래머스
- docker
- 데이터 분석
- 함수
- 컴퓨터 구조
- 시저암호
- 코테
Archives
- Today
- Total
찬란하게
웹 개발 HISTORY 본문
초기
- 정적 웹 페이지:
- 초기 웹 개발은 주로 정적인 HTML 페이지로 이루어져 있었습니다.
- 사용자의 요청에 따라 단순히 HTML 문서를 반환하는 방식이었습니다.
- 동적 웹 페이지와 CGI(Common Gateway Interface):
- 정적인 HTML 페이지로는 동적인 컨텐츠를 생성하기 어려워졌습니다.
- CGI는 서버 측에서 동적으로 프로그램을 실행하여 동적인 웹 페이지를 생성하는 방식이었습니다.
- 그러나 CGI의 성능 문제와 복잡성으로 인해 개선이 필요해졌습니다.
JSP(JavaServerPage) 등장
JSP의 등장:
- JSP는 Java 기반의 웹 개발을 위한 기술로 등장했습니다.
- HTML 내에 Java 코드를 삽입하여 동적인 웹 페이지를 생성할 수 있도록 했습니다.
Servlet과 JSP 조합:
- JSP는 주로 사용자 인터페이스(UI)를 구현하고, Servlet은 비즈니스 로직을 처리하는 역할을 수행했습니다.
- 이는 기본적인 MVC 패턴의 아이디어를 가지고 있습니다. Servlet이 컨트롤러의 역할을 수행하고, JSP가 뷰의 역할을 수행했습니다.
// 예시 Servlet 코드
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String name = "World";
request.setAttribute("name", name);
RequestDispatcher dispatcher = request.getRequestDispatcher("/hello.jsp");
dispatcher.forward(request, response);
}
}
<!-- 예시 JSP 코드 -->
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello JSP</title>
</head>
<body>
<h1>Hello, <%= request.getAttribute("name") %>!</h1>
</body>
</html>
스프링의 등장!
- EJB의 복잡성과 Spring의 경량성:
- EJB(Enterprise JavaBeans)는 Java 기반의 기업 애플리케이션을 개발하기 위한 기술이었습니다.
- 그러나 EJB는 복잡하고 무겁다는 평가를 받아왔습니다.
- 이에 대한 대안으로 등장한 것이 Spring 프레임워크입니다.
- Spring의 등장과 IoC, AOP 개념 도입:
- Spring은 IoC(Inversion of Control)와 AOP(Aspect-Oriented Programming) 등의 개념을 도입하여 애플리케이션을 좀 더 간결하고 효율적으로 구성할 수 있도록 했습니다.
- IoC는 객체의 생명주기와 의존성을 Spring 컨테이너가 담당하게끔 변경하였습니다.
- AOP는 횡단 관심사를 모듈화하여 코드의 재사용성과 관리성을 향상시킵니다.
- Spring MVC의 도입:
- Spring 프레임워크는 Spring MVC 모듈을 도입하여 더욱 강력한 웹 애플리케이션 개발을 가능케 했습니다.
- Spring MVC는 기본적인 MVC 패턴을 제공하면서, 효과적인 웹 애플리케이션 개발을 위한 다양한 기능과 구조를 제공합니다.
// Spring MVC 예시 코드
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
String name = "World";
model.addAttribute("name", name);
return "hello";
}
}
<!-- Spring MVC에서의 View (hello.html) -->
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello Spring MVC</title>
</head>
<body>
<h1>Hello, Thymeleaf! <span th:text="${name}"></span></h1>
</body>
</html>
스프링 부트의 등장
- Spring Boot의 등장:
- Spring Boot는 Spring 애플리케이션을 더욱 간편하게 개발할 수 있도록 도입되었습니다.
- 자동 구성, 내장 서버, 간소화된 설정 등의 특징으로 인해 애플리케이션 개발 및 배포가 더 편리해졌습니다.
- Spring Boot와 MVC:
- Spring Boot는 내장된 Tomcat, Jetty, Undertow와 같은 서버를 제공하여 별도의 웹 서버 설정 없이도 간단한 웹 애플리케이션을 개발할 수 있습니다.
- 또한, 간편한 의존성 관리, 자동 구성을 통한 설정 간소화 등이 Spring MVC 개발을 더욱 편리하게 만들었습니다.
// Spring Boot와 Spring MVC 예시 코드
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}