🌱JAVA/시나리오 개발 (8) 썸네일형 리스트형 <SpringBoot> 로그인 및 회원가입 구현 # 예제 게시판으로 개발하고 있는 SpringBoot 프로젝트에 로그인 및 회원가입 구현하기 - 일단 구현된 기능과 화면을 보면 아래와 같다. - mp4 버전은 아래와 같다. # Login (로그인) - 코드는 아래와 같다. - Controller LoginController @Slf4j @Controller @Component public class LoginController { @Autowired ArticleRepository articleRepository; @Autowired LoginRepository loginRepository; @Autowired MemberRepository memberRepository; @GetMapping("/login") //주소 public String log.. <SpringBoot> DB 변경하기 H2 → Postgresql # DB를 H2에서 Postgresql로 변경해보자. 1. Postgresql DB 설치 및 연동은 아래의 URL에서 확인 후 설정한다. 2022.04.11 - [⭐ SpringBoot/𝄜 게시판 with SpringBoot] - 27. DB 설치 및 연동 27. DB 설치 및 연동 # PostgreSQL을 설치하고, 이를 스프링 부트와 연동한다. # 여기서는 PostgreSQL을 기반으로 연동을 하지만, 다른 SQL 프로그램들도 비슷한 흐름으로 연동하면 된다. DB 연동과정 1. DBMS를 설치 (PostgreSQL) 2 may9noy.tistory.com 2. build.gradle 파일에 Postgresql 라이브러리 추가 // PostgreSQL 라이브러리 추가 runtimeOnly 'org.po.. <SpringBoot> 게시판에 검색 기능 구현하기 # 예제 게시판에 검색기능을 구현해보자. 아래와 같이 생긴 녀석인데, 여기에 검색 기능을 넣어보자. 게시판의 기본틀은 아래와 같다. 여기서 구현을 해야할것은 위에 검색창에서 제목과 관련된 아무내용이나 입력하고 Search를 클릭했을때 화면에 검색 조건에 해당한 내용만 표시해 준다. 그리고 해당 페이지에 게시판 리스트로 이동? 이정도의 아이콘만 넣어주면 될거 같다. 쿼리는 LIKE 문으로 처리를 해주면 될거 같고, 컨트롤러는 새로 만들던지 아니면 기존에 있는 클래스에 구현을 해주던지 하면 될거 같고, 뭐 그렇다. 그럼 개발을 해볼까. 1. 검색 결과 페이지 만들기 일안 결과 후 리턴되는 검색 결과 페이지를 만든다. 뭐 SPA다 뭐다 하는 기능들이 있지만 나는 그런거는 모르므로 새로 페이지를 만들어서 값을 .. <SpringBoot> Swagger 적용해보기 # SpringBoot 프로젝트에 Swagger 스웨거 를 적용해보자. - 현재 예제로 개발하고 있는 게시판 프로젝트에 적용을 해보자. 1. 일단 build.gradle에 라이브러리를 추가한다. 일단 Swagger3.0은 스프링 부트 버전 때문인지 적용하면 에러가 발생, 트러블 슈팅 보다는 다른 라이브러리를 추가하는게 낫겠다 싶어서 open-api 라이브러리를 추가함. // Swagger implementation 'org.springdoc:springdoc-openapi-ui:1.6.6' 2. SwaggerConfig.java 파일을 생성하고 아래의 코드를 작성해준다. - 기본적인 설정 코드인거 같고, package com.example.firstproject; import io.swagger.v3.o.. <SpringBoot> insert2개 수행, 1개는 그냥 insert, 1개는 Admin 붙여서 insert # 시나리오는 아래와 같다. - 사용자가 insert 수행 시 제목과 내용을 입력하도록 되어 있다. ID는 자동으로 증가하는 방식이고 PK로 되어 있다. 여기서 사용자가 제목과 내용을 입력 시 1개가 INSERT 되는 것이 아닌 2개가 INSERT 되고 1개는 그냥 INSERT가 수행되고 나머지 1개에는 제목과 내용에 Admin이라는 문구가 추가되어 INSERT 하는 시나리오이다. - 실행 화면은 아래와 같다. MP4 버전 코드 설명 (매우 조잡한거 같음.) @Slf4j @Controller @Component public class HomeworkController { @Autowired ArticleRepository articleRepository; @PostMapping("/articles/cre.. <SpringBoot> 댓글이 있는 게시글 삭제 시 오류 메세지 출력 및 게시글 삭제하기 # 문제점 해결하기 일단 게시글 삭제 시 댓글이 있으면 오류를 내뿜는 문제가 있었다. 그도 그럴것이 게시글 DELETE를 하는데 아래의 정보만 가져온다. Article target = articleRepository.findById(id).orElse(null); 위 코드를 보면 id를 SELECT해서 가져오는 정보를 target에 담아둔다. SELECT * FROM ARTICLE WHERE ID = 1; ID CONTENT TITLE 1 may9noy email_name 근데 이게 뭐가 문제냐면 댓글이 달리면 해당 페이지를 삭제를 할때 댓글 내용까지 함께 삭제를 하던지, 아니면 오류 메시지를 보여주던지 해야하는 문제가 있었다. 나는 여기서 후자를 선택했다. 게시글에 댓글이 있으면 댓글을 삭제 후 게시글.. 내 마음대로 API 개발하기 # 시나리오 작성 1. 사용자가 가입을 하면 random 함수 1백만개의 숫자중 1개의 고유한 값을 user테이블에 insert 한다. 2. userid와 1백만개의 숫자를 조합하여 인증 테이블에 insert 한다. - 시나리오를 억지러 만드니까 산으로 가는 느낌은 있는데 해보자. ㅋㅋ 1. 사용자가 가입을 하면 random함수 백만개중 1개의 고유값을 user테이블 fixed_value값에 insert 한다. - 컨트롤러는 변경이 없다. /** * 시나리오 * 1. userid 값이 하나씩 증가하면서 입력 될때, 1백만개의 숫자중 1개의 값을 fixed_value 라는 컬럼에 자동으로 입력되도록 한다. * 2. userid와 1백만개의 숫자를 조합하여 인증 테이블에 insert 한다. */ @PostM.. Insert 시 PK 값을 자동으로 늘려주는 API # 특정 값을 Insert 시 PK 값을 자동으로 늘리면서 Insert 하는 API # Controller /** * 시나리오 * 1. 만약 user_table 의 userid=1, username 이 김승현 인 경우 * 2. userid값이 하나씩 증가하며 입력한 내용을 Insert하는 API이다. */ @PostMapping("/apply_some_data_save") public GeneralResponse apply_some_data_save(@RequestParam(value = "userid") Long userid, @RequestParam(value = "published") Boolean published, @RequestParam(value = "user_description") Str.. 이전 1 다음