스프링 부트 백엔드 개발 강좌, 블로그 화면 구성 예제, 컨트롤러 메서드 작성하기

1. 서론

스프링 부트(Spring Boot)는 자바 개발을 위한 프레임워크로, 개발자가 최소한의 설정으로 빠르게 애플리케이션을 만들 수 있도록 돕는 도구입니다. 본 강좌는 스프링 부트를 사용하여 블로그 애플리케이션의 백엔드를 개발하는 방법을 상세하게 설명합니다. 이번 글의 목표는 블로그의 기본 화면을 구성하고, 이를 위한 컨트롤러 메서드를 작성하는 것입니다.

2. 개발 환경 세팅

스프링 부트 애플리케이션을 개발하기 위해서는 몇 가지 필수 사항이 있습니다.

  • Java Development Kit (JDK) 11 이상
  • IDE (IntelliJ IDEA, Eclipse 등)
  • Gradle 또는 Maven (빌드 도구)
  • 스프링 부트 CLI (선택사항)

위의 항목들을 준비해 주세요. 이제 스프링 부트를 사용하여 간단한 블로그 프로젝트를 생성해봅시다.

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

스프링 부트 프로젝트는 Spring Initializr(https://start.spring.io/)를 통해 쉽게 생성할 수 있습니다. 필요한 다음과 같은 의존성을 추가합니다:

  • Spring Web
  • Spring Data JPA
  • H2 Database

프로젝트를 생성한 후, IDE로 열어 기본적인 구조를 확인합니다.

4. 도메인 모델 및 리포지토리 생성

블로그를 구성하기 위해 우선적으로 도메인 모델을 정의해야 합니다. 일반적인 블로그는 포스트(Post)와 댓글(Comment)을 포함합니다.

4.1 Post 엔티티 생성


package com.example.blog.model;

import javax.persistence.*;
import java.time.LocalDateTime;

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

    private String title;

    @Column(columnDefinition = "TEXT")
    private String content;

    private LocalDateTime createdAt;

    // Getters and Setters
}
    

위의 코드는 Post 엔티티를 정의한 것입니다. 제목과 내용, 생성일자를 포함하고 있습니다. 다음으로는 이 엔티티에 대한 리포지토리를 생성합니다.

4.2 Post 리포지토리 생성


package com.example.blog.repository;

import com.example.blog.model.Post;
import org.springframework.data.jpa.repository.JpaRepository;

public interface PostRepository extends JpaRepository {
}
    

5. 컨트롤러 생성 및 메서드 작성

이제 컨트롤러를 만들어서 HTTP 요청을 처리할 준비가 되었습니다. 블로그의 기본 CRUD 기능을 제공하는 컨트롤러를 작성해보겠습니다.

5.1 PostController 생성


package com.example.blog.controller;

import com.example.blog.model.Post;
import com.example.blog.repository.PostRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/posts")
public class PostController {
    
    @Autowired
    private PostRepository postRepository;

    @GetMapping
    public List getAllPosts() {
        return postRepository.findAll();
    }

    @GetMapping("/{id}")
    public Post getPost(@PathVariable Long id) {
        return postRepository.findById(id).orElse(null);
    }

    @PostMapping
    public Post createPost(@RequestBody Post post) {
        post.setCreatedAt(LocalDateTime.now());
        return postRepository.save(post);
    }

    @PutMapping("/{id}")
    public Post updatePost(@PathVariable Long id, @RequestBody Post postDetails) {
        Post post = postRepository.findById(id).orElse(null);
        if(post != null) {
            post.setTitle(postDetails.getTitle());
            post.setContent(postDetails.getContent());
            return postRepository.save(post);
        }
        return null;
    }

    @DeleteMapping("/{id}")
    public void deletePost(@PathVariable Long id) {
        postRepository.deleteById(id);
    }
}
    

위 코드에서 우리는 CRUD(Create, Read, Update, Delete) 기능을 수행하는 다양한 메서드를 정의했습니다.
각 메서드는 포스트 목록을 가져오거나, 특정 포스트를 조회하거나, 새로운 포스트를 생성하고, 포스트를 수정하거나,
삭제하는 기능을 담당합니다.

6. 애플리케이션 실행

모든 구성이 완료되면, 애플리케이션을 실행할 준비가 된 것입니다. IDE의 실행 버튼을 클릭하여 애플리케이션을 실행해 보세요.
기본적으로 내장된 톰캣 서버가 실행되며, web 브라우저를 이용하여 http://localhost:8080/api/posts로 접근하면
방금 작성한 메서드를 통해 게시물 목록을 확인할 수 있습니다.

7. 결론

본 강좌에서는 스프링 부트를 이용한 블로그 애플리케이션의 기본적인 백엔드 구조를 설명하였습니다.
백엔드 개발의 기초를 다지는 데에 도움이 되었기를 바라며, 지속적인 학습을 통해 더 나아가실 수 있기를 기원합니다.
감사드립니다.