개발/Java

[자바 스프링부트]Java 개념및 기본 문법

ITIbiza 2024. 8. 6. 11:08
반응형

Java

 

이 글에서는 입문자를 위한 자바 스프링부트 시리즈로 자바 스프링부트 - 자바 개념 및 기본 문법에 대해서 소개합니다.

 

안녕하세요! ITibiza 입니다.

 

백엔드 개발에서 다양한 언어로 백엔드 서버를 구축합니다.

Node.js, Python, Java, Go 등등 서비스에 적합한 언어를 통해서 백엔드 서버를 구축합니다.

여기서 Java는 많은 대기업, 빅테크기업, 유니콘 기업, 스타트업에서 많이 사용하는 언어이며 Java를 공부해야 하는 이유 중에 하나입니다.

 

필자도 Java 프레임워크를 활용해서 다양한 서비스 경험을 했으며 처음에 Java를 사용하는 데 있어서 너무 힘들고 다양한 에지케이스를 경험했습니다.

이러한 경험을 통해서 Java에 대해서 더 자세히 공부하는 시간을 가지며 필자의 지식을 다른 사람들과 공유하고 싶어 이 글을 작성합니다.

 

이 글을 통해서 Java 개념과 기본문법을 예제와 함께 알아보겠습니다.

 

도커 시리즈 공부하기

2024.08.02 - [개발/Docker] - [도커 입문 시리즈] docker 이미지와 레이어 개념

 

[도커 입문 시리즈] docker 이미지와 레이어 개념

