Project - spring initializr 정복하기(1)
Language - spring initializr 정복하기(2)Language 1. JavaJava는 1995년에 발표된 객체지향 프로그래밍 언어로, 플랫폼 독립성과 강력한 생태계를 기반으로 한 대표적인 언어입니다.특징정적 타입 언어: 모든
jwinjection.tistory.com
Spring Boot - spring initializr 정복하기(3)
Spring Boot1. SNAPSHOT이 없는 버전예: 3.4.0, 3.3.6특징릴리즈(Release) 버전: 최종적으로 안정화된 버전이며, 정식으로 배포된 상태.변경되지 않음: 한 번 배포되면 해당 버전 번호에 해당하는 코드는
jwinjection.tistory.com
Project Metadata - spring initializr 정복하기(4)
Project Metadata1. Group (그룹 ID)예: com.example의미:프로젝트가 속한 그룹(조직, 회사 등)을 정의하며, 일반적으로 역방향 도메인 이름 형식을 사용.Maven 또는 Gradle에서 프로젝트를 고유하게 식별하는
jwinjection.tistory.com
Language
1. Java
Java는 1995년에 발표된 객체지향 프로그래밍 언어로, 플랫폼 독립성과 강력한 생태계를 기반으로 한 대표적인 언어입니다.
특징
- 정적 타입 언어: 모든 변수와 메서드의 타입이 컴파일 시점에 결정됨.
- 객체지향 프로그래밍(OOP): 클래스를 기반으로 한 프로그래밍 패러다임을 채택.
- 강력한 생태계: Spring, Hibernate와 같은 프레임워크와 라이브러리가 풍부.
- 보편성: 서버, 안드로이드 앱, 데스크탑 애플리케이션, 임베디드 시스템 등 다양한 분야에서 사용.
- 안전성: 컴파일러가 엄격한 타입 검사를 통해 오류를 최소화.
장점
- 안정적이고 보안성이 높음.
- 대규모 애플리케이션 개발에 적합.
- 방대한 커뮤니티와 학습 자료.
단점
- 문법이 장황함 (Boilerplate 코드가 많음).
- 최신 언어에 비해 생산성이 낮을 수 있음.
예제
public class Main {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}
2. Kotlin
Kotlin은 JetBrains가 개발한 언어로, Java의 대안으로 만들어졌으며 2017년부터 안드로이드 공식 프로그래밍 언어로 채택되었습니다.
특징
- 정적 타입 언어: Java와 동일하게 컴파일 시 타입을 확인하지만 더 간결한 문법 제공.
- Null 안전성: NullPointerException 방지를 위한 nullable 타입 시스템 제공.
- 함수형 프로그래밍 지원: 고차 함수, 람다 표현식, 익명 함수 등을 지원.
- 상호운용성: Java 코드와 100% 호환 가능.
- 모던한 문법: 데이터 클래스, 확장 함수, 기본 매개변수와 같은 현대적 프로그래밍 기능 제공.
장점
- 간결하고 읽기 쉬운 코드.
- 생산성 향상.
- JVM, JavaScript, Native 등 다양한 플랫폼 지원.
- NullPointerException(NPE) 문제를 크게 줄임.
단점
- Java에 비해 상대적으로 작은 커뮤니티.
- 특정 Kotlin 기능은 초보자에게 복잡할 수 있음.
예제
fun main() {
println("Hello, Kotlin!")
}
3. Groovy
Groovy는 동적 타입 기반의 스크립트 언어로, Java 문법을 확장하고 간소화한 언어입니다. 특히 Gradle과 같은 빌드 도구에서 널리 사용됩니다.
특징
- 동적 및 정적 타입 지원: 필요에 따라 타입 선언을 생략하거나 명시적으로 지정 가능.
- Java와의 호환성: Groovy 코드는 대부분 Java 코드처럼 실행 가능.
- DSL(Domain Specific Language) 친화적: Gradle, Spock과 같은 도구에서 사용되는 선언적 문법을 쉽게 작성 가능.
- 간소화된 문법: 반복적인 Java 코드를 줄이고 생산성을 높임.
- 스크립트 언어로서의 유연성: 빠른 프로토타입 작성과 테스트에 유용.
장점
- Java의 모든 기능을 상속받으면서도 간결한 문법.
- 동적 프로그래밍 및 스크립팅 작업에 적합.
- Gradle, Jenkins와 같은 도구에서의 폭넓은 활용.
단점
- 동적 타입 사용 시 컴파일 시점의 오류 발견이 어려울 수 있음.
- Kotlin과 비교했을 때 현대적인 기능이 부족.
예제
println "Hello, Groovy!"
비교 요약
특징 | Java | Kotlin | Groovy |
타입 시스템 | 정적 타입 | 정적 타입 + Null 안전성 | 정적 + 동적 타입 |
문법 간결성 | 장황함 | 매우 간결 | 간결 |
Null 처리 | NullPointerException 위험 존재 | Null 안전성 지원 | NullPointerException 위험 존재 |
생태계 | 가장 풍부함 | Java 생태계에 의존 | Java 생태계에 의존 |
러닝 커브 | 낮음 | 중간 | 낮음 |
사용 사례 | 대규모 애플리케이션, 서버 등 | 안드로이드, 서버, 멀티플랫폼 | 빌드 스크립트, DSL, 스크립팅 |
선택 가이드
- Java: 안정성과 보편성을 중요시하는 대규모 프로젝트.
- Kotlin: 모던한 문법과 생산성이 중요한 경우, 특히 안드로이드 개발.
- Groovy: Gradle 빌드 스크립트 작성이나 스크립팅 작업에 적합.
세 언어는 각각 JVM 기반이라는 공통점을 가지고 있지만, 프로젝트의 요구 사항에 따라 선택하면 됩니다.
'웹 개발 > 🍃 SpringBoot' 카테고리의 다른 글
Project Metadata - spring initializr 정복하기(4) (1) | 2024.12.17 |
---|---|
Spring Boot - spring initializr 정복하기(3) (0) | 2024.12.17 |
Project - spring initializr 정복하기(1) (0) | 2024.12.17 |
스프링부트 동작방식 (0) | 2024.10.23 |
REST API (0) | 2024.10.23 |