
서버 개발을 쉽게 해줄수 있는 프레임 워크 프레임 워크 : Spring Boot

1. Spring Boot
1) Spring Boot 정의
Spring Boot는 Java Spring Framework를 기반으로 한 서브 프레임워크로,
웹 애플리케이션과 마이크로서비스를 더 쉽고 빠르게 개발할 수 있도록 설계된 도구입니다. 아래는 Spring Boot의 주요 특징과 장점입니다:
2) Spring Boot의 주요 특징
(1) 자동 설정(Auto-Configuration)
복잡한 설정 파일 없이, 필요한 기능을 자동으로 설정합니다.
예: @EnableAutoConfiguration 어노테이션을 통해 REST API 개발 시 필요한 Spring MVC와 내장 서버를 자동 구성.
(2) 내장 서버(Embedded Server)
Tomcat, Jetty, Undertow와 같은 웹 서버를 내장하여 별도의 WAS(Web Application Server) 설치 없이 애플리케이션 행 가능.
(2) java -jar 명령으로 독립 실행형 애플리케이션 실행 가능.
Starter Dependencies
(3) 다양한 시작 종속성(Starters)을 제공하여 필요한 라이브러리를 쉽게 추가하고 구성.
예: spring-boot-starter-web, spring-boot-starter-security 등.
(4) 운영 기능 통합
Actuator를 통해 애플리케이션 상태 모니터링, 로깅, 설정 관리 등 운영에 필요한 기능 제공.
(5) 간편한 배포 및 DevOps 친화성
경량화된 JAR 파일로 패키징되어 Docker 및 Kubernetes와 같은 컨테이너 환경에서 쉽게 배포 가능.
3) Spring Boot의 장점
(1) 빠른 개발 속도
초기 설정과 개발 시간을 단축하며, 프로토타입 개발에 적합24.
(2) 유연성과 확장성
다양한 모듈과 스타터를 조합하여 유연한 애플리케이션 개발 가능.
(3) 요구사항 변화에 따라 확장 용이.
(4) 초보자 친화적
(5) XML 기반 설정 없이 간단한 어노테이션과 기본값으로 시작 가능.
(6) 스프링 프레임워크의 복잡성을 줄여 사용 편의성 제공.
(7) Spring Boot는 Spring Framework의 강력한 기능을 유지하면서도 개발 생산성을 극대화하고,
클라우드 및 마이크로서비스 환경에 최적화된 도구로 널리 사용됩니다.
Spring Boot 프레임 워크 프로그램을 사용하려면 기본적으로 JAVA를 알아야 합니다.

