스프링 부트 백엔드 개발 강좌, 개발환경, 0.2 스프링 부트 3 프로젝트 만들기

0.2 스프링 부트 3 프로젝트 만들기

1. 스프링 부트란?

스프링 부트(Spring Boot)는 자바 기반의 웹 애플리케이션 및 RESTful 웹 서비스를 쉽게 구축하기 위한 프레임워크입니다. 기존의 스프링 프레임워크를 더욱 발전시킨 형태로, 복잡한 설정 과정 없이 간단한 설정으로 빠르게 개발할 수 있도록 돕습니다.

스프링 부트는 사전 설정이 되어 있는 여러 라이브러리 및 스타터 패키지를 제공하여, 빠른 프로토타이핑과 간단한 배포를 가능하게 합니다. 또한, ‘Convention over Configuration’ 원칙을 따르기 때문에, 개발자는 비즈니스 로직에 더 집중할 수 있습니다.

2. 개발 환경 설정

스프링 부트 3를 사용하기 위해서는 Java Development Kit (JDK)와 Maven 또는 Gradle이 필요합니다. JDK는 최소 17 버전 이상이 필요하며, IDE로는 IntelliJ IDEA나 Eclipse를 추천합니다.

2.1 JDK 설치하기

  1. JDK 다운로드: Oracle JDK 다운로드 페이지에 접속합니다.
  2. 운영체제에 맞는 JDK를 선택하고 다운로드합니다.
  3. 설치 후 환경 변수 설정을 추가합니다. Windows의 경우, 시스템 속성 -> 고급 시스템 설정 -> 환경 변수에서 JAVA_HOME을 JDK 설치 경로로 설정합니다.

2.2 IDE 설치하기

IntelliJ IDEA는 무료 및 유료 버전이 있으며, 무료 버전인 Community Edition을 사용해도 충분합니다. 다운로드 후 설치하고, 플러그인으로 Maven이나 Gradle을 추가하면 됩니다.

3. 스프링 부트 3 프로젝트 만들기

이제 본격적으로 스프링 부트 3 프로젝트를 생성해보겠습니다. 두 가지 방법으로 프로젝트를 생성할 수 있습니다: Spring Initializr와 IDE를 통한 생성입니다.

3.1 Spring Initializr를 이용한 프로젝트 생성

  1. Spring Initializr에 접속합니다.

  2. Projeect: Maven Project 또는 Gradle Project 중 하나를 선택합니다.

  3. Language: Java를 선택합니다.

  4. Spring Boot: 3.0.0 이상을 선택합니다.

  5. Project Metadata를 입력합니다. Group, Artifact, Name, Description, Package Name 등을 설정합니다.

  6. Dependencies에서 필요한 라이브러리를 선택합니다. Web, JPA, H2 등의 라이브러리를 추가합니다.

  7. Generate 버튼을 클릭하여 ZIP 파일을 다운로드한 후, 원하는 위치에 압축을 풉니다.

3.2 IDE를 통한 프로젝트 생성

  1. IntelliJ IDEA를 열고, File > New > Project를 선택합니다.
  2. Spring Initializr 선택 후, 다음 단계를 진행합니다. Group, Artifact, Dependencies를 설정합니다.
  3. Finish를 클릭하여 프로젝트를 생성합니다.

3.3 프로젝트 구조

생성된 프로젝트의 기본 구조는 다음과 같습니다:

  • src
    • main
      • java
        • com
          • example
            • demo
              • DemoApplication.java
              • controller
              • service
              • repository
      • resources
        • application.properties
        • static
        • templates
    • test
      • java

4. Hello World API 만들기

이제 간단한 REST API를 만들어 보겠습니다. Hello World를 반환하는 API를 만들어봅니다.

4.1 Controller 생성

src/main/java/com/example/demo/controller 디렉토리에 HelloController.java 파일을 생성하고 다음 내용을 입력합니다:


package com.example.demo.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }
}
            

4.2 애플리케이션 실행하기

  1. 프로젝트의 루트 디렉토리에서 ./mvnw spring-boot:run 또는 IDE에서 실행 버튼을 클릭하여 애플리케이션을 실행합니다.
  2. 웹 브라우저에서 http://localhost:8080/hello에 접속하여 Hello World 메시지를 확인합니다.

