분류 전체보기: 2105개의 글
스프링을 처음 사용하면 @Autowired, @Component, @Controller 등 다양한 어노테이션을 사용해야한다. 그런데 이 어노테이션들이 정확히 어떤 역할을 하는지 모르고 일단 사용하는 경우가 많이 있다. 오늘은 스프링 빈을 등록하는 2가지 방법을 알아보도록 하자. 1. 컴포넌트 스캔과 자동 의존관계 설정 -> 컴포넌트 스캔의 원리는 기본적으로 @Component 어노테이션이 있으면 자동으로 스프링 빈으로 등록된다. 참고로, @Component 어노테이션은 @Controller , @Service, @Repository를 포함한다. -Controller @Controller public class MemberController { private final MemberService member..
Google STMP -학교에서 진행하는 프로젝트에서 비밀번호 찾기를 구현하면서 알게된 방법이다. 개발환경 IntelliJ JPA SpringBoot Gradle *준비작업 1. 여기를 클릭해서 보안 수준이 낮은 앱의 액세스를 [허용] 으로 변경해야 합니다. 2. gradle 의존성을 추가합니다.. implementation 'org.springframework.boot:spring-boot-starter-mail' *maven을 사용한다면 아래 코드를 추가합니다. org.springframework.boot spring-boot-starter-mail 1.4.3.RELEASE 3. application.yml에 아래 내용 추가합니다. (git 커밋할때 아래 정보가 유출되지 않도록 주의!) spring:..
스프링 시큐리티는 "인증"과 "권한"이 있다. Authentication(인증) : '이것' 이라고 주장하는 주체(user)가 '이것'이 맞는지 확인하는 것 코드에서 Authentication : 인증 과정에 사용되는 핵심 객체 ID/PASSWORD 등 여러 방식으로 인증에 필요한 값이 전달되는 하나의 인터페이스 #인증방식의 종류 1) credential 기반 인증 : 사용자명과 비밀번호를 이용한 방식 2) 이중 인증 (twofactor 인증) : 사용자가 입력한 개인 정보를 인증 후 추가인증(OTP) 하는 방법 3) 하드웨어 인증 : 자동차 키 Spring Security는 credential 기반의 인증을 취한다. 로그인 과정 AuthenticationFilter 필터 리스트 WebAsyncManag..
REST API -웹브라우저에서 실행되는 javascript로 개발한 앱을 위한 서버를 개발할 때, REST API 서비스를 제공하는 서버를 구현한다. REST API 서비스라는 것은 클라이언트의 URL요청에 대해서 JSON형태의 데이터를 출력하는 서버의 메소드를 말한다. Single-Valued Association - 두 개의 테이블 ex) employee와 department에서 외래키(employee 테이블의 departmentId)가 포함된 employee 객체에 department 멤버 변수를 구하는 것이 기본이다.(필수) @Entity public class Employees { .... 생략 ... @ManyToOne @JoinColumn(name ="departmentId") Depart..
회원가입 또는 가입 후 휴대폰인증 구현을 위한 API 'coolSMS' 사용방법 : 다날과같은 서비스를 이용하여 문자인증을 구현하기위해서는 실제로 업체와 계약을 통해 진행해야하기때문에 학부 프로젝트에서는 적용할수가 없다. 그래서 비슷하게 흉내내기위해 coolSMS라는 문자메시지 전송 API를 이용해서 구현해보았다. 1. coolSMS 사용 준비 - coolsms 회원가입 하기 - coolsms 개발자센터에 접속합니다. 쿨에스엠에스 - 우주에서 가장 빠르고 안정적이고 쉬운 문자메시지(SMS) 서비스를 제공합니다. 알림톡, 문자메시지를 쉽고 빠르게 전달해 드립니다. developer.coolsms.co.kr -JAVA 클릭 coolsms 사용준비 -아래 화면에 보이는 step1과 step2를 차례대로 실행 ..
학교에서 작은 프로젝트를 하고있는데 포인트충전(결제시스템)을 구현할 방법을 찾아가 아임포트(i'm port)라는 API를 발견하게 되었다. 정말 간편하고 쉽게 결제시스템을 구현할 수 있게 해주는 API다. 아임포트 공식 홈페이지 개발자를 위한 무료 결제연동 API, 아임포트 아임포트를 import하세요. 아임포트의 풍부한 REST API 기능을 이용하면 결제연동이 훨씬 쉬워집니다. 지금 시작하세요. www.iamport.kr 1. 먼저 아임포트 사이트에 가입을 합니다. 2. 회원가입후 시스템설정으로 이동합니다. 시스템설정 초기페이지 3. PG설정(일반결제 및 정기결제) 를 클릭합니다. 시스템 설정 페이지2 4. PG사 카카오페이 선택 후 테스트모드 ON 합니다. 5.전체저장을 누르면 가맹점식별코드(CID..
import java.security.MessageDigest; public class EncryptionUtils { public static String encryptSHA256(String s) { return encrypt(s, "SHA-256"); } public static String encryptMD5(String s) { return encrypt(s, "MD5"); } public static String encrypt(String s, String messageDigest) { try { MessageDigest md = MessageDigest.getInstance(messageDigest); byte[] passBytes = s.getBytes(); md.reset(); byte[..
컨트롤러 클래스 없이 특정 view에대한 컨트롤러를 추가할 수 있다. 아래와 같이 WebMvConfigurer를 구현하는 클래스를 만들고 addViewControllers(ViewControllerRegistry registry) 메소드를 오버라이딩 하면 된다. @Configuration @EnableWebMvc public class SpringMvcConfig implements WebMvcConfigurer { @Override public void addViewControllers(ViewControllerRegistry registry) { //시작페이지 url을 '/'가 아닌 home으로 registry.addRedirectViewController("/", "home"); } } 위 코드는 ..
1. build.gradle 의존성 추가 implementation 'org.springframework.boot:spring-boot-starter-validation' 스프링부트 버전 2.3 이전에는 web 의존성에 validation이 포함되어있었지만 2.3 버전 이후 분리되었습니다. 따라서 스프링부트 2.3 이후의 버전을 사용하시는 분들은 반드시 해당 의존성을 추가해야합니다. 2. 회원가입 DTO 사용자가 회원가입 폼에 입력한 정보들을 담을 DTO를 생성해야 합니다. 여기서는 간단하게 이메일,비밀번호,닉네임,휴대폰번호 정도만 받아보겠습니다. @Getter public class UserDto { @NotBlank(message = "닉네임을 입력해주세요.") @Size(min = 2, max = ..
영속성 컨텍스트(persistence context) : 엔티티를 영구 저장하는 환경 특정 엔티티를 영속 상태로 만들 때 연관된 엔티티도 함께 영속 상태로 만들고 싶다면 CASCADE 기능을 사용하면 된다. *JPA에서 엔티티를 저장할 때 연관된 엔티티는 모두 영속 상태이어야 한다. @Entity @Data public class Person { @Id @GeneratedValue private Long id; @OneToMany(mappedBy ="person" , cascade= CascadeType.PERSIST) private List children = new ArrayList(); } 위와 같이 cascade = CascadeType.PERSIST로 지정하면 부모를 영속화할 때 연관된 자식들도..