1.DTO(Data Transfer Object)계층 간 데이터 전달을 위한 객체입니다.스프링부트 애플리케이션에서는 컨트롤러, 서비스, 리포지토리 계층이 명확히 나뉘어져 있고, 이 계층 간에 데이터를 주고받기 위해 DTO를 활용합니다. DTO는 주로 데이터를 외부 API 요청 및 응답, 또는 내부 서비스 계층과의 데이터 전달 시 사용됩니다. 2.DTO의 body요소 무시?DTO 객체에 포함되지 않은 요청의 body 요소는 기본적으로 무시됩니다. 스프링부트에서 @RequestBody를 통해 데이터를 받을 때, 클라이언트가 요청 본문에 포함한 데이터가 DTO 클래스에 정의된 필드와 매핑됩니다. DTO 클래스에 정의되지 않은 필드는 자동으로 매핑되지 않고, 무시됩니다. 만약 다음과 같은 상황이면 pric..
BackEnd/SpringBoot
0.Lombok반복적인 코드를 줄여주는 라이브러리Annotation을 기반으로 Getter,Setter 와 같은 코드들을 작성하지않고 사용할수있도록만든다.@Getter, @Setter: Getter/Setter 자동 생성.@ToString: toString() 메서드 자동 생성.@EqualsAndHashCode: equals()와 hashCode() 자동 생성.@NoArgsConstructor, @AllArgsConstructor, @RequiredArgsConstructor: 다양한 형태의 생성자 자동 생성.@Data: 주요 메서드 (Getter, Setter, ToString, EqualsAndHashCode) 자동 생성.@Value: 불변 객체 생성.@Builder: 빌더 패턴 자동 생성.@Slf4..
1.Swagger 란?RESTful API를 설계, 문서화, 테스트, 관리하는 데 사용되는 오픈 소스 프레임워크이다.직관적인 인터페이스와 자동화된 문서화를 제공한다. 2.SpringBoot와 연동2-1.SpringDoc OpenAPI Starter WebMVC UISpring Boot 애플리케이션에서 OpenAPI 3.0 사양에 맞춘 API 문서를 자동으로 생성하고, Swagger UI를 통해 API를 시각화할 수 있게 해주는 라이브러리이다. 의존성을 그대로 복사해서 프로젝트 의존성에 추가한다.https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-starter-webmvc-ui org.springdoc springdoc..
1.AuctionUser유저가 소유하는 아이템, 닉네임을 추가하였고 기존 name 속성을 userid 로 바꿨다.@Getter@Setter@Entitypublic class AuctionUser { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(unique=true) private String userid; @Column(unique=true) private String usernickname; private String password; @Column(unique=true) private String email; private Integer mon..
1.매핑우선기본적인 나의 메인페이지에 매핑하기 위해 필요한것은 컨트롤러와 html 템플릿 파일이다. 2.HomeController.java나의 기본적인 HomePage에 대한 매핑을 처리할 부분이다. 나는 이때 Get으로 / 페이지에 들어온다면 /auction/list로 리다이렉트시켜줄것이다.package com.example.controller;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.GetMapping;@Controllerpublic class HomeController { @GetMapping("/") public String root(){ ..
1.엔티티 클래스 관련 어노테이션1-1.@EntityJPA 엔티티임을 명시하는 가장 기본적인 어노테이션입니다.데이터베이스의 테이블과 Java 객체 간의 매핑을 설정하는 역할을 합니다.테이블 이름의 기본값은 클래스 이름으로 매핑됩니다.@Entitypublic class User {} 1-2.@Table@Entity와 함께 사용하며 엔티티가 매핑될 데이터베이스 테이블 정보를 정의합니다.@Entitiy로 할경우 테이블 이름이 클래스 이름으로 되지만 @Table을 통해 지정할수있다.name: 테이블 이름을 지정합니다. schema: 테이블이 속하는 스키마를 지정합니다. uniqueConstraints: 테이블에 대한 고유 제약 조건을 정의합니다.@Entity@Table(name = "users") // 테이블..
0.properties 설정하기우선 H2랑 JPA, Hibernate 를 사용하기 위해서 properties를 세팅해줍니다.# 이름spring.application.name=auction# DATABASE# H2 활성화spring.h2.console.enabled=true# 접근 경로spring.h2.console.path=/h2-console# 연결 URLspring.datasource.url=jdbc:h2:~/local# H2 드라이버 클래스 이름spring.datasource.driverClassName=org.h2.Driver# 사용자 이름spring.datasource.username=sa# 사용할 비밀번호spring.datasource.password=# JPA# Hibernate가 사용할 데..
0.개요스프링부트를 처음 접하고 점프 투 스프링 부트를 통해 따라만들어보며 배워보았던것이 2024년 07월(작성시점 약 3달전),군대를 전역하고 나서 웹개발에 대한 다양한 것들을 현재까지 멈추지않고 계속하여 새로운것,몰랐던것을 접하는것을 올해의 목표로 잡고가고있다. 하지만 그래도 이런 거를 배웠으면 나만의 무언가 무언가를 만들고싶은 마음이 들기 시작하였고, 스프링부트는 나중에도 자주 애용하게될거같은 느낌이 들어서 우선 느낌이 오는대로 만들고 싶은것을 계획없이 만들어 보기로 하였다. 1. 만들것?게임내부에 있는 옥션(경매장)같은 기능을 구현하는 사이트를 만들려고한다. 실제 게임의 사이트는 아니고 가상의 물품과 가격 데이터를 넣어서 만들어 볼려고한다. 여기서 추가적인 부분은 아직 생각하지않았다....