웹 개발/🍃 SpringBoot

Language - spring initializr 정복하기(2)

2024. 12. 17. 09:53
목차
  1. Language
  2. 1. Java
  3. 2. Kotlin
  4. 3. Groovy
  5. 비교 요약
  6. 선택 가이드
 

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)  (1) 2024.12.17
Project - spring initializr 정복하기(1)  (2) 2024.12.17
스프링부트 동작방식  (0) 2024.10.23
REST API  (0) 2024.10.23
  1. Language
  2. 1. Java
  3. 2. Kotlin
  4. 3. Groovy
  5. 비교 요약
  6. 선택 가이드
'웹 개발/🍃 SpringBoot' 카테고리의 다른 글
  • Project Metadata - spring initializr 정복하기(4)
  • Spring Boot - spring initializr 정복하기(3)
  • Project - spring initializr 정복하기(1)
  • 스프링부트 동작방식
이재원
이재원
이재원
깃든블로그
이재원
유튜브
깃허브
전체
오늘
어제
글쓰기 관리
  • 분류 전체보기 (462)
    • WORK (11)
      • ✍🏻 기록 (8)
      • PLC (1)
    • DevOps (31)
      • 🛠️ CICD (9)
      • 🐳 Docker & Kubernetes (13)
      • 📡 AWS (3)
      • 🌌 Git (6)
    • 웹 개발 (199)
      • 🖥️ HTML&CSS (11)
      • 🌐 JavaScript (39)
      • 🍃 SpringBoot (51)
      • 🎆 JSP (15)
      • 🐍 Python (16)
      • ⚛️ React (16)
      • #️⃣ TypeScript (15)
      • 🧊 ThreeJS (13)
      • 🟩 Node.js (16)
      • 🚨 Error Log (7)
    • 서버&백엔드 (104)
      • 🔥 JAVA (53)
      • 🗃️ DataBase (22)
      • 🐧 Linux (22)
      • 🖥️ Windows (7)
    • AI (7)
      • 🤖 딥러닝 (6)
      • LLM (1)
    • 앱 개발 (1)
      • 📱 Flutter (1)
      • ReactNative (0)
    • 컴퓨터 과학 (73)
      • 🀰 디자인패턴 (10)
      • 🔢 자료구조 (11)
      • 🛜 네트워크 (12)
      • 🖥️ 운영체제 (1)
      • 🔆 프로그래밍 (6)
      • 💯 코테 (33)
    • 개인프로젝트 (4)
      • 🤪 forfun (2)
      • 💼 포트폴리오 (1)
      • 🍎 MacBook (1)
    • 자격증 (1)
      • 💯 OPIC (0)
      • 자격증 (1)
    • 꿀팁 (9)
      • ✨ 유용한 사이트 (8)
      • 📙 티스토리 (1)
    • 여행 (1)
      • ✈️ 해외여행 (1)
      • 🗺️ 국내여행 (0)
    • 음식 (6)
      • 🏰 맛집 (5)
      • 🍰 요리 (1)
    • 일상 (4)
      • 🎨 만들기 (1)
      • 🛒 쇼핑 (2)
      • 👟 운동 (1)
    • 유튜브 (7)
    • 주식 (0)
      • 미국주식 매매일지 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 식권관리
  • 코딩테스트
  • 청담메종
  • 존맛
  • 키오스크
  • 한식
  • 가성비
  • java
  • 코테
  • springboot
  • 이자카야
  • JPA
  • 한강
  • 이천
  • 맛집
  • 러닝
  • 오블완
  • thymleaf
  • 인사동
  • nestjs
  • 까르띠에
  • 키오스크공익
  • 양평역
  • 역삼
  • 티스토리챌린지
  • 키오스크 공익
  • 안국역
  • 스프링부트
  • 사케
  • 영등포구청
반응형
이재원
Language - spring initializr 정복하기(2)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.