Java
기술노트
☕ Java, JSP, Servlet, Spring, Spring Boot 개요
🧱 Java란?
- Java는 플랫폼 독립적인 객체 지향 프로그래밍 언어입니다.
- 한 번 작성하면, 어느 운영체제에서도 실행 가능한 "Write Once, Run Anywhere" 철학을 따릅니다.
- Java로 만든 프로그램은 컴파일 후 바이트코드(.class)로 변환되어 JVM(Java Virtual Machine) 위에서 실행됩니다.
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
🖥 JSP란?
- JSP(JavaServer Pages)는 HTML에 Java 코드를 삽입할 수 있는 기술입니다.
- 웹 페이지 동적 생성을 위해 사용되며, 최초 요청 시 Servlet으로 변환되어 컴파일됩니다.
- 주로 프론트엔드 UI를 빠르게 구성할 때 사용됩니다.
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<html>
<body>
<h2>안녕하세요, JSP입니다!</h2>
<%
String name = "기술노트";
out.println("환영합니다, " + name + "님!");
%>
</body>
</html>
🔄 Servlet이란?
- Servlet은 Java 언어로 작성된 서버 사이드 프로그램입니다.
- 클라이언트의 요청(request)을 받아 처리하고, 응답(response)을 생성합니다.
- JSP는 내부적으로 Servlet으로 변환되어 실행됩니다.
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
PrintWriter out = res.getWriter();
out.println("<h2>서블릿에서 응답합니다!</h2>");
}
}
🌱 Spring이란?
- Spring Framework는 자바 애플리케이션 개발을 위한 오픈소스 프레임워크입니다.
- DI(의존성 주입), AOP(관점 지향), MVC 구조 등을 제공하여 구조적이고 확장성 높은 코드를 작성할 수 있습니다.
- Servlet을 직접 다루지 않고, 추상화된 Controller, Service 등의 개념을 통해 개발을 단순화합니다.
// Spring Controller 예제
@Controller
public class HelloController {
@GetMapping("/hello")
public String hello(Model model) {
model.addAttribute("msg", "Hello, Spring!");
return "hello";
}
}
🚀 Spring Boot란?
- Spring Boot는 Spring을 더 쉽게 사용하도록 도와주는 스타터 프레임워크입니다.
- 복잡한 설정 없이도 바로 실행 가능한 독립형 애플리케이션을 만들 수 있습니다.
- 내장 Tomcat 서버와 자동 설정(Auto Configuration)을 제공합니다.
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
📊 비교 요약
항목 | 설명 | 실행 환경 |
---|---|---|
Java | 범용 프로그래밍 언어 | JVM |
JSP | HTML에 Java를 삽입한 웹 페이지 | Servlet으로 변환 → JVM |
Servlet | 요청/응답 처리용 Java 클래스 | 웹 서버 + JVM |
Spring | Java 기반 애플리케이션 프레임워크 | JVM |
Spring Boot | Spring 기반 자동 설정 프레임워크 | JVM (내장 톰캣) |