5. 데이터베이스 연결하기

이제 간단한 데이터베이스 연결을 추가해 보겠습니다. H2 데이터베이스를 사용하여 간단한 CRUD 애플리케이션을 만들어 보겠습니다.

5.1 H2 데이터베이스 의존성 추가

pom.xml 파일을 열어 다음 의존성을 추가합니다:



    com.h2database
    h2
    runtime

            

5.2 application.properties 설정

src/main/resources/application.properties 파일에 다음 내용을 추가합니다:


spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.jpa.hibernate.ddl-auto=update
            

5.3 Entity 클래스 생성

src/main/java/com/example/demo/entity 디렉토리를 만들고, User.java 파일을 생성합니다:


package com.example.demo.entity;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;
    private String email;

    // Getters and Setters
}
            

5.4 Repository 인터페이스 만들기

src/main/java/com/example/demo/repository 디렉토리에 UserRepository.java 파일을 생성합니다:


package com.example.demo.repository;

import com.example.demo.entity.User;
import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository {
}
            

5.5 서비스 클래스 생성

src/main/java/com/example/demo/service 디렉토리에 UserService.java 파일을 생성합니다:


package com.example.demo.service;

import com.example.demo.entity.User;
import com.example.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepository;

    public List getAllUsers() {
        return userRepository.findAll();
    }

    public User saveUser(User user) {
        return userRepository.save(user);
    }
}
            

5.6 UserController 생성

src/main/java/com/example/demo/controller 디렉토리에 UserController.java 파일을 생성합니다:


package com.example.demo.controller;

import com.example.demo.entity.User;
import com.example.demo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {

    @Autowired
    private UserService userService;

    @GetMapping
    public List getAllUsers() {
        return userService.getAllUsers();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.saveUser(user);
    }
}
            

6. 애플리케이션 실행 및 테스트

이제 애플리케이션을 실행하고, Postman 또는 cURL을 통해 API를 테스트할 차례입니다.

6.1 애플리케이션 실행

애플리케이션을 실행합니다.

6.2 API 테스트

GET 요청을 통해 모든 사용자 정보를 가져옵니다:


GET http://localhost:8080/users
            

POST 요청을 통해 새 사용자를 생성합니다:


POST http://localhost:8080/users
Content-Type: application/json

{
    "name": "John Doe",
    "email": "john@example.com"
}
            

결론

이번 강좌를 통해 스프링 부트를 사용하여 간단한 백엔드 애플리케이션을 만드는 방법을 알아보았습니다. 스프링 부트의 발전된 기능 덕분에 훨씬 쉽게 애플리케이션을 개발할 수 있었습니다. 다음 강좌에서는 보안, 테스트, 배포 등을 다루어 보겠습니다.

스프링 부트 백엔드 개발 강좌, 개발환경, 0.3 포스트맨 설치하기

개발환경 구성하기

스프링 부트(Spring Boot)는 Java 기반의 프레임워크로, Spring 애플리케이션을 더욱 쉽고 빠르게 구축할 수 있도록 도와줍니다. 본 강좌에서는 스프링 부트를 사용하여 백엔드 개발 환경을 구성하는 방법을 알아보겠습니다. 이 과정은 기본적인 개발 환경 설정을 포함하여, 마지막에 포스트맨(Postman) 설치 방법도 다룰 것입니다.

1. 자바 개발 키트(JDK) 설치하기

스프링 부트를 사용하기 위해 먼저 JDK를 설치해야 합니다. JDK는 Java의 핵심 구성 요소로, Java 애플리케이션을 개발하고 실행하는 데 필요한 도구들을 제공합니다.

  • Oracle의 공식 웹사이트(여기)에서 JDK를 다운로드합니다.
  • 설치를 진행하며, 설치 과정에서 JDK의 경로를 기억해 둡니다. 일반적으로 C 드라이브의 Program Files에 설치됩니다.
  • 설치가 완료된 후 CMD(명령 프롬프트)에서 java -version 명령어를 입력하여 JDK가 정상적으로 설치되었는지 확인합니다.

2. IDE 설치하기

