목록2024/08 (14)
나의 개발일지
Flyway란 ?DB 형상관리 툴이다. == DB 변경 관리 툴 * 형상관리 : sw의 변경사항을 체계적으로 추적하고 통제하는 것. Git은 소스코드 형상관리 툴이고 Flyway는 DB 형상관리 툴이다. 어떤 상황에서 ?개발 도중 스키마가 변경 될 때1. spring:jpa:hibernate:ddl-auto: create or update를 주로 사용한다. 문제점 -> create는 이전 데이터를 다 날려버리므로 배포 환경에서 사용할 수 없음이 명확하고 update는 테이블을 수정하지 않고 부족한 부분을 수정한다. 2. 각 배포 환경을 돌아다니면서 직접 schema 변경 문제점 -> 확인하는 것도 일이고 실수가 나기 쉽다. 이런 DB 가 변경될 상황들에서 변경 관리 이력을 추적하고 관리하기 위해 Flyw..
S3 이미지 업로드 개념 1. Spring Boot Project에서 클라이언트에게 MultipartFile로 이미지 파일을 받는다. 2. 이 파일을 S3에 업로드하고 S3에 어디서나 접근 가능한 public url을 반환한다. 3. public url을 통해 이미지에 어디서나 접근/다운이 가능하다. 4. url을 DB에 저장하여 필요할 때 url로 이미지 데이터를 사용할 수 있다. 구현과정1. S3 버킷 생성* 퍼블릭 액세스 차단을 해제 해야함 나머지는 기본 설정으로 두고 버킷 생성 버킷 정책 설정이 작업을 안 해주면 추후 URL이 나왔을 때 들어가보려고 하면 아래와 같은 오류가 난다. 생성한 버킷 - 권한 - 버킷 정책 편집 아래와 같이 작성해준다.{ "Version": "2012-10-17",..
카카오 공식문서에 있는 로그인 과정이다.처음부터 보고 로직 이해를 하면 구현이 한결 쉬워진다. 공식문서의 위력을 다시 한 번 느꼈다. 간단하게 정리해보면 다음과 같다.1. 카카오 로그인 완료 후 Redirect URI로 인가 코드 발급됨.2. 인가 코드를 통해 카카오 서버로 토큰 요청.3. 토큰을 통해 카카오 로그인 한 사용자 정보를 받아올 수 있음.4. 해당 사용자 정보를 이용해 회원가입 or 로그인 처리. 로직을 토대로 우리 프로젝트에서 적용한 플로우는 다음과 같다.1. 프론트-> 카카오 kakao.Auth.Authorize()이용해 카카오 로그인 화면 요청 2. 카카오-> 백 로그인 완료되면 code와 함께 자동으로 백 리다이렉트 url로 넘어감 (~~/oauth/kakao/callback?cod..
1. 로그인 구현비밀번호가 일치하면 토큰을 생성해서 내려준다. 구현해야할 것- 로그인 컨트롤러- 로그인 서비스- JwtUtils 클래스에 token 생성 로직 컨트롤러@PostMapping("/login") public ResponseEntity signIn( @RequestBody @Valid SignIn.Request request) { return ResponseEntity.ok(memberService.signIn(request)); } 서비스public SignIn.Response signIn(SignIn.Request request) { Member member = getMemberByEmail(request.getEmail()); ..
* 스프링 시큐리티 버전확인하기 Gradle - Dependencies - 'security' 검색하여 확인할 수 있다. 6.3.1 버전으로 확인된다. 스프링 시큐리티 5.7버전 이상부터는 더이상 WebSecurityConfigurerAdapter가 사용되지 않는다고 한다.이전 프로젝트는 5.7.11 버전이었고 WebSecurityConfigurerAdapter를 상속받아 SecurityConfig를 구성했었었는데 더이상 그대로 제작할 수 없게 되었다.(5.7.11버전에서 저렇게 줄이 그어져있긴 하지만 사용할 수는 있었다.)GiftFunding) Spring Security를 이용한 로그인 구현 (tistory.com) GiftFunding) Spring Security를 이용한 로그인 구현Spring ..
초기에 백엔드 개발을 배울 때 했던 건데 다시 하려니까 기억이 잘 안나서 다시 정리하려고 한다. 1. 의존성 주입implementation 'org.springframework.boot:spring-boot-starter-security' 2. PasswordEncoder @Bean으로 등록 * Bean으로 등록하지 않으면 아래와 같은 오류가 난다.Description: Parameter 1 of constructor in com.sj.Petory.domain.member.service.MemberService required a bean of type 'org.springframework.security.crypto.password.PasswordEncoder' that could not be foun..
Jenkins로 CI/CD 구축하기 - (1) EC2 docker에 Jenkis 설치 및 SWAP 메모리 할당 (tistory.com) Jenkins로 CI/CD 구축하기 - (1) EC2 docker에 Jenkis 설치 및 SWAP 메모리 할당Dockerfile을 만들었지만 아무 것도 안 써줌 Jenkins에 접속해서 Docker를 누르고 Docker Pull Command를 복사해서 터미널에 입력한다 !https://www.jenkins.io/download/ Download and deployJenkins – an open source automation sesoni-developer.tistory.comJenkins로 CI/CD 구축하기 - (2) Jenkis CI/CD 파이프라인 구축하기 + C..
지난 Jenkins 설치에 이어 파이프라인 구축을 해보려고 한다.Jenkins로 CI/CD 구축하기 - (1) Jenkis 설치 및 SWAP 메모리 할당 (tistory.com) Jenkins로 CI/CD 구축하기 - (1) Jenkis 설치 및 SWAP 메모리 할당Dockerfile을 만들었지만 아무 것도 안 써줌 Jenkins에 접속해서 Docker를 누르고 Docker Pull Command를 복사해서 터미널에 입력한다 !https://www.jenkins.io/download/ Download and deployJenkins – an open source automation sesoni-developer.tistory.com 파이프라인 작성에 앞서 해야할 일이 Credentials 등록이다. Cr..