[spring]스프링 16

3. MariaDB설치

MariaDB설치https://mariadb.org/  MariaDB Foundation - MariaDB.org… Continue reading "MariaDB Foundation"mariadb.org 위 주소로 들어가서 마리아DB를 설치해줍니다.  저는 MariaDB Server 11.4.4 버전을 선택했습니다.마리아DB는 버전을 선택할 때 지원 기간이 넉넉한지 확인해줘야 합니다. 단기 개발 버전을 선택하게 된다면 1년 이내의 기간 이후에는 사용을 못하게 될 수도 있기 때문입니다.  Release scheduleMariaDB Foundation ensures that MariaDB Server has a steady cadence of releases. Until MariaDB Server 10.6,..

[spring]스프링 2024.12.30

[Spring 게시판] 13. UserDetails, UserDetailsService를 이용한 User 폴더 구조

User 정보를 관리하는 코드를 작성해 보겠습니다. 다른 Entity들과는 다르게 User 클래스는 UserDetails를 상속받습니다. 또한 UserService 클래스는 UserDetailsService를 상속받습니다. UserDetails와 UserDetailsService는 spring security 의존성을 추가함으로써 이용 가능합니다. build.gradle spring-boot-starter-security를 추가해줍니다. User.java package com.homepage.user.entity; import java.util.Collection; import java.util.List; import org.springframework.security.core.GrantedAuthori..

[spring]스프링 2023.09.03

[Spring] Jwt 토큰이란?

로그인 기능을 만들기 전, 토큰에 관해 정리하려고 합니다. 이것 때문에도 고생을 좀 했어요. 토큰이 뭔지 아는 것보다 그것을 실제로 어떻게 사용하고 어떻게 관리하는지가 익숙하지 않았기 때문이에요. JWT(Json Web Token) 클라이언트와 서버 간에 인증과 인가 정보를 안전하게 전달하기 위해 데이터를 JSON 형식으로 담아 암호화 한 토큰입니다. 구조는 다음과 같습니다. JWT 토큰 인코딩·디코딩 사이트 https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io ↓ ↓ 위 사이트에 접속하여 좌측에 ..

[spring]스프링 2023.08.08

[Spring 게시판] 12. 게시물 페이징 API

이전 포스팅에서 게시물을 등록·조회·수정·삭제하는 API를 만들어봤습니다. 게시물을 클릭하여 조회할 수 있도록 게시물을 페이징 하는 API도 필요합니다. 일단은 제목과 작성 날짜만 추출해서 20개씩 뽑아보겠습니다. 게시판 페이징 페이징(Paging) : 웹 페이지에서 목록을 작성하거나 전체 결과를 여러 페이지로 분할해서 사용자들에게 보여주는 것 EX) 게시물의 데이터가 100개가 있다고 해보겠습니다. 게시판을 만들기 위해 게시물의 제목이나 번호를 뽑아서 사용자들이 클릭하여 조회할 수 있게 하고 싶습니다. 또한, 게시물 100개를 한 페이지에 두는 것은 너무 많으니 전체 페이지를 5개로 나눠서 20개씩만 보여주고 싶습니다. 이러한 것들을 페이징이라고 합니다. PostsResponseDto.java pack..

[spring]스프링 2023.08.05

[Spring] HTTP Method 요청 메소드 종류와 사용법

API를 만들다 보면 GET 메서드와 POST 메서드 중에서 어떤 상황에서 어떤 것을 사용해야 하는지 헷갈립니다. 정확하게 알아보고 가겠습니다. HTTP 메서드의 종류 HTTP 메서드 종류라고 검색만 하면 쉽게 자료를 얻을 수 있습니다. 하지만 저는 사례 위주로 사용법을 익혀보려고 합니다. 주요 메서드 1.GET 2.POST 3.PUT 4.PATCH 5.DELETE 기타 메서드 6.HEAD 7.OPTIONS 8.CONNECT 9.TRACE GET GET은 웹 서버로부터 데이터를 요청할 때 사용합니다. 서버에 변화를 일으키지 않고 단순 읽기 작업에 적합합니다. 1. 요청 방식 게시판에서 게시글을 조회할 때 GET 요청을 사용했습니다. EX) http://localhost:8080/board/post?cat..

