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 관련 기술 비교
항목 설명 실행 환경
Java 범용 프로그래밍 언어 JVM
JSP HTML에 Java를 삽입한 웹 페이지 Servlet으로 변환 → JVM
Servlet 요청/응답 처리용 Java 클래스 웹 서버 + JVM
Spring Java 기반 애플리케이션 프레임워크 JVM
Spring Boot Spring 기반 자동 설정 프레임워크 JVM (내장 톰캣)

📚 참고 자료