스프링 부트 개발을 위해 IDE(통합 개발 환경)를 설치해야 합니다. 가장 많이 사용되는 IDE는 Intellij IDEA와 Eclipse입니다. 이 두 가지 IDE 모두 스프링 부트를 지원하며, 개인의 취향에 따라 선택하시면 됩니다.

  • IntelliJ IDEA
    • IntelliJ IDEA의 공식 웹사이트(여기)에서 Community Edition을 다운로드합니다.
    • 다운로드한 파일을 실행하여 설치를 진행합니다.
    • 설치가 완료되면 IntelliJ IDEA를 실행하고, ‘Create New Project’를 클릭하여 새로운 스프링 부트 프로젝트를 생성합니다.
  • Eclipse
    • Eclipse의 공식 웹사이트(여기)에서 Eclipse IDE for Enterprise Java Developers를 다운로드합니다.
    • 다운로드 후 설치 파일을 실행하여 설치를 진행합니다.
    • 설치가 완료되면 Eclipse를 실행하고, ‘File’ > ‘New’ > ‘Java Project’를 통해 새로운 프로젝트를 생성합니다.

3. 스프링 부트 초기화하기

스프링 부트 프로젝트를 시작하기 위해 Spring Initializr를 사용하여 초기 프로젝트를 생성할 수 있습니다.

  • 웹 브라우저에서 Spring Initializr에 접속합니다.
  • Project에서 ‘Maven Project’ 혹은 ‘Gradle Project’를 선택합니다.
  • Language에서 ‘Java’를 선택합니다.
  • Select the version에서 사용하고자 하는 Spring Boot 버전을 선택합니다.
  • Group에 패키지의 그룹 이름을 입력하고, Artifact에 프로젝트 이름을 입력합니다.
  • Dependencies에서 필요한 라이브러리를 선택합니다. 예를 들어, ‘Spring Web’, ‘Spring Data JPA’, ‘H2 Database’ 등을 추가할 수 있습니다.
  • ‘Generate’ 버튼을 클릭하여 zip 파일을 다운로드한 후, 압축을 풉니다.

4. 포스트맨(Postman) 설치하기

포스트맨은 API를 테스트하고 요청을 보내기 위해 가장 많이 사용되는 도구 중 하나입니다. 스프링 부트 애플리케이션을 개발하면서 RESTful API를 구축할 때 포스트맨을 활용하면 매우 유용합니다.

  • 포스트맨의 공식 웹사이트(여기)에 접속하여 운영 체제에 맞는 버전을 다운로드합니다.
  • 다운로드한 설치파일을 실행하여 포스트맨을 설치합니다.
  • 설치가 완료되면 포스트맨을 실행하고, 새로운 요청을 생성할 수 있습니다.

포스트맨 사용법

포스트맨을 통해 API 요청을 보내는 방법을 간단히 살펴보겠습니다. 우선, 스프링 부트 애플리케이션이 정상적으로 실행 중일 때 요청을 보낼 수 있습니다.

  1. 포스트맨을 실행하고, 상단의 New 버튼을 클릭하여 새로운 요청을 생성합니다.
  2. Request Name에 요청의 이름을 입력하고, Save to에서 요청을 저장할 콜렉션을 선택합니다.
  3. HTTP 메서드를 선택합니다. 예를 들어, GET이나 POST를 선택할 수 있습니다.
  4. URL에 요청을 보낼 API의 엔드포인트를 입력합니다. 예를 들어, http://localhost:8080/api/users와 같은 형태입니다.
  5. 요청을 보낼 준비가 되었으면 Send 버튼을 클릭합니다. 결과는 하단에서 확인할 수 있습니다.

결론

이번 포스트에서는 스프링 부트 백엔드 개발을 위한 개발 환경을 설정하는 방법과 포스트맨을 설치하는 방법을 설명했습니다. 앞으로 이어질 강좌에서는 스프링 부트를 사용하여 실제 애플리케이션을 개발하는 방법을 계속해서 다룰 예정입니다. 다음 단계로 나아가기 위해 이번 과정에서 설명한 설정들을 잘 따라해 보시기 바랍니다.

스프링 부트 백엔드 개발 강좌, 개발환경, 0.0 그림으로 이해하는 프로젝트

이 강좌에서는 스프링 부트를 사용한 백엔드 개발 환경을 설정하고, 이해하기 쉽게 프로젝트를 구성하는 방법에 대해 다룹니다. 본 강좌는 초보자를 대상으로 하며, 단계별로 설명하므로 쉽게 따라 할 수 있습니다.

