Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 6
·
프로젝트/토이 프로젝트
이번 포스팅에서는 엄청난 우여곡절 끝에 성공해낸 Github actions + Docker CI/CD에 대해 포스팅 하려한다. 원래는 AWS S3에 이미지 CRUD를 진행하려했다. 하지만, 해외가능 카드가 존재하지 않아 발급하였다. 그래서, 남는 시간에 CI/CD를 시작했다. 나의 서버 환경은 다음과 같다. github actions VirtualBox 가상머신 YN01 VirtualBox 가상머신 YN02 설정한 가상머신 네트워크 환경에 대해 간략하게 설명하자면, 통신사 모뎀 -> 와이파이, 데스크탑 -> 데스크탑 내 가상머신(어댑터에 브릿지) 여기서 가상머신 네트워크 설정을 어댑터에 브릿지로 설정하면 모뎀 입장에서는 해당 가상머신을 하나의 호스트로 인식하여 IP를 할당해준다.(가상머신에 대한 자세한 ..
Github + Docker CI/CD
·
개발 기록
어제 토이 프로젝트 관련하여 AWS S3를 사용해 프로필 이미지 구현을 하려했으나 해외결제 가능 카드가 존재하지 않아서 발급받았다. 그래서 시간이 남아 어제부터 오늘까지 기존에 진행하려 했던 git과 docker를 활용한 CI/CD를 해보려 하였다. 하지만, AWS가 아니라 가상 머신에 띄워서 하려다보니 수많은 오류를 만났다. 우선, github actions를 설정하려면 접속할 수 있는 공인 ip가 있어야 하는데 가상머신에 띄우다보니 별도 설정이 필요했다. 또한, 가상 머신으로 인한 네트워크 설정에 수많은 오류를 만나다가 어느 순간부터는 내가 잘못 설정한건지 가상 머신으로 하면 안되는 것들인지 애매해지기 시작했다... 진짜 해볼 수 있는 경우의 수는 다 해본 것 같다.. 그래도 아침 10시부터해서 오늘..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 5
·
프로젝트/토이 프로젝트
이번 글에서는 Order, Item에 관한 CRUD 구현과 관련 통합 테스트를 담은 내용이다. 하지만, 시작하기전에 앞 글에서 수정한 내용이 있다. 1. SecurityConfiguration 수정 주문과 관련된 사항들은 이메일 인증이 된 사용자들이 이용하는게 좋을 것 같다는 생각이 들어 관련하여 적용했다. public class SecurityConfiguration { ... @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ ... http.authorizeHttpRequests( authorize -> authorize.requestMatchers(EXCLUDE_URL.stream() .map(AntPa..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 4
·
프로젝트/토이 프로젝트
이번 글은 이메일 인증을 구현한 내용이다. Google SMTP를 활용하여 구현하였고 Spring에서 제공하는 API를 사용하였다. 이메일 인증의 흐름 사용자는 회원가입 후 이메일 인증을 해야 기타 작업을 할 수 있다. 사용자는 서버에 사용자의 이메일로 인증 번호 전송을 요청한다. 서버는 랜덤 인증 번호를 생성한 뒤 인증 번호를 Redis에 저장한다. 사용자의 이메일로 해당 인증 번호가 전송한다. 클라이언트는 서버에 인증 번호에 대한 검증을 요청한다. 만약 인증번호와 Redis에 저장된 값이 같다면 true를 반환한다. 구글 SMTP 계정 설정 이메일 전송을 위해선 SMTP 설정을 해야하기에 구글 계정 설정을 해줘야 한다. 구글 로그인 -> 프로필 이미지 -> Google 계정 관리 -> 검색창에 "앱 ..
Spring + Redis + S3 + 이메일 인증 + Docker + CI/CD - 3
·
프로젝트/토이 프로젝트
이번 글에서는 통합 테스트와 예외 처리에 관한 내용이다. 하지만, 시작하기전에 앞 글에서 수정한 내용들이 있다. 1. open-in-view 처리 일명 OSIV를 False 하였다. OSIV에 관한 설명은 아래를 참조 바란다. https://hdbstn3055.tistory.com/14 [SpringBoot] OSIV와 성능 최적화 OSIV는 Open Session In View의 약자이다. OSIV는 Spring에 spring.jpa.open-in-view: true 기본값으로 설정되어 있다. OSIV 전략은 최초 데이터베이스 커넥션 시작부터 API 응답(View에 전송 및 DTO 반환 등)이 끝날 때 hdbstn3055.tistory.com 2. User에 Gender Enum 추가 public cl..
2024-02-18 개발일지
·
개발 기록
정처기가 끝난 어제, 오늘해서 천천히 진행했던 토이 프로젝트와 가상 머신 설계를 열심히 했다. 토이 프로젝트 예외 처리, 테스트 코드 스니펫 설정, 이메일 인증 등 많이 구현했다. (open-in-view 처리도 하였다.) 관련 내용은 내일 한번에 정리해서 블로그에 올리려 한다. 그리고 토이 프로젝트를 develop branch를 파서 따로 올리고 있는데 깃허브 새싹이 채워지지 않아 마음이 좀 아프다.. 화이팅!!