Spring

    [Spring] @Controller vs @RestController

    들어가기 전에 @Controller는 전통적인 Spring controller로써 오래 사용되어졌습니다. Spring 4.0에서는 @RestController라는 좀 더 RESTful한 웹서비스를 간단히 만들 수 있는 어노테이션이 소개되었습니다. 이번 포스팅을 통해 간단히 두 가지 어노테이션의 차이를 살펴보겠습니다. Spring MVC @Controller @Controller 어노테이션은 @Component 어노테이션을 가지고 있어 classpath 스캔을 통해 자동으로 구현체를 감지할 수 있습니다. 일반적으로 @Controller는 @RequestMapping 어노테이션과 함께 많이 쓰입니다. @Controller @RequestMapping("books") public class SimpleBoo..

    [Enum] enum에 연결된 값을 통해 enum값 알아내기

    들어가기 전에 enum값을 지칭하는 다른 단어를 통해 enum을 알아내고자 할 때 사용하는 방법입니다. 필자의 경우, 프로젝트를 진행하며 enum을 지칭하는 다른 단어를 통해 들어온 string을 enum으로 변환해야 해서 사용했습니다. 다른 작업을 할 때에도 쓰일 수 있을 것 같아 추후에 보기 위해 간단하게 작성했습니다. enum에 연결된 값을 통해 enum값 알아내기 아래 코드의 fromString(String name) 메소드는 enum값과 연결된 값(A)이 따로 있을 때 A를 통해 enum값을 알아내기 위한 메소드입니다. 해당 메소드를 사용하면 손쉽게 enum값을 반환할 수 있습니다. @Getter @AllArgsConstructor public enum BreadCategoryType { 식사빵..

    [SpringBoot] 게시판 구현하기 9 (스프링의 다양한 기능 살펴보기 - AOP)

    들어가기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 포스팅에서는 AOP에 대해 살펴보도록 하겠습니다. AOP(Aspect Oriented Programming, 관점지향 프로그래밍) AOP란, OOP(Object Oriented Programming, 객체지향 프로그래밍)를 더욱 OOP답게 사용하도록 도와주는 개념입니다. 객체지향이란, 기능과 데이터들을 모아 재사용이 가능한 객체로 캡슐화하는 것을 의미합니다. 이렇게 캡슐화된 클래스들을 프로젝트 내 여러 곳에서 반복적으로 재사용하여 생산성을 높일 수 있습니다. 하지만, 실제 어플리케이션을 개발하다보면 객체의 핵심코드 외에도 여러 기능이 들어 갑니다. 메소드 호출 전후의 로그, 데이터 검증 및 확인 로그,..

    [SpringBoot] 게시판 구현하기 5 (게시글 상세 화면 만들기)

    들어가기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 시간에는 앞서 등록한 게시글을 확인할 수 있는 상세 화면을 만들어 보겠습니다. 게시글 상세 화면 만들기 게시글 상세 화면 만들기 전 조회 로직의 흐름에 대해 먼저 살펴보겠습니다. 목록 화면에서 상세 내용을 확인하고 싶은 글을 선택합니다. 즉, 목록 화면에서 선택된 글의 상세 화면을 호출하는 기능이 필요합니다. 선택된 글의 상세 내용을 조회하고 조회수를 증가시킵니다. 즉, 상세 내용을 조회할 때 비즈니스 로직은 목록 조회와 다르게 두 가지가 됩니다. 비즈니스 로직을 처리하는 서비스 영역에 두 가지 작업(게시글 조회 & 조회수 증가)을 진행해야 합니다. 조회된 글 내용을 화면에 표시합니다. 목록 화면 수정..

    [SpringBoot] 게시판 구현하기 4 (게시글 등록 기능 생성하기)

    들어가기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 시간에는 앞서 게시글 목록 만들 때, 직접 쿼리로 날렸던 게시글 등록 기능을 GUI로 표현할 수 있도록 구성해보도록 하겠습니다. 게시글 등록 화면 만들기 게시글 등록은 사용자가 입력한 내용이 서버에 저장되는 순서로 진행되므로, 게시글 목록을 만들 때와는 다르게 화면 먼저 만들어보도록 하겠습니다. templates/board 폴더 내에 boardWrite.html 파일을 생성하고 다음과 같이 작성합니다. 게시판 등록 제목 : 사용자로부터 입력된 값을 서버로 전달하기 위해 을 이용합니다. action 속성에는 요청을 수행할 서버의 주소를 입력합니다. 이 단계에서는 아직 /board/insertBoard.d..

    [SpringBoot] 게시판 구현하기 3 (게시판 목록 만들기)

    들어가기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 게시판 구현하기 2 까지 진행하면서, 기본 설정은 완료하였습니다. 이번 시간에는 스프링 MVC 구조 및 역할을 생각하며 게시판 목록 만들기를 진행해보도록 하겠습니다. DTO 만들기 DTO(Data Transfer Object)는 어플리케이션 내의 각 계층 간 데이터를 주고 받는 데 사용되는 객체입니다. 각 계층이란 뷰, 컨트롤러, 서비스, DAO 그리고 데이터베이스 등을 의미합니다. 1. 최상위 패키지인 board 패키지 밑에 board.dto 폴더를 생성하고 BoardDto 클래스를 생성합니다. 2. BoardDto 클래스에 하기와 같이 작성합니다. package board.board.dto; import..

    [SpringBoot] 게시판 구현하기 2 (게시판을 만들기 위한 기본 설정)

    시작하기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. 이번 포스팅에서는 간단하게 게시판을 구현해보도록 하겠습니다. 앞서 데이터베이스를 만들기만 했으므로, 데이터베이스에 데이터도 넣어보고 스타일 시트 추가 및 롬복 설정을 해보겠습니다. 데이터베이스 구성하기 먼저 기존에 생성한 데이터베이스(example)에 테이블을 만들어보도록 하겠습니다. 아래 쿼리를 이용해 게시글을 저장할 테이블을 생성합니다. DBeaver 기준으로 table 생성하는 방식은 아래와 같습니다. 1. table을 생성하고자 하는 database를 마우스 오른쪽 버튼으로 클릭한 후 Create > Table을 클릭합니다. 2. 그 후 나온 화면에서 테이블명을 정해준 후 오른쪽 하단에 위치한 컬럼 ..

    [Spring] 스프링 프레임워크 이해하기

    시작하기 전에 하기 포스팅은 "스프링부트 시작하기(김인우 저)" 책을 공부하며 적은 포스팅입니다. Spring Framework란? 웹 어플리케이션 개발을 할 때 사용할 수 있는 프레임워크는 다양합니다. 그 중 많이 사용되는 프레임워크를 보면, 스프링 MVC 프레임워크를 말할 수 있습니다. Spring 프레임워크는 일반적인 사용자를 위한 웹 어플리케이션부터 기업 환경의 어플리케이션까지 다양한 범위에서 사용됩니다. 한국에서는 전자 정부 표준 프레임워크로 사용하고 있어 사실상의 표준으로 불립니다. Spring을 이용한 주요 프로젝트 프로젝트 이름 설명 Spring framework 현대 자바 기반의 어플리케이션을 개발하는 데 기반이 되는 프레임워크입니다. 스프링의 핵심은 어플리케이션의 기반을 제공함으로써 개..