1. 스프링 부트란?

스프링 부트(SDpring Boot)는 자바 기반의 프레임워크로, 개발자가 빠르고 간편하게 스프링 애플리케이션을 만들 수 있도록 도와주는 도구입니다. 전통적인 스프링 프레임워크의 복잡성을 줄이고, 설정을 간소화하며, 즉시 사용 가능한 다양한 기능을 제공합니다.

1.1 주요 특징

  • 자동 구성: 필요한 설정을 자동으로 해줍니다.
  • Standalone: 별도의 서버 설치 없이 실행할 수 있습니다.
  • 모듈화: 필요한 의존성만 포함하여 개별 모듈로 구성할 수 있습니다.
  • 내장 서버 지원: 톰캣, 제티, 언더토우 등의 내장 서버를 지원합니다.

2. 개발환경 설정

스프링 부트를 사용하기 위해서는 개발 환경을 설정해야 합니다. 아래 절차를 따라 개발 환경을 준비해 봅시다.

2.1 필수 조건

  • Java Development Kit (JDK) 11 이상 설치
  • IDE (예: IntelliJ IDEA, Eclipse) 설치
  • Maven 또는 Gradle 설치 (예: Maven은 Dependency Management을 도와줍니다.)

2.2 JDK 설치

JDK를 설치하기 위해서 Oracle 또는 OpenJDK의 웹사이트에서 설치파일을 다운로드하고, 안내에 따라 설치합니다. 설치 후, 명령 프롬프트 또는 터미널에서 아래 명령어를 입력하여 JDK가 제대로 설치되었는지 확인합니다:

java -version

2.3 IDE 설치

IntelliJ IDEA 또는 Eclipse와 같은 IDE를 설치합니다. 여기에서는 IntelliJ IDEA를 사용하는 방법을 설명합니다. 공식 웹사이트에서 ‘Community Edition’을 다운로드하여 설치합니다.

2.4 Maven 설치

Maven은 스프링 부트 프로젝트를 생성하고 의존성을 관리하는 도구입니다. Maven의 공식 웹사이트에서 다운로드 후 설치합니다.

3. 첫 번째 스프링 부트 프로젝트 만들기

이제 개발 환경이 준비되었으므로, 스프링 부트 프로젝트를 생성하고 실행하는 방법을 소개하겠습니다.

3.1 Spring Initializr 사용하기

스프링 부트를 사용하여 프로젝트를 쉽게 설정하기 위해 Spring Initializr를 이용할 수 있습니다. 브라우저에서 Spring Initializr에 접속합니다.

  • Project: Maven Project 선택
  • Language: Java 선택
  • Spring Boot: 사용하고자 하는 버전 선택 (최신 stable 버전 추천)
  • Project Metadata:
    • Group: com.example
    • Artifact: demo
    • Name: demo
    • Description: Demo project for Spring Boot
    • Package name: com.example.demo
    • Packaging: Jar 선택
    • Java: 11 선택
  • Dependencies:
    • Spring Web
    • Spring Data JPA
    • H2 Database

설정을 마쳤다면 ‘Generate’ 버튼을 눌러 프로젝트를 다운로드합니다. 다운로드한 zip 파일을 해제하고 원하는 위치에 저장합니다.

3.2 IDE에서 프로젝트 열기

IntelliJ IDEA를 실행한 후 ‘Open’ 버튼을 클릭하고, 방금 해제한 프로젝트 폴더를 선택합니다. IDE가 프로젝트를 불러오면, 필요한 의존성을 다운로드하며 초기 설정이 완료됩니다.

4. 프로젝트 구조 이해하기

프로젝트가 생성되면 기본적인 폴더 구조가 생성됩니다. 각 폴더의 역할을 이해하는 것은 향후 개발에 큰 도움이 됩니다.

4.1 주요 폴더 및 파일

  • src/main/java: 애플리케이션의 메인 소스 코드가 위치하는 폴더입니다.
  • src/main/resources: 설정 파일(yaml, properties) 및 정적 자원이 위치하는 폴더입니다.
  • src/test/java: 테스트 코드가 위치하는 폴더입니다.
  • pom.xml: Maven 프로젝트의 설정 파일로, 의존성과 플러그인을 관리합니다.