[spring]스프링 2023.08.04

[Spring 게시판] 11. 게시물 수정·삭제 API

이전 포스팅에서 게시물을 등록하고 조회하는 API는 만들었습니다. 이번에는 등록된 게시물을 수정·삭제하는 API를 만들겠습니다. 등록·조회·삭제·수정 이 4가지가 백엔드의 가장 기본이기에 조금만 구체적으로 포스팅 하겠습니다. 게시물 수정·삭제 BoardController.java ... import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PatchMapping; @RestController @RequestMapping("/board") @RequiredArgsConstructor public class BoardController { private final Bo..

[spring]스프링 2023.08.02

[Spring 게시판] 10. 게시물 등록·조회 API + 포스트맨 사용법

처음 회사에서 인턴을 할 때, 저는 웹에 대해서 아무것도 몰랐습니다. API를 만들라고 하는데 API가 뭔지를 몰라서 굉장히 당황스럽고 민망했던 경험이 있습니다. 1. API가 무엇인가 2. 게시물을 등록·조회하는 API 3. 포스트맨을 이용해서 만든 API를 테스트 API API (Application Programming Interface) 컴퓨터 프로그램들끼리 상호작용하기 위해 쓰이는 인터페이스를 의미합니다. 무슨 말인지 이해가 가지 않습니다... 쉽게 말하면 홈페이지에서 로그인 버튼을 눌렀을 때, 프론트에서는 백엔드에 로그인 API를 호출합니다. 백엔드와 프론트엔드가 상호작용 하는 것이라고 할 수 있죠. 그러한 기능들을 API라고 이해하면 좋을 듯 합니다. 포스트맨 설치 후 실행해 주세요. 설치 ..

[spring]스프링 2023.08.01

[Spring 게시판] 9. JPA 환경에서 스프링 실행 + DataSource 연결 에러

처음에 Spring 기본 세팅을 하고 서버를 실행하는 것 까지 성공했습니다. 하지만 그 이후에 코드를 작성하고 다시 실행을 하려니 아래와 같은 에러가 발생합니다. 아래 줄을 해석해보면 Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class DataSource를 설정하는데 에러가 발생했다 : url이 특정되지 않았고 임베디드된 datasource가 설정될 수 없다. 적당한 드라이버 클래스를 결정하는데 실패했다. Consider the following: If you ..

[spring]스프링 2023.08.01

[Spring 게시판] 8. 기본 폴더 구조 정리5 (controller 파일 생성)

기본 폴더 구조 마지막입니다. 이제 본격적으로 API 요청 경로를 스프링의 내부 로직과 연결하겠습니다. Controller는 어떤 경로로 어떤 요청을 받아 어떤 값을 어떤 방식으로 응답할지 결정하는 곳입니다. 그것을 위해 Service 파일을 사용해요. 이제 Controller - Service - Repository의 관계를 아시겠나요? 이런 과정이 모두 DispatcherServlet을 통해 진행되는데 우리 눈에는 보이지 않으니 신경쓰지 맙시다. 우리는 얼른 돈을 벌어야 하니까요. 먼저 위 파일을 열어줍시다! ↓ package com.homepage.board.controller; import org.springframework.http.ResponseEntity; import org.springfr..

[spring]스프링 2023.07.27

[Spring 게시판] 7. 기본 폴더 구조 정리4 (service파일 생성)

이전 포스팅에서는 Repository 파일의 코드를 간단하게 짜봤습니다. Service 파일은 그렇게 만든 Repository를 관리하는 곳입니다. 먼저 코드부터 보고 갈게요. 이 파일입니다! ↓ package com.homepage.board.service; import java.util.NoSuchElementException; import org.springframework.stereotype.Service; import com.homepage.board.entity.Post; import com.homepage.board.dto.PostRequestDto; import com.homepage.board.repository.BoardRepository; import lombok.RequiredArg..

[spring]스프링 2023.07.14