목록2024/06 (4)
쌓고 쌓다
기존 수동 배포 과정이전의 프로젝트 아키텍처를 보자. 빌드와 배포 모두 수동으로 진행했었다.테스트 코드도 돌려보고 빌드하고 이미지로 만들어서 EC2에서 구동시키는 방법이였다. 이제 이 과정들을 자동화해보고자 한다. 목표Github Push -> 테스트 코드 실행 -> Docker 이미지 build, push -> EC2에서 pull -> 이미지 동작 구축깃허브 리포지토리에 Actions 탭이 있다. 현재 프로젝트는 Gradle로 빌드한다. Configure를 누르자. .github/workflows 경로에 Actions를 위한 스크립트를 작성해야한다. 필자는 다음과 같이 구축했다.name: CI/CDon: push: branches: [ "main" ] pull_request: branc..
다음의 html을 작성했다. 회원가입 그냥 회원가입 버튼을 누르면 "/members/signup"으로 POST 요청을 보내는 html이다. 회원 가입 버튼을 눌러 POST 요청을 보냈더니 403 에러가 발생했다.. Security의 설정 빈을 다음과 같이 작성을 해서 분면 모든 요청을 허락했는데 말이다..@Configuration@EnableWebSecuritypublic class SecurityConfig { @Bean SecurityFilterChain filterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests(request -> request .anyRequest..
테스트 코드 작성중에 특정 인자와 함께 메서드가 1회 실행되었는지 확인하는 과정이 있었다.그런데 이상하게 인자가 잘 넘어갔는데 메서드가 테스트가 통과하지 않는 것이다. 동일한 객체인지 비교에 문제가 있어서 그런가 클래스에 @EqualsAndHashCode를 붙였더니테스트 코드가 통과된다. 그래서 equals와 hashCode에 대해 이해해보자. Object 클래스에 기본적으로 hashCode과 equals가 있다. 이건 어디다 쓰이는 것일까? @Testvoid test() { Car carA = new Car("12가3456"); Car carB = new Car("12가3456"); System.out.println("carA == carB : " + (carA == carB)); ..
API 서버를 만들어보면서 회원 인증 방법에 대해 JWT를 택했다. JWT는 AccessToken과 RefreshToken으로 회원을 구분한다. 처음에는 Refresh Token의 필요성에대해 전혀 이해가 가지 않았다.그냥 Access Token을 Refresh Token 처럼 만료 기한을 길게 잡고 쓰면 되는것이 아닌가?DB에서 Access Token을 저장하며 사용하면 탈취시 대응할 수 있지 않는가? 전혀 JWT의 장점을 이해하지 못한 상태에서 생각할 수 있는 수준 정도였던 것 같다. 클라이언트가 서버에 인증 과정을 거쳐 JWT인 Access Token과 Refresh Token을 발급 받는다. 먼저 Access Token에 대해 알아보자.Access TokenAccess Token은 만료 시간을 짧..