5. 간단한 RESTful API 만들기

이제 간단한 RESTful API를 만들어 보겠습니다. 예를 들어, ‘Hello, World!’를 반환하는 간단한 컨트롤러를 생성합니다.

5.1 컨트롤러 생성하기

src/main/java/com/example/demo 패키지 내에 HelloController.java라는 파일을 생성하고 아래 코드를 작성합니다:

package com.example.demo;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {
    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, World!";
    }
}

5.2 애플리케이션 실행하기

메인 애플리케이션 파일 (DemoApplication.java)을 열고, 아래 코드를 실행하여 서버를 시작합니다:

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

서버가 실행되면 브라우저에서 http://localhost:8080/hello로 접속하시면 ‘Hello, World!’ 메시지를 확인할 수 있습니다.

6. 데이터베이스 연동하기

이제 H2 데이터베이스를 연동하고, 간단한 CRUD 기능을 구현해 보겠습니다. H2 데이터베이스는 메모리 기반의 데이터베이스로 개발 및 테스트 용도로 적합합니다.

6.1 H2 데이터베이스 의존성 추가

pom.xml 파일에 H2 데이터베이스 의존성을 추가합니다:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <scope>runtime</scope>
</dependency>

6.2 엔티티 클래스 생성하기

데이터베이스 테이블과 매핑할 엔티티 클래스를 작성합니다. src/main/java/com/example/demo 패키지에 User.java 파일을 생성합니다:

package com.example.demo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    // Getters and Setters
}

6.3 레포지토리 인터페이스 생성하기

데이터베이스와의 상호작용을 위해 JPA 레포지토리 인터페이스를 생성합니다. src/main/java/com/example/demo 패키지에 UserRepository.java 파일을 생성합니다:

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository {
}

6.4 서비스 클래스 생성하기

비즈니스 로직을 처리하는 서비스 클래스를 생성합니다. src/main/java/com/example/demo 패키지에 UserService.java 파일을 생성합니다:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public List getAllUsers() {
        return userRepository.findAll();
    }
    
    public User createUser(User user) {
        return userRepository.save(user);
    }
}

6.5 컨트롤러 업데이트하기

이제 새로운 기능을 구현하기 위해 HelloController를 업데이트합니다. src/main/java/com/example/demo 패키지의 HelloController.java를 수정하여 사용자 생성 및 조회 기능을 추가합니다:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/users")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping
    public List getUsers() {
        return userService.getAllUsers();
    }

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.createUser(user);
    }
}

6.6 테스트하기

Postman 또는 cURL을 이용하여 API를 호출하여 CRUD 기능을 테스트합니다. 사용자 정보를 DB에 저장하고 조회하는 것을 확인합니다.

7. 마무리 및 다음 단계

이상으로 스프링 부트를 활용한 간단한 백엔드 개발 강좌를 마치겠습니다. 이번 강좌를 통해 스프링 부트의 기본 개념과 프로젝트 설정 방법, RESTful API 생성 및 데이터베이스 연동 방법을 익히셨기를 바랍니다.

다음 강좌에서는 JWT 기반의 인증 및 인가, 사용자 정의 예외 처리, 테스트 작성 등의 고급 주제를 다룰 예정입니다. 계속해서 스프링 부트의 세계를 탐험해 보세요!

참고 자료

스프링 부트 백엔드 개발 강좌, 개발환경, 0.1 인텔리제이 설치 및 설정

1. 개발환경 준비

본 강좌에서는 스프링 부트를 이용한 백엔드 개발 환경을 설정하는 방법에 대해 자세히 알아보겠습니다. 스프링 부트는 자바 기반의 프레임워크로, 빠른 개발과 배포가 가능하여 많은 개발자들이 선호하는 플랫폼입니다. 하지만, 효과적으로 개발하기 위해서는 적절한 개발환경을 설정해야 합니다. 이를 위해 필요한 도구들은 다음과 같습니다:

  • Java Development Kit (JDK)
  • IntelliJ IDEA (IDE)
  • Maven 또는 Gradle (빌드 도구)
  • Git (버전 관리 시스템)
  • PostgreSQL 또는 MySQL (데이터베이스)

2. JDK 설치 및 환경 변수 설정

