스파르타 코딩클럽_ 내일 배움 캠프 Spring 트랙 6기
[프로젝트] 뉴스 피드 만들기
2023.06.30 ~ 2023.07.07
<프로젝트 정보>
개발도구 : IntelliJ
프로그래밍 언어 : Java
데이터베이스 : MySQL
프레임워크 : Spring
와이어프레임 : Figma
ERD 설계 : ERD Cloud
<프로젝트 내용>
프론트 개발을 하려고 시도했으나..아직 미 완성된 서버 개발도 있고, js를 배운 적이 없는 관계로 프론트와 백 연결이 불가할 것으로 판단됬다.
다음날 있는 발표 준비 등으로 시간도 부족했기 때문에 지금 배우고 있고 우리의 주특기를 더 완벽하게 만들어보자는 의견으로 모아져
프론트엔드 부분은 빠르게 놔버리고 코드 리뷰와 함께 점검도 하고 발표를 위한 준비를 했다.
전날 시작한추가기능 구현도 목표에 맞게 전부 구현에 성공했다.
로그아웃, 게시글 내 댓글기능, 게시글과 댓글의 공감기능 그리고 가장 오래 걸린 이메일 회원가입까지!
물론 전부 참여 할 수는 없었지만 다같이 코드리뷰하면서 이해하는 시간이 있어서 다행이었다.
[EmailConfig]
package com.sparta.newspeed.config;
import java.util.Properties;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;
@Configuration
@PropertySource("classpath:email.properties") //설정 파일을 읽어 속성을 주입
public class EmailConfig { //이메일 설정 관련 class
@Value("${mail.smtp.port}")
private int port;
@Value("${mail.smtp.socketFactory.port}")
private int socketPort;
@Value("${mail.smtp.auth}")
private boolean auth;
@Value("${mail.smtp.starttls.enable}")
private boolean starttls;
@Value("${mail.smtp.starttls.required}")
private boolean startlls_required;
@Value("${mail.smtp.socketFactory.fallback}")
private boolean fallback;
@Value("${AdminMail.id}")
private String id;
@Value("${AdminMail.password}")
private String password;
@Bean
public JavaMailSender javaMailService() {
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
// Gmail SMTP 서버 호스트를 설정
javaMailSender.setHost("smtp.gmail.com");
// Gmail 계정의 아이디를 설정 : id 변수는 사용자의 Gmail 계정아이디로 대체
javaMailSender.setUsername(id);
javaMailSender.setPassword(password);
// Gmail SMTP 서버 포트 번호를 설정
javaMailSender.setPort(port);
// 메일 전송에 대한 구체적인 속성들을 설정
javaMailSender.setJavaMailProperties(getMailProperties());
// 기본 인코딩을 UTF-8로 설정
javaMailSender.setDefaultEncoding("UTF-8");
return javaMailSender;
}
private Properties getMailProperties()
{
Properties pt = new Properties();
// SMTP 서버의 소켓 포트 번호를 설정
pt.put("mail.smtp.socketFactory.port", socketPort);
// SMTP 서버에서 사용자 인증을 요구하는지 여부를 설정
pt.put("mail.smtp.auth", auth);
// STARTTLS 암호화를 사용하여 연결을 암호화하는지 여부를 설정
pt.put("mail.smtp.starttls.enable", starttls);
// STARTTLS 암호화를 필수로 요구하는지 여부를 설정
pt.put("mail.smtp.starttls.required", startlls_required);
// 소켓 팩토리의 대체 메커니즘을 설정
pt.put("mail.smtp.socketFactory.fallback",fallback);
// 소켓 팩토리 클래스를 설정 : SSL 소켓 팩토리 클래스를 사용하도록 "javax.net.ssl.SSLSocketFactory"로 설정
pt.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
return pt;
}
}
+
포기한 프론트..
기능을 구현하다보니 욕심이 나는 부분이 생겨서 처음 작성한 ERD, API 보다 더 많은 기능을 구현했기때문에ERD와 API 수정도 함께 진행했다.
API 명세 : https://documenter.getpostman.com/view/27971774/2s93zFXytK
발표까지 잘 마무리 할 수 있으면 좋겠다.
'🏕️내일배움캠프 > 📂뉴스 피드 프로젝트(23.06.30)' 카테고리의 다른 글
뉴스 피드 프로젝트 6일차_코드 발표 및 회고 (0) | 2023.07.07 |
---|---|
뉴스 피드 프로젝트 4일차_추가 기능 구현 (0) | 2023.07.05 |
뉴스 피드 프로젝트 3일차_필수 구현 기능 코드 테스트 및 추가 기능 구현 시작 (0) | 2023.07.05 |
뉴스 피드 프로젝트 2일차_필수 구현 기능 코드 작성 (0) | 2023.07.03 |
뉴스 피드 프로젝트 1일차_S.A와 와이어프레임 제작,ERD 설계, API 명세 작성 (0) | 2023.07.03 |