[SpringBoot] Validation
·
Web & Android/SpringBoot
Validation이란 null 값에 대해서 접근하려고 할 때 null pointer exception이 발생함으로, 이러한 부분을 방지하기 위해서 미리 검증하는 과정이다. public void run(String account, Spring pw, int age){ if(account == null || pw == null){ return } if(age == 0){ return } // 정상 Logic } Validation 사용 이유 검증해야 할 값이 많은 경우 코드의 길이가 길어진다. 구현에 따라서 달라질 수 있지만 Service Logic과의 분리가 필요하다. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며, 재사용의 한계가 있다. 구현에 따라 달라질 수 있지만, 검증 Logic이 변경되..
[SpringBoot] HTTP form에서 put, delete 사용법
·
Web & Android/SpringBoot
💡 HTTP form에서는 get, post만 지원한다! 1) application.properties에 아래의 설정 값 추가 spring.mvc.hiddenmethod.filter.enabled=true 2) html에 아래 코드 추가 예제
[SpringBoot] REST API
·
Web & Android/SpringBoot
REST : 자원을 이름으로 구분하여 해당 자원의 상태를 주고받는 모든 것 API : 애플리케이션 프로그래밍 인터페이스 : 응용 프로그램이 서로 통신할 수 있도록 하는 일련의 규칙 REST API 컴퓨터와 컴퓨터, 서버와 클라이언트 등 다양한 애플리케이션 연결 구조에서 프로그래밍 인터페이스 규격에 맞춰 자원의 이름으로 구분하여 자원의 상태를 주고받는 행위 GET 해당 리소스를 조회함(read) POST 해당 URL를 요청하면 리소스를 생성(create) PUT 해당 리소스 수정(update) DELETE 해당 리소스 삭제(delete) REST 구성 자원(Resource) - URI 행위(Verb, Method) - HTTP Method(요청 방식) - GET, POST 등 표현(자원의 형태, Repre..
[SpringBoot] Bean
·
Web & Android/SpringBoot
💡 스프링 컨테이너에서 관리하는 자바 객체 Bean Scope 빈이 존재할 수 있는 범위를 뜻함 종류 싱글톤(Singleton) 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프 스프링 컨테이너에서 한 번 생성됨 컨테이너가 사라질 때 bean도 제거됨 프로토타입(Prototype) 모든 요청에서 새로운 객체를 생성하는 것 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프 웹 관련 스코프 request : 웹 요청이 들어오고 나갈 때까지 유지되는 스코프 session : 웹 세션이 생성되고 종료될 때까지 유지되는 스코프 application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프
[SpringBoot] 스케줄링
·
Web & Android/SpringBoot
💡 ScheduledExecutorService과 SpringBoot의 @Scheduled로 스케줄링을 설정할 수 있다. ScheduledExecutorService은 인수있는 메서드에도 적용할 수 있지만 @Scheduled는 인수있는 메서드에 적용이 불가하다. ScheduledExecutorService Java 1.5부터 지원되는 스케줄링이 가능한 Executor 서비스로 인터페이스이며, 구현체로 ScheduledThreadPoolExecutor()가 있다. 예제 코드 @Service @RequiredArgsConstructor @Transactional public class BattleRivalService { private final BattleRepository battleRepository;..
[SpringBoot] Google 이메일 인증
·
Web & Android/SpringBoot
의존성 추가 Gradle implementation 'org.springframework.boot:spring-boot-starter-mail' Maven org.springframework.boot spring-boot-starter-mail ⇒ 만약 의존성을 추가했는데도 Service 코드 작성 후 에러가 생긴다면 JavaMail API jar을 추가해보기! Google SMTP Google SMTP 비밀번호 생성 구글 로그인 후 [계정 관리] - [보안] - [2단계 인증] 설정 2. [앱 비밀번호] - [메일] - [사용할 기기] 생성 3. 생성 버튼 클릭하면 비밀번호가 생성됨 → 복사하여 spring.mail.password 에 넣어주면 된다. 4. Gmail [설정] - [전달 및 POP/IM..