2. JAVA
1) java의 정의
자바(Java)는 1995년 썬 마이크로시스템즈(Sun Microsystems)의 제임스 고슬링(James Gosling)과 연구진이 개발한 객체 지향 프로그래밍 언어로, 현재는 웹 애플리케이션, 모바일 앱, 서버 개발 등 다양한 분야에서 널리 사용되고 있습니다.
2) java의 특징
(1) 운영체제 독립성 (Platform Independent)
자바는 "Write Once, Run Anywhere"라는 철학을 따릅니다.
자바 가상 머신(JVM)을 통해 운영체제에 관계없이 실행 가능하며, 플랫폼 독립성을 제공합니다.
(2) 객체 지향 언어 (Object-Oriented Programming)
자바는 상속(Inheritance), 캡슐화(Encapsulation), 다형성(Polymorphism) 등 객체 지향 프로그래밍(OOP)의 모든 특징을 지원합니다.
모든 것이 객체로 구성되며, 코드 재사용성과 유지보수성이 뛰어납니다.
(3) 자동 메모리 관리 (Garbage Collection)
가비지 컬렉터(GC)가 불필요한 객체를 자동으로 제거하여 메모리를 효율적으로 관리합니다.
프로그래머가 직접 메모리를 관리할 필요가 없어 안정성과 생산성을 높입니다.
(4) 멀티스레드 지원 (Multithreading)
자바는 멀티스레딩을 기본적으로 지원하여 병렬 처리를 쉽게 구현할 수 있습니다.
시스템과 관계없이 멀티스레드를 사용할 수 있는 API를 제공합니다.
(5) 안정성과 보안성 (Robust and Secure)
포인터를 제거하고, 강력한 자료형 검사 및 예외 처리를 통해 안정성을 보장합니다.
JVM에서 실행되며, 클래스 파일의 바이러스나 악성 코드 실행을 방지하는 보안 메커니즘을 제공합니다.
(6) 동적 로딩 (Dynamic Loading)
실행 시 필요한 클래스만 동적으로 로드하여 메모리 사용을 최적화합니다.
모듈 간의 독립성을 유지하여 유지보수를 용이하게 합니다.
(7) 고성능 (High Performance)
바이트코드 형태로 컴파일된 프로그램이 JVM에서 실행되며, JIT(Just-In-Time) 컴파일러를 통해 성능을 최적화합니다.
(8) 네트워크와 분산 처리 지원
다양한 네트워크 관련 API를 제공하여 분산 환경에서도 쉽게 애플리케이션을 개발할 수 있습니다.
3) 자바의 장점
(1) 플랫폼 독립성: 자바는 "한 번 작성하면 어디서나 실행"할 수 있습니다.
자바 가상 머신(JVM)을 통해 다양한 운영 체제에서 동일하게 작동합니다.
(2) 객체 지향 언어: 모듈화된 프로그램과 재사용 가능한 코드를 작성할 수 있어 유지보수가 용이합니다.
(3) 간단하고 배우기 쉬움: 자바는 C와 C++의 복잡한 기능을 제거하여 코드 이해와 실행이 쉽습니다.
(4) 안전성: 보안 기능이 강화되어 있어 안전한 프로그래밍이 가능합니다.
(5) 자동 메모리 관리: 가비지 컬렉션을 통해 메모리를 자동으로 관리합니다.
(6) 멀티스레딩 지원: 동시에 여러 작업을 처리할 수 있는 기능을 제공합니다.
(7) 풍부한 표준 라이브러리: 다양한 기능을 쉽게 구현할 수 있는 라이브러리를 제공합니다.
(8) 대규모 커뮤니티 지원: 많은 개발자들이 사용하고 있어 문제 해결과 정보 공유가 용이합니다.
4) 자바의 활용분야
(1) 웹 애플리케이션 개발: 자바는 서버 측 프로그래밍에 강력한 기능을 제공하여 대규모 웹 시스템 개발에 적합합니다.
(2) 모바일 앱 개발: 안드로이드 앱 개발에 널리 사용됩니다.
(3) 게임 개발: 많은 인기 모바일, 컴퓨터, 비디오 게임이 자바로 개발되며, 최신 기술을 통합한 게임에도 사용됩니다.
(4) 클라우드 컴퓨팅: 자바의 "Write Once, Run Anywhere" 특성으로 인해 분산 클라우드 기반 애플리케이션 개발에 적합합니다.
(5) 빅데이터 처리: 복잡하고 대량의 실시간 데이터를 처리하는 엔진 개발에 사용됩니다.
(6) 인공지능 및 머신러닝: 안정성과 속도를 갖춘 자바는 자연어 처리, 딥러닝 등 AI 애플리케이션 개발에 적합합니다.
(7) 사물인터넷(IoT): 엣지 디바이스의 센서 및 하드웨어 프로그래밍에 활용됩니다.
(8) 임베디드 시스템: 다양한 임베디드 기기의 소프트웨어 개발에 사용됩니다.
(9) 자바의 객체 지향적 특성, 플랫폼 독립성, 강력한 보안 기능 등으로 인해 이러한 다양한 분야에서 널리 사용되고 있습니다.
'API > 이론' 카테고리의 다른 글
59. [ JAVA ] SpringData JPA로 Repository 인터페이스 생성 (0) | 2025.01.12 |
---|---|
58. [ JAVA ] SpringBoot 에서 JWT적용 및 구현 (0) | 2025.01.12 |
52. [ JAVA ] Spring Boot : 데이터 유효성 검사 적용방법(validation) (0) | 2025.01.10 |
43. [ JAVA ] JWT(Json Web Token)(보안) 정의 (0) | 2024.12.30 |
37. [ JAVA ] 서버 개발 환경 설정 (1) | 2024.12.18 |