분류 전체보기

· 오류해결
github webhook을 설정하는데 계속 502에러가 발생했다. response 내용도 없었고, 스택오버플로우에도 해당 내용이 없어서 3일 넘게 끙끙 앓았던 문제. ec2의 보안 설정에 있었다. jenkins를 9090포트를 사용하는데 해당 포트에는 나만 접근을 해야한다고 생각해서 내 IP만 허용하게 뒀는데 이게 문제였다. 어차피 9090포트를 들어와도 아이디, 비밀번호로 접근해야하기에 보안적으로 문제가 없다고 판단. 9090포트를 전부 열어줌으로써 webhook 문제를 해결할 수 있었다.
이전에도 한번 테스트코드를 작성했지만 부족한 개념을 정리하기 위해 내용을 정리해보려고 합니다. 우선 이번에 하려는 부분은 repository만 단독으로 단위테스트를 진행하는 것입니다. DB같은 경우 local에 있는 MySQL을 이용하려고 합니다. 대충 순서를 알아보면 필요한 가짜 객체 생성 가짜 객체 DB에 저장. 메서드 실행 결과 검증 이 순서대로 진행이 됩니다. 검증 이후 데이터는 롤백이 돼서 DB에서 삭제되는 방향으로 진행됩니다. 여기서 사용하려는 어노테이션의 정보입니다. @DataJpaTest jpa환경에서 repository를 테스트하기 위해 spring에서 제공하는 어노테이션. 최소한의 스프링 컨텍스트를 제공한다. jpa entity 테스트를 위해 EntityManager와 TestEntit..
· 오류해결
매일 00시에 선착순 쿠폰을 발행하는데 데이터를 로드하는 부분에서 문제가 발생했다. 해당 쿠폰은 4월 2일에 발행된 쿠폰이며, 4월 2일에는 해당 데이터가 조회가 되는 게 정상인데 로컬에서는 되지만 서버에 올리면 데이터를 못 찾아오는 문제가 발생했다. 이건 무조건 시간차로 발생한 문제라고 의심. 그래서 mysql의 시간을 먼저 확인했다. +--------------------+---------------------+--------------------+ | @@global.time_zone | @@session.time_zone | @@system_time_zone | +--------------------+---------------------+--------------------+ | SYSTEM |..
· 오류해결
젠킨스를 연동해서 나만의 파이프라인을 집어넣었다. 모든 과정은 순탄하게 진행됐으나 docker를 살펴보니 스프링부트 컨테이너가 올라가지 않았다. 분명 Run Docker Image 단계에서 올라가야 정상인데 왜지? 도커 이미지도 정상적으로 도커허브에서 받아온 상태인데??? 분명 컨테이너를 올리다가 문제가 발생했다고 생각이 든다. 그러면 yml이 문제인가? 싶어서 내가 수동으로 컨테이너를 올려보기로 했다. 근데 이미 springboot 컨테이너가 존재한다고 뜨네?? 그래서 docker ps로 현재 실행중인 컨테이너를 봤는데 없다. 그러면 중단 됐다는 뜻인데 docker ps -a 명령어로 중단된 컨테이너까지 확인했더니 찾았다 요뇨석 중단된 컨테이너를 지우고, 도커허브에서 받은 이미지로 다시 컨테이너를 올렸..
· Vue
현재 Vuex에 loginState라고 저장해 두고 로그인 상태를 판단하도록 만들었다. 로그인을 진행하면 true로 변경되는 값. 그런데 여기서 새로고침을 하면? false로 데이터가 바뀌게 된다. Vuex에서 새로고침 하면 state가 날라가는 이유가 브라우저 메모리에 저장되기 때문이다. SPA는 페이지를 옮기거나 새로고침하는 것이 아니라 데이터가 보존되는데, 새로고침을 하는 순간 브라우저 메모리가 날아가서 state가 없어지는 것. 우리는 이걸 막기 위해 스토리지를 이용하거나 쿠키를 이용해야한다. vuex-persistedstate 해당 라이브러리를 통해 문제를 해결할 수 있다. 초기화 이슈가 많아지면서 누군가 npm을 만들어두었기에, 잘 이용만 하자 npm install vuex-persisteds..
· Vue
Vue를 사용하는데 데이터 관리가 너무 어려웠다. 프로젝트가 엄청 큰 것이 아니라서 도입하진 않았었는데, 이제 슬 도입해서 데이터 관리하는 게 나중에 가서도 편할 것 같다는 생각이 들어서 기록해보려고 한다. 아래 명령어로 Vuex 설치 npm install vuex@next 이지하게 설치 완료. 이제 Vuex로 데이터를 관리하기 위해 store.js를 생성해 준다. 이제 Vuex의 개념을 다시 살펴봐야 한다. Vue의 상태를 관리하는 패턴이자 라이브러리. 모든 컴포넌트들의 중앙 저장소 역할을 담당 하나의 저장소에 데이터를 관리하고, 컴포넌트에서 사용하니 유연하고 편리하게 데이터 공유가 가능하다. 이 개념을 이해해야 한다. State data를 관리한다.(데이터 저장소) State에서 컴포넌트에 올리는 과..
· 오류해결
현재 유저가 가진 역할을 담아놓은 테이블이다. 로그인을 진행하면 JWT필터에서 유저 쿼리가 2번 찍히는 문제가 발생해서 해결해보려고 했다. 분명 데이터에는 2번 유저에게 유저Role이 하나만 있는 상태인데 왜 2번이 찍힐까? 이렇게 찍어봤는데 2번이 찍힌다. 그 말은 jwt 필터를 2번 타는 상황이 발생한다는 것인데 왜지? 그냥 내가 로직을 잘못 작성해서 그랬었다. chat 페이지로 가면 유저의 토큰 조회 메서드, 쿠폰 조회 메서드가 실행되는데 이게 따로따로 실행돼서 2번이 발생하는 것. 그냥 하나의 api로 묶어서 관리하면 더 좋지 않을까? 생각이 들었다. 도메인별로 관리하면 유지보수면에서 물론 좋겠지만, 새로고침할 때마다 매번 실행되는 건데 하나로 묶으면 더 효율이 좋을 것이라고 생각이 들었다. 1...
현재 restful api 서비스에서는 매일 토큰이 2개보다 적을 경우, 2개로 초기화를 진행해 준다. 여기에 매일 5개씩 선착순 토큰을 발행해서 가져가게 구성하려고 한다. public class Coupon { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(nullable = false) private Integer remainingQuantity; @Column(nullable = false) private Integer totalQuantity; @Column(nullable = false) @CreatedDate private LocalDateTime createDate; 쿠폰 자체는 선착순으로 가져..
indeep
'분류 전체보기' 카테고리의 글 목록 (7 Page)