개발지식 먹는 하마 님의 블로그
Java와 Spring 알아보기 본문
[Java]
Java는 High-level의 객체 지향 프로그래밍 언어로 이식성이 높다는 장점이 있다.
Java와 JavaScript는 명칭에 동일하게 Java가 들어가지만 엄연히 다른 언어이다.
Java는 범용 프로그램 언어, JavaScript는 웹에서 실행되는 언어이다.
Java 용어 | 설명 |
JDK | Java 개발 키트 |
JRE | Java 런타임 환경 |
JVM | Java Virtual Machine |
Java 바이트코드 | JRE의 일부인 JVM을 위한 명령어 집합 |
Java API | 기본 객체, 네트워킹 및 보안 기능, XML 생성 및 웹 서비스를 포함하는 광범위한 라이브러리 세트 |
Java 애플리케이션 서버 | 트랜잭션 관리, 보안, 클러스터링, 성능, 가용성, 연결성 및 확장성 등의 기능을 통해 엔터프라이즈 애플리케이션을 위한 안정적인 배포 환경 형성 |
< 엔터프라이즈 애플리케이션 개발에서 Java의 중요성 >
Windows, macOS 및 Linux에서 사용할 수 있는 JDK 다운로드 후 Java로 코딩 시, 컴파일러가 이를 Java 바이트코드로 변환한다. Java 바이트코드는 JVM을 지원하는 모든 시스템에서 수정 없이 실행된다. Java와 JVM, Java API 및 전체 개발 환경으로 구성된 Java 소프트웨어 플랫폼이 만나면 시너지가 엔터프라이즈 소프트웨어 개발에서 강력하고 검증된 시너지를 발휘한다.
< 기술적 이점 >
- 서로 다른 디바이스에서의 상호 운용성
- 모듈식 프로그램과 재사용 가능한 코드로 개발 주기를 단축, 수명 연장 가능
- 플랫폼 확장성
- 새로운 사용 사례에 적응할 수 있는 능력이 높음
[Spring]
< Spring의 특징 >
의존성 주입 Dependency Injection |
객체 간의 의존성을 관리하여 코드의 결합도를 낮추고 테스트 용이성을 높인다. |
제어의 역전 Inversion of Control |
객체의 생성과 생명주기를 컨테이너가 관리한다. |
관점 지향 프로그래밍 Aspect-Oriented Programming |
공통 기능(예: 로깅, 보안)을 모듈화하여 코드의 중복을 줄이고 유지 관리를 용이하게 한다. |
트랜잭션 관리 | 데이터베이스 작업 시 일관성과 무결성을 유지하도록 지원한다. |
유연한 데이터 접근 | JDBC, JPA 등 다양한 데이터 접근 기술을 지원하여 데이터 소스와의 연동을 간편하게 한다. |
모듈화 | 필요한 모듈만 선택하여 사용할 수 있어 경량화된 애플리케이션 개발이 가능하다. |
< 장점 >
- 생산성 향상
- 테스트 용이성 : 의존성 주입과 모듈화를 통해 단위 테스트와 통합 테스트를 쉽게 수행 가능함
- 유연성과 확장성
< 단점 >
- 복잡한 초기 설정
- 높은 학습 곡선
- 성능 오버헤드
< Spring과 Spring boot의 차이 >
Spring boot는 Spring 프레임워크를 기반으로 한 확장 프로젝트로, 복잡한 설정을 자동화하여 빠른 개발을 지원한다.
내장 서버(Tomcat, Jetty 등)를 통해 독립 실행형 애플리케이션을 쉽게 생성할 수 있다.
따라서, 둘의 가장 대표적인 차이는 Spring은 세밀한 제어가 필요하고 Spring boot는 설정이 간편하다는 점이다.
[정보 출처]
https://www.ibm.com/kr-ko/topics/java
Java란 무엇인가요? | IBM
C 및 C++ 언어를 기반으로 하는 Java는 수십억 개의 디바이스에서 실행되는, 널리 사용되는 객체 지향 프로그래밍 언어이자 소프트웨어 플랫폼입니다.
www.ibm.com
https://spring.io/projects/spring-boot
Spring Boot
spring.io
https://spring.io/projects/spring-framework
Spring Framework
The Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform. A key element of Spring is infrastructural support at the application level: Spring focuse
spring.io
'TIL' 카테고리의 다른 글
[사전캠프 7일차] _ 오랜만에 만난 Java (1) | 2025.01.21 |
---|---|
[사전캠프 6일차] _ SQL 실습 버닝! (0) | 2025.01.20 |
[사전캠프 5일차] _ 효율적인 SQL을 위하여 (0) | 2025.01.17 |
[사전캠프 4일차] _ SQL 문법 및 실습 (0) | 2025.01.16 |
[사전캠프 3일차] _ SQL 문법 및 실습 (0) | 2025.01.15 |