SMTP 콘솔로 찍던 javaMailSendor 대신 구글의 SMTP를 이용해 실제 메일을 보낸다. 먼저 구글 계정이 필요하다. 가입 완료했으면 계정관리 > 보안에 들어가 2단계 인증을 한다. 이후 2단계 인증 탭을 클릭하고 스크롤을 아래로 내리면 앱 비밀번호를 만들 수 있는 탭이 있다. 2021년부터 앱 비밀번호는 구글에서 권장하지 않는 방법이고 실제 이메일 서비스보다는 제한이 있지만 설정이 간단해서 사용한다. // application.yml spring: mail: host: smtp.gmail.com port: 587 username: ${mail.username} password: ${mail.password} properties: mail: smtp: auth: true timeout: 500..
1. 문법적 차이 추상화는 변수와 다양한 접근제한자 사용이 가능하다. 둘 다 인스턴스는 생성할 수 없다. 문법적으로는 바뀌어야 하는 값을 가지거나, 접근제한자를 통해 보안성을 높이고 싶을 때 추상화클래스를 사용할 수 있다. 2. 개념적 차이 관련 포스팅 클래스 vs 인터페이스 클래스는 is kind of의 분류의 개념이고 인터페이스는 is able to의 기능추가의 개념이다. 추상화 클래스는 풍부한 개념과 약간의 기능의 추상화를 통해 상속에 우선순위를 둔다. 인터페이스는 기능의 추상화를 통해 다형성에 우선순위를 둔다. 예를들어 동물병원에서 동물과 같이 개념적으로 재사용할 부분은 많지만 실제 객체로 생성되기엔 너무 추상적인 개념일 때 추상화 클래스를 사용할 수 있다. 동물병원에서 취해야할 서비스를 인터페이..
인터페이스가 가진 객체지향의 특징 캡슐화, 추상화, 다형성, 상속성 그렇게 생각한 이유는? 1. 캡슐화 : 인터페이스의 구현체가 메소드를 어떻게 구현하는지 모르지만, 추상 메서드를 사용 2. 추상화 : 객체에서 특성을 제외하고 기능만이지만 추상화를 사용해 인터페이스 정의 3. 다형성 : 인터페이스를 구현할 때는 추상화 메서드를 반드시 구체화시켜야하는데 이 과정에서 메소드 오버라이딩 발생 구현체의 인스턴스의 참조변수로 구현체가 아닌 추상화된 인터페이스를 사용 가능 4. 상속성 : 인터페이스의 구현체는 인터페이스의 기능들을 재사용