이 글에서는 입문자를 위한 도커 시리즈로 도커 입문 시리즈 - Docker 이미지와 레이어 개념에 대해서 소개합니다. 안녕하세요! ITibiza입니다. 도커 시리즈 1탄2024.07.31 - [개발/Docker] - [도커 입문

itibiza.tistory.com

 

자바란?

자바(Java)는 Sun Microsystems(현재 Oracle)이 개발한 객체 지향 프로그래밍 언어입니다.

 

자바의 주요 특징:

  • 플랫폼 독립성: 자바 프로그램은 바이트코드로 컴파일되며, JVM(Java Virtual Machine)을 통해 실행됩니다. 이로 인해 어떤 플랫폼에서도 동일한 자바 프로그램을 실행할 수 있습니다.
  • 객체 지향: 자바는 클래스와 객체를 중심으로 프로그래밍합니다.
  • 메모리 관리: 자동 가비지 컬렉션을 통해 메모리 관리를 돕습니다. 자바, 자바스크립트는 가비지 콜렉터를 실행시켜 자동으로 사용하지 않는 객체를 제거합니다. 즉, 메모리를 자동으로 관리해 주는 큰 장점이 있습니다.
  • 인터프리터 언어: 자바는 컴파일 언어인 동시에 인터프리터 언어입니다.
  • 멀티 스레드: 자바를 활용하면 스레드 생성 및 제어와 관련된 라이브러리 API를 제공하므로 운영체제에 상관없이 멀티 스레드 구현이 수월합니다.
  • 오픈소스 라이브러리: 자바는 오픈소스 언어이고 자바 프로그램에서 사용하는 라이브러리 양 또한 방대합니다.

 

자바 기본 문법

자바 프로그램의 기본 단위는 클래스입니다.

모든 자바 애플리케이션은 클래스 내부의 main 메서드부터 실행을 시작합니다.

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

 

위 코드에서:

  • public class HelloWorld: HelloWorld라는 이름의 클래스를 정의합니다.
  • public static void main(String [] args): 자바 애플리케이션의 시작점입니다.
  • System.out.println("Hello, World!");: 콘솔에 "Hello, World!"를 출력합니다.

 

자바 변수와 자료형

프로그램에서 변수는 데이터를 저장하는 공간입니다.

자바에서는 변수를 선언할 때 자료형을 지정해야 합니다.

 

기본 자료형 (Primitive Types)

자바에는 8개의 기본 자료형이 있습니다.

  • 정수형:
    • byte: 1 바이트, -128 ~ 127
    • short: 2 바이트, -32,768 ~ 32,767
    • int: 4 바이트, -2^31 ~ 2^31-1
    • long: 8 바이트, -2^63 ~ 2^63-1
  • 실수형:
    • float: 4 바이트, 소수점 이하 7자리
    • double: 8 바이트, 소수점 이하 15자리
  • 문자형:
    • char: 2 바이트, 유니코드 문자
  • 논리형:
    • boolean: 1 바이트, true 또는 false
int age = 25;
double price = 19.99;
char grade = 'A';
boolean isAvailable = true;

 

참조 자료형 (Reference Types)

참조 자료형에는 배열, 클래스, 인터페이스 등이 포함됩니다.

String name = "John Doe";
int[] numbers = {1, 2, 3, 4, 5};

 

자바 연산자

연산자는 변수와 값을 연산하는 데 사용됩니다.

  • 산술 연산자: +, , , /, %
  • 비교 연산자: ==,!=, >, <, >=, <=
  • 논리 연산자: &&, ||,!
  • 할당 연산자: =, +=, =, =, /=, %=
  • 증감 연산자: ++, -
int a = 10;
int b = 20;
int sum = a + b; // 30
boolean isEqual = (a == b); // false
boolean isEitherTrue = (a > 5) || (b < 15); // true

자바 조건문

조건문은 특정 조건에 따라 다른 코드를 실행합니다.

 

if 문

int number = 10;
if (number > 5) {
    System.out.println("Number is greater than 5");
}

 

if-else 문

java코드 복사
int number = 10;
if (number > 5) {
    System.out.println("Number is greater than 5");
} else {
    System.out.println("Number is not greater than 5");
}

 

else-if 문

int number = 10;
if (number > 10) {
    System.out.println("Number is greater than 10");
} else if (number == 10) {
    System.out.println("Number is 10");
} else {
    System.out.println("Number is less than 10");
}

 

switch 문

int day = 2;
switch (day) {
    case 1:
        System.out.println("Monday");
        break;
    case 2:
        System.out.println("Tuesday");
        break;
    default:
        System.out.println("Other day");
        break;
}

 

자바 반복문

반복문은 특정 코드를 여러 번 실행할 수 있게 합니다.

 

for 문

for (int i = 0; i < 5; i++) {
    System.out.println("i is: " + i);
}

 

while 문

int i = 0;
while (i < 5) {
    System.out.println("i is: " + i);
    i++;
}

 

do-while 문

int i = 0;
do {
    System.out.println("i is: " + i);
    i++;
} while (i < 5);

 

자바 배열

배열은 동일한 자료형의 데이터를 하나로 묶어 관리할 수 있습니다.

int[] numbers = {1, 2, 3, 4, 5};
System.out.println(numbers[0]); // 1

 

배열은 인덱스를 통해 접근하며, 인덱스는 0부터 시작합니다.

 

자바 메서드

메서드는 특정 작업을 수행하는 코드 블록입니다. 메서드는 호출될 때 실행됩니다.

public class MyClass {
    public static void main(String[] args) {
        greet("John");
        int sum = add(5, 3);
        System.out.println("Sum: " + sum);
    }

    public static void greet(String name) {
        System.out.println("Hello, " + name);
    }

    public static int add(int a, int b) {
        return a + b;
    }
}

위 코드에서:

  • greet 메서드는 문자열 인자를 받아 "Hello, "와 함께 출력합니다.
  • add 메서드는 두 정수를 더하여 결과를 반환합니다.

 

자바 객체 지향 프로그래밍(OOP)

자바는 객체 지향 언어로, 클래스와 객체가 주요 개념입니다.

 

클래스와 객체

  • 클래스: 객체의 설계도입니다.
  • 객체: 클래스를 기반으로 생성된 인스턴스입니다.
public class Dog {
    // 멤버 변수
    String name;
    int age;

    // 생성자
    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 메서드
    public void bark() {
        System.out.println(name + " is barking");
    }
}

// 객체 생성 및 사용
public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog("Buddy", 3);
        myDog.bark();
    }
}