스프링 부트 애플리케이션을 개발하기 위해서는 JDK가 필요합니다. JDK는 자바 애플리케이션을 개발할 수 있도록 도와주는 도구입니다. JDK 설치 방법은 다음과 같습니다:

2.1 JDK 다운로드 및 설치

1. Oracle의 [JDK 다운로드 페이지](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) 또는 [AdoptOpenJDK](https://adoptopenjdk.net/)를 방문하여 최신 버전의 JDK를 다운로드합니다.
2. 다운로드한 파일을 실행하여 설치를 진행합니다. 설치 과정에서 특별한 설정이 없다면 기본값을 그대로 사용하시면 됩니다.

2.2 환경 변수 설정

JDK 설치가 완료되면, 환경 변수를 설정해야 합니다:

윈도우:
1. '내 PC'를 오른쪽 클릭하고 '속성'을 선택합니다.
2. '고급 시스템 설정'을 클릭합니다.
3. '환경 변수' 버튼을 클릭합니다.
4. '시스템 변수'에서 'Path'를 선택하고 '편집' 버튼을 클릭합니다.
5. JDK의 bin 폴더 경로 (예: C:\Program Files\Java\jdk-11\bin)를 추가합니다.
6. 'JAVA_HOME' 변수를 만들어 JDK 설치 경로를 설정합니다.

macOS/Linux:
1. 터미널을 엽니다.
2. 다음 명령어를 입력하여 .bash_profile 또는 .bashrc에 추가합니다:
   export JAVA_HOME=$(/usr/libexec/java_home)
   export PATH=$JAVA_HOME/bin:$PATH
3. 파일을 저장하고 terminal을 다시 실행합니다.

3. IntelliJ IDEA 설치

이제 본 강좌의 핵심 도구인 IntelliJ IDEA를 설치하겠습니다. IntelliJ IDEA는 JetBrains에서 만든 자바 IDE로, 스프링 부트 개발에 있어서 최고의 선택 중 하나입니다.

3.1 IntelliJ IDEA 다운로드

1. [IntelliJ IDEA 공식 웹사이트](https://www.jetbrains.com/idea/download/)에 방문합니다.
2. Community 버전 또는 Ultimate 버전을 선택하여 다운로드합니다. Ultimate 버전에는 추가적인 스프링 지원 및 상용 기능이 포함되어 있지만, Community 버전으로도 충분히 강좌를 수강하실 수 있습니다.

3.2 IntelliJ IDEA 설치

1. 다운로드한 설치 파일을 실행합니다.
2. 설치 마법사의 지시에 따라 설치를 진행합니다. 필요 시 설치 옵션을 조정해주세요.

3.3 IntelliJ IDEA 초기 설정

설치가 완료되면, IntelliJ IDEA를 처음 실행 시 초기 설정을 진행해야 합니다:

  1. 스킨 및 테마를 선택합니다.
  2. 기본적인 키맵을 설정합니다. (기본값으로 계속 진행해도 무방합니다.)
  3. 향후 강좌를 위한 플러그인을 설치합니다. (스프링 관련 플러그인 추천)

3.4 IntelliJ에서 JDK 설정하기

1. IntelliJ IDEA를 실행합니다.
2. ‘File’ → ‘Project Structure’를 선택합니다.
3. ‘Project’ 탭에서 ‘Project SDK’를 선택하고, JDK 경로를 설정합니다.

4. Maven/Gradle 빌드 도구 설치

스프링 부트에는 두 가지 주요 빌드 도구인 Maven과 Gradle이 있습니다. 본 강좌에서는 Maven을 기준으로 다루겠습니다. Gradle 사용법은 앞으로 별도로 다룰 예정입니다.

4.1 Maven 설치

1. Maven 설치를 위해 [Maven 공식 웹사이트](https://maven.apache.org/download.cgi)로 이동하여 최신 버전을 다운로드합니다.
2. 압축을 푼 후, ‘bin’ 폴더의 경로를 시스템 환경 변수에 추가합니다.

4.2 Maven 환경 설정하기

1. Maven의 설치가 완료되면, 터미널이나 명령 프롬프트에서 다음 명령어를 입력하여 설치가 정상적으로 되었는지 확인합니다:

mvn -v

위 명령어를 통해 Maven의 버전 정보가 출력된다면, 정상적으로 설치된 것입니다.

5. Git 설치 및 설정

버전 관리를 위해 Git을 설치합니다. Git은 오픈 소스 버전 관리 시스템으로, 협업 및 버전 관리를 효과적으로 수행할 수 있게 해줍니다.

5.1 Git 다운로드 및 설치

1. [Git 다운로드 페이지](https://git-scm.com/downloads)에서 운영체제에 맞는 Git 설치 파일을 다운로드합니다.
2. 설치 마법사의 지시에 따라 설치를 진행합니다.

5.2 Git 초기 설정

설치 후, 다음과 같은 명령어를 통해 Git의 기본 설정을 합니다:

git config --global user.name "귀하의 이름"
git config --global user.email "귀하의 이메일 주소"

6. 데이터베이스 설치 및 설정

스프링 부트는 여러 데이터베이스를 지원합니다. MySQL과 PostgreSQL 두 가지 중 하나를 선택하여 설치하겠습니다.

6.1 MySQL 설치

1. [MySQL 다운로드 페이지](https://dev.mysql.com/downloads/mysql/)에서 MySQL을 다운로드합니다.
2. 설치 마법사의 지시에 따라 설치를 진행합니다.

6.2 PostgreSQL 설치

1. [PostgreSQL 다운로드 페이지](https://www.postgresql.org/download/)에서 PostgreSQL을 다운로드합니다.
2. 설치 마법사의 지시에 따라 설치를 진행합니다.

7. 스프링 부트 프로젝트 생성

IntelliJ IDEA와 필요한 도구들이 모두 설치되었다면, 이제 스프링 부트 프로젝트를 생성해보겠습니다.

7.1 IntelliJ에서 스프링 부트 프로젝트 생성

1. IntelliJ IDEA를 실행하고 ‘New Project’를 선택합니다.
2. ‘Spring Initializr’를 선택합니다.
3. 필요한 정보를 입력합니다:

  • Group: com.example
  • Artifact: demo
  • Name: demo
  • Description: Demo project for Spring Boot
  • Package name: com.example.demo
  • Packaging: Jar
  • Java: 11 (버전 선택은 JDK에 따라 다름)

4. 필요한 의존성을 추가합니다. (예: Spring Web, Spring Data JPA, MySQL Driver 등)
5. ‘Finish’ 버튼을 클릭하여 프로젝트를 생성합니다.

8. 결론

이번 강좌에서는 스프링 부트 개발을 위한 기본적인 개발환경을 설정하는 방법에 대해 설명하였습니다. JDK, IntelliJ IDEA, Maven, Git, 데이터베이스 등 개발에 필수적인 도구들을 설치하고 설정하는 방법을 학습했습니다. 이제 스프링 부트 프로젝트를 통해 백엔드 개발을 시작할 준비가 되셨습니다.

9. 다음 강좌 예고

다음 강좌에서는 처음 생성한 스프링 부트 프로젝트를 실행하고, RESTful API를 만드는 방법에 대해 다룰 예정입니다. 학습한 내용을 바탕으로 본격적인 백엔드 개발을 시작해보겠습니다!

스프링 부트 백엔드 개발 강좌, SQL 문으로 데이터베이스 조작하는 연습하기

스프링 부트(Spring Boot)는 자바 기반의 웹 애플리케이션 개발을 위한 강력한 프레임워크입니다. 본 강좌에서는 스프링 부트를 활용한 백엔드 개발을 다루며, SQL 문을 사용하여 데이터베이스를 조작하는 방법을 익힐 것입니다.

목차

  • 1. 스프링 부트 소개
  • 2. 프로젝트 설정
  • 3. 데이터베이스 연동
  • 4. SQL 문으로 데이터 조작하기
  • 5. CRUD 구현하기
  • 6. 테스트 및 배포
  • 7. 결론

1. 스프링 부트 소개

스프링 부트는 스프링 프레임워크를 기반으로 한 경량 애플리케이션 개발 프레임워크입니다. 설정이 간편하며, 독립 실행형 애플리케이션을 쉽게 구축할 수 있도록 도와줍니다.

스프링 부트의 특징은 다음과 같습니다:

  • 자동 설정 (Auto Configuration)
  • 내장 웹 서버 (Embedded Web Server)
  • 프로덕션 준비 완료 (Production Ready)

2. 프로젝트 설정

스프링 부트 프로젝트를 생성하는 가장 좋은 방법은 Spring Initializr 웹사이트를 사용하는 것입니다. 이곳에서 프로젝트 메타데이터를 입력하고 필요한 종속성을 추가할 수 있습니다.

1. Spring Initializr 방문: https://start.spring.io/
2. Project 선택: Maven Project 또는 Gradle Project
3. Language: Java
4. Group: com.example
5. Artifact: demo
6. Dependencies: Spring Web, Spring Data JPA, H2 Database

3. 데이터베이스 연동

스프링 부트에서 데이터베이스 연동을 위해서는 application.properties 파일에 데이터베이스 정보를 설정해야 합니다.

# H2 Database 설정
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

4. SQL 문으로 데이터 조작하기

SQL 문을 활용하여 데이터베이스의 데이터를 조작하는 방법에 대해 알아보겠습니다. 기본적인 SQL 문에는 SELECT, INSERT, UPDATE, DELETE가 있습니다.

4.1 SELECT 문

SELECT 문은 데이터베이스에서 데이터를 조회하기 위해 사용됩니다. 예를 들어, 다음 쿼리를 사용하여 모든 사용자를 조회할 수 있습니다:

SELECT * FROM users;

4.2 INSERT 문

INSERT 문은 새로운 데이터를 데이터베이스에 추가하기 위해 사용됩니다. 다음의 쿼리는 새로운 사용자를 추가합니다:

INSERT INTO users (username, email) VALUES ('testuser', 'test@example.com');

4.3 UPDATE 문

UPDATE 문은 기존 데이터를 수정하기 위해 사용됩니다. 특정 사용자의 이메일을 변경하는 예시는 다음과 같습니다:

UPDATE users SET email = 'newemail@example.com' WHERE username = 'testuser';

4.4 DELETE 문

DELETE 문은 데이터베이스에서 데이터를 삭제하기 위해 사용됩니다. 사용자를 삭제하는 쿼리는 다음과 같습니다:

DELETE FROM users WHERE username = 'testuser';

5. CRUD 구현하기

CRUD(Create, Read, Update, Delete) 기능을 구현하는 것은 데이터베이스 조작의 핵심입니다. 스프링 부트에서 CRUD를 구현하기 위해 Repository, Service, Controller를 설정할 것입니다.

5.1 Repository

Repository는 데이터베이스와의 상호작용을 정의합니다. JPA를 사용하여 인터페이스를 만들고 기본적인 CRUD 메소드가 자동으로 제공됩니다:

import org.springframework.data.jpa.repository.JpaRepository;

public interface UserRepository extends JpaRepository<User, Long> {
    // 추가적인 쿼리 메서드를 정의할 수 있습니다.
}

5.2 Service

Service는 비즈니스 로직을 처리합니다. Repository를 주입받아 필요한 기능을 구현합니다:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class UserService {
    @Autowired
    private UserRepository userRepository;

    public User createUser(User user) {
        return userRepository.save(user);
    }

    // 다른 CRUD 메소드 추가
}

5.3 Controller

Controller는 HTTP 요청을 처리합니다. 적절한 엔드포인트를 설정하여 클라이언트와의 통신을 처리합니다:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/users")
public class UserController {
    @Autowired
    private UserService userService;

    @PostMapping
    public User createUser(@RequestBody User user) {
        return userService.createUser(user);
    }

    // 다른 CRUD 엔드포인트 추가
}

6. 테스트 및 배포

테스트는 애플리케이션의 버그를 발견하고 보완하기 위해 필수적입니다. 스프링 부트에서는 JUnit을 활용하여 단위 테스트를 수행할 수 있습니다.

import org.junit.jupiter.api.Test;
import static org.assertj.core.api.Assertions.assertThat;

public class UserServiceTest {
    @Test
    public void testCreateUser() {
        // 유저 생성 테스트 코드
    }
}

7. 결론

본 강좌에서는 스프링 부트를 사용한 백엔드 개발과 SQL 문을 사용한 데이터베이스 조작 방법에 대해 알아보았습니다. 이 과정을 통해 여러분은 실용적인 웹 애플리케이션을 구축할 수 있는 기반을 마련할 수 있기를 바랍니다.