Post

내일배움캠프 사전캠프 JAVA 걷기반

🚀 JAVA

JAVA 란?

Java는 범용 프로그래밍 언어로, 1995년에 Sun Microsystems(현재 Oracle)에 의해 처음 출시되었습니다. 객체 지향 프로그래밍(OOP) 언어이며, 플랫폼 독립성, 강력한 보안성, 풍부한 라이브러리 등을 갖춘 특징 덕분에 전 세계적으로 널리 사용되고 있습니다.

JAVA 주요 특징

  1. 플랫폼 독립성 (Write Once, Run Anywhere)
    • Java는 JVM(Java Virtual Machine) 위에서 실행되기 때문에, 어떤 운영체제에서도 같은 Java 프로그램을 실행할 수 있습니다.
    • 즉, 한 번 작성한 코드는 Windows, macOS, Linux 등 어떤 환경에서도 실행 가능.
  2. 객체 지향 프로그래밍 (Object-Oriented Programming)
    • Java는 객체(클래스)를 중심으로 설계되며, 재사용성과 유지보수가 뛰어남.
  3. 풍부한 라이브러리와 API
    • 다양한 기능을 지원하는 표준 라이브러리와 프레임워크들이 잘 갖추어져 있음 (예: java.util, java.io, Spring 등).
  4. 자동 메모리 관리 (Garbage Collection)
    • 프로그래머가 직접 메모리를 해제하지 않아도 되며, JVM이 자동으로 불필요한 메모리를 정리함.
  5. 멀티스레딩 지원
    • 동시에 여러 작업을 수행할 수 있는 기능이 내장되어 있어 복잡한 애플리케이션 구현에 유리함.
  6. 보안
    • Java는 강력한 보안 모델을 가지고 있어 네트워크 환경에서 안전하게 실행될 수 있음.

🚀 Spring

Spring 프레임워크란?

Spring은 Java 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로, 주로 웹 애플리케이션 및 서버 개발에 사용됩니다.

Spring 장점

  • 높은 확장성과 유연성
  • 객체 지향 설계 철학에 충실
  • 다양한 모듈과 생태계 제공 (Spring MVC, Spring Data, Spring Security 등)
  • 테스트 용이 (DI 기반 구조로 단위 테스트 수월함)
  • 커뮤니티와 자료가 풍부함

Spring 단점

  • 초기 설정 복잡 (XML 또는 Java Config 설정이 많음)
  • 러닝 커브가 있음 (DI, AOP 등 개념 학습 필요)
  • 설정 관리가 어려움 (애플리케이션이 커질수록)

🚀 Spring Boot

Spring Boot 란?

Spring Boot는 Spring 프레임워크를 더 쉽게 사용하도록 만든 프레임워크입니다.

Spring의 복잡한 설정 문제를 해결하고, 빠르게 애플리케이션을 개발할 수 있도록 도와줍니다.

Spring Boot 특징

특징설명
자동 설정 (Auto Configuration)대부분의 설정을 자동으로 구성해줌
내장 서버 제공Tomcat, Jetty 등을 내장해 바로 실행 가능 (war → jar)
간단한 의존성 관리spring-boot-starter-* 의존성으로 필요한 기능 쉽게 추가
실행 가능한 JAR 파일java -jar 명령으로 애플리케이션 실행
Production-readyActuator, metrics, 모니터링 기능 내장

Spring vs Spring Boot 차이점

항목SpringSpring Boot
설정 방식복잡한 XML, Java 설정 필요대부분 자동 설정
서버 설정외부 WAS 필요내장 Tomcat 사용 가능
프로젝트 시작복잡한 초기 설정 필요Spring Initializr로 빠르게 시작 가능
배포WAR 파일로 배포JAR 파일로 배포 가능
목표유연하고 확장성 있는 프레임워크 제공빠른 개발, 설정 간소화

결론

SpringSpring Boot
강력하고 유연한 프레임워크빠르고 쉽게 Spring을 쓸 수 있도록 개선된 도구
대규모 프로젝트에서 유리초기 개발 속도 빠름, 스타트업/소규모 서비스에 적합