상속

상속은 기존 클래스의 특성을 물려받아 새로운 클래스를 만드는 것입니다.

public class Animal {
    public void eat() {
        System.out.println("This animal eats food.");
    }
}

public class Dog extends Animal {
    public void bark() {
        System.out.println("The dog barks.");
    }
}

public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.eat(); // 부모 클래스의 메서드
        myDog.bark(); // 자식 클래스의 메서드
    }
}

 

자바 인터페이스

인터페이스는 메서드의 선언만 포함하고 있으며, 이를 구현하는 클래스가 메서드의 실제 내용을 정의합니다.

public interface Animal {
    void makeSound();
}

public class Dog implements Animal {
    public void makeSound() {
        System.out.println("Bark");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal myDog = new Dog();
        myDog.makeSound();
    }
}

 

자바 예외 처리

예외 처리는 프로그램 실행 중 발생하는 오류를 관리하는 방법입니다.

public class Main {
    public static void main(String[] args) {
        try {
            int[] numbers = {1, 2, 3};
            System.out.println(numbers[5]); // 예외 발생
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("Array index is out of bounds!");
        } finally {
            System.out.println("This will always run.");
        }
    }
}

 

위 코드에서 try 블록 내에서 예외가 발생하면, catch 블록이 실행되고, finally 블록은 항상 실행됩니다.

 

자바 개념 및 기본 문법 마지막으로

자바 스프링부트 시리즈를 시작하기 전의 기초와 문법을 체계적으로 학습하면 자바 프로그래밍의 기본기를 탄탄히 다질 수 있습니다.

이 지식을 바탕으로 다양한 예제와 프로젝트를 통해 실력을 쌓아 나가면 더욱 실력 있는 자바 개발자로 성장할 수 있습니다.

 

필자는 새로운 언어와 프로그램을 시작하기 전에 항상 기본 문법과 개념에 대해서 이론적으로 먼저 파악을 하고 프로그래밍을 하는 습관을 들이려고 노력합니다.

 

다음 글에서는 스프링부트 시리즈 - 자바 환경 세팅에 대해서 알아보겠습니다.

 

 

 


 

 

필자의 잘못된 부분이나 피드백은 언제든지 댓글로 남겨주세요!

감사합니다^^

 

 

2024.08.05 - [IT소식] - 빅테크 기업들이 크로스 플랫폼 사용하는 이유?

 

빅테크 기업들이 크로스 플랫폼 사용하는 이유?

안녕하세요! ITibiza입니다. 요즘은 디지털 시대로 전 세계적으로 스마트폰을 안 쓰는 사람을 찾는 것이 더 힘듭니다.거의 모든 사람들은 스마트폰을 사용하고 있다는 의미입니다. 스마트폰마다

itibiza.tistory.com

 

2024.08.01 - [AWS] - 누구나 이해할 수 있는 AWS VPC 개념 & 서브넷

 

누구나 이해할 수 있는 AWS VPC 개념 & 서브넷

안녕하세요! ITibiza 입니다. 백엔드 개발자로 IT업계에서 일을 하신다면 클라우드 기반에 서비스로 인프라 & 서버 등등을 구축하는 것은 어려우면서도 중요한 일이라는 것을 알고 계실 겁니다. 

itibiza.tistory.com

 

2024.07.30 - [IT소식] - IT 필수 용어 VPN (Virtual Private Network) 알아보기

 

IT 필수 용어 VPN (Virtual Private Network) 알아보기

안녕하세요! ITibiza입니다. VPN은 Virtual Private Network 약자이며 가상 사설망으로 번역됩니다.인터넷과 같은 공공 네트워크를 통해 사설 네트워크를 구축하여 안전하고 익명적으로 데이터를 송수신

itibiza.tistory.com

 

반응형