SpringBoot 38

[Spring Boot] REST API 생성 순서

이전에 https://imbay.tistory.com/331, https://imbay.tistory.com/97 에서 BaseEntity와 Repository - Service - Controller 개념은 작성했었지만, 시간이 좀 지나서 다시 순서를 되짚어보려고 한다.(이전에 면접에서 API 개발시 첨부터 끝까지 말로 코딩을 해보라 하셔서,, 갑자기 머리가 하얘져서 잘 말하지 못한 것 같아 다시 순서 되새겨봅니다,,) 1. BaseEntity 클래스 생성 1-1. 각 도메인마다 엔티티 클래스를 생성하기 전에, 중복되는 컬럼은 BaseEntity에 미리 만들어 놓는다.예로 create나 update된 날짜는 각 테이블마다 존재하기 때문에 BaseEntity에 createDate과 updateDate 컬..

[Spring Boot] AWS S3를 사용한 이미지 업로드 방법

AWS S3 버킷 생성버킷 생성https://imbay.tistory.com/129 참고버킷 정책 설정AWS S3- 버킷- 해당 버킷 클릭- 권한- 버킷 정책버킷 정책을 편집을 누르고 아래 코드를 추가해준다.{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetObject", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::{버킷이름}/*" } ]} 스프링부트 이미지 업로드 구현build.grad..

[Hanaro] 67일차 / 시큐어 코딩 (입력데이터 검증), Spring Boot (네비게이션 바, 페이징)

시큐어 코딩 01 입력데이터 검증 및 표현 SQL 삽입 DB 입력 데이터에 대한 유효성 검증을 해야한다. 예시 JDBC String gubun = request.getParameter("gubun"); // 사용자 입력 값 변수를 ? 문자로 바인딩 변수 사용 String sql = "SELECT * FROM board WHERE b_gubun = ?"; Connection con = db.getConnection(); // PreparedStatement 사용 PreparedStatement pstmt = con.prepareStatement(sql); pstmt.setString(1, gubun); ResultSet rs = pstmt.executeQuery(); Hibernate String name..

[Spring Boot] Repository - Service - Controller

Repository - Service - Controller Repository - Service - Controller 순으로 JPA 사용하기 Repository 인터페이스 생성 어노테이션 주입 @Repository JpaRepository 상속받기 (extends) 기본 함수 findAll findById save (update, insert) delete 사용자 생성 함수 사용자가 조합하여 생성 가능 예시 List findAllByReplyBoardIdx(Long replyBoradIdx); void deleteById(Long replyIdx); Service 클래스 생성 어노테이션 주입 @Service @RequiredArgsConstructor Repository 생성자 주입 final pri..

[Hanaro] 63일차 / Spring Boot (Repository - Service - Controller)

JPA (Repository - Service - Controller) Repository - Service - Controller 순으로 JPA 작성하기 Repository 인터페이스 생성 어노테이션 주입 @Repository JpaRepository 상속받기 (extends) 기본 함수 findAll findById save (update, insert) delete 사용자 생성 함수 사용자가 조합하여 생성 가능 예시 List findAllByReplyBoardIdx(Long replyBoradIdx); void deleteById(Long replyIdx); Service 클래스 생성 어노테이션 주입 @Service @RequiredArgsConstructor Repository 생성자 주입 fin..

[Hanaro] 62일차 / REST API(CRUD), JSP

CRUD 기능 ArrayList → JPA (MySQL) 및 Model → REST API 변환하기 이전 Model 사용 Controller @Controller @RequiredArgsConstructor public class ProductController { final ProductRepository productRepository; // 전체 상품 출력 @GetMapping("/") public String main(Model model) { List productList = productRepository.findAll(); model.addAttribute("productList", productList); return "productList"; } // 상품 추가 폼 출력 @GetMappi..

[Spring Boot] Scheduler

Scheduler 스케줄러 관련 어노테이션 @EnableAsync 비동기적으로 처리하도록 제공하는 어노테이션 각기 다른 스레드에서 실행된다. @Async 해당 메소드 로직이 시작되는 시간을 기준으로 milli sec 간격으로 실행 이전 작업이 완료될 때까지 다음 작업이 진행되지 않음 @Scheduled(fixedRate = n) 스케줄 옵션을 설정하는 어노테이션 해당 어노테이션을 사용하면 일정한 시간 간격이나 특정 시간에 코드가 실행되도록 설정할 수 있다. n에는 초를 설정하며, 값이 1000이면 1초이다. 속성 fixedRate 작업 수행시간과 상관없이 일정 주기마다 메소드 호출 fixedDelay 작업을 마친 후부터 주기 타이머가 돌아 메소드 호출 initialDelay 스케줄러에서 메소드가 등록되자..

[Spring Boot] TDD

테스트 주도 개발 (Test Driven Development, TDD) 테스트 관련 어노테이션 및 클래스 @WebMvcTest @Controller, @RestController가 설정된 컨트롤 클래스를 테스트한다. @Service, @Repository에는 사용할 수 없다. MockMvc 웹 API를 테스트할 때 가상의 HTTP 요청을 만들어주는 클래스이다. @Disabled 테스트 메소드를 비활성화 시키는 어노테이션 @BeforeAll 테스트 클래스 기준으로 테스트 메소드들이 실행되기 전에 한번만 실행 @AfterAll 테스트 클래스 기준으로 테스트 메소드들이 실행된 후에 한번만 실행 예로 리소스 정리 같은 코드 작성 @BeforeEach 각 테스트 메소드가 실행되기 전에 매번 실행 @AfterEa..

[Hanaro] 61일차 / Spring Boot (Test, Scheduler)

테스트 주도 개발 (Test Driven Development, TDD) 테스트 관련 어노테이션 및 클래스 @WebMvcTest @Controller, @RestController가 설정된 컨트롤 클래스를 테스트한다. @Service, @Repository에는 사용할 수 없다. MockMvc 웹 API를 테스트할 때 가상의 HTTP 요청을 만들어주는 클래스이다. @Disabled 테스트 메소드를 비활성화 시키는 어노테이션 @BeforeAll 테스트 클래스 기준으로 테스트 메소드들이 실행되기 전에 한번만 실행 @AfterAll 테스트 클래스 기준으로 테스트 메소드들이 실행된 후에 한번만 실행 예로 리소스 정리 같은 코드 작성 @BeforeEach 각 테스트 메소드가 실행되기 전에 매번 실행 @AfterEa..

728x90