[CICD] Spring boot 환경 Github Action 에서 Test 적용기
CI - Github Action Github 에 push, pull request 가 발생하면 자동으로 Test 를 수행하면 좋겠다고 생각했다. CI 를 할 수 있게 도와주는 프로그램으로 Jenkins, Travis CI, Github Action 등등 여러가지가 있다. Jenkins 는 많은 기업에서 사용하면서 인증받은 CICD 툴이다. 파이프라...
CI - Github Action Github 에 push, pull request 가 발생하면 자동으로 Test 를 수행하면 좋겠다고 생각했다. CI 를 할 수 있게 도와주는 프로그램으로 Jenkins, Travis CI, Github Action 등등 여러가지가 있다. Jenkins 는 많은 기업에서 사용하면서 인증받은 CICD 툴이다. 파이프라...
발생상황 Redis 에 저장된 정보를 DB 에한번에 저장할 필요가 있었다. 한개 한개씩 저장하는 쿼리를 날리면, 그 한개 한개마다 DB 에 연결하고 연결을 끊는 작업이 반복된다. 그래서 방법을 찾다가 하이버네이트 배치를 이용한 벌크성 쿼리 저장 방식을 찾았다. 아래글은 벌크성 쿼리 저장할 수 있는 관련글이다. https://techblog.woow...
발생 상황 Redis 적용중에 다음과 같은 에러가 발생했다. io.lettuce.core.rediscommandexecutionexception: wrongtype operation against a key holding the wrong kind of value’ 해석해보면 타입이 안맞아서 그렇다고 한다. 그래서 해당 에러를 검색해봤...
작성계기 프로젝트 개발중에 소셜로그인(OAuth) 이용해 로그인서비스를 진행해야 했다. 그 중에 구글을 이용해 개발하는것을 담당했는데 Spring Security 이용한 개발방법과, Api 를 이용해 개발하는방법이 있어 헷갈렸었다. 그래서 정리삼아 이글을 작성해본다. (프론트가 따로 있기에 Api 를 이용해서 개발한다!) 요구사항 개발 요구사항은...
프로젝트 소개 Oh-My-Parents 줄여서 OMP 프로젝트! 프로젝트 링크 : https://my-parents.day/ 4월 27일 부터 5월 8일 까지 해커톤 느낌으로 단기 프로젝트를 진행했다. 5월 8일 어버이날 기념으로 부모님께 안부를 물어볼 수 있도록 도와주는 프로젝트다. 구체적으로는 부모님에 관한 질문이 주어지고 사용자는 답변을 ...
작성 계기 프로젝트를 하던 도중 일대다 관계에서 fetch join 을 쓰다가 원치않은 결과를 가져왔었다. 이는 fetch join 과 영속화에 대해 이해가 부족했기에 발생한 문제였다. 그래서 fetch join 과 join 의 차이, fetch join 을 사용할 떄 일관성에 관한 주의점, left fetch join 일관성에 대해 적어보았다. ...
작성 계기 개발을 하다보니 예외처리가 필요한일이 많았다. 평소 자바에서는 try ~ catch 구문으로 예외를 잡아주었다. 하지만 이렇게하니까 try ~ catch 구문이 너무 많아지면서 코드의 가독성이 떨어진다고 생각했다. 많은 사람이 사용하는 SPRING 프레임워크가 이런 문제도 고려안했을까? 라고 생각하고 찾아봤더니 전역으로 예외처리를 해주는 ...
작성 계기 스프링으로 처음으로 백엔드 프로젝트를 하다가 프론트한테 CORS 에러가 발생해서 api 통신이 안된다고 연락이 왔다. 내가 혼자서 서버에 스웨거로 api 를 테스트했을때는 문제없었기에 프론트문제인줄 알았다. 하지만 문제를 찾아보니 백엔드에서 처리해줘야 하는 문제였고, 프론트와 벡엔드가 api 를 이용해 통신한다면 무조건 직면할 수 밖에 없...
작성계기 개발 중간에 단위테스트를 진행하고 있었다. 그런데 Store 라는 엔티티에는 수 많은 필드가 작성되어있고, 내가 테스트할려는 로직에는 그 수 많은 필드의 값을 다 채울 필요가 없었다. 그런데 int 자료형인 필드의 경우 DB 에 들어갈시 null 로 저장되면 Java 에서 가져올 때 int 타입에는 null 값이 없어 에러가 발생한다. 그...
개발 계기 사용자 위치를 기반으로 주변 가게를 탐색하는 비즈니스 로직을 개발하고 있었다. 프론트단에서 카카오맵 API 를 이용해서 사용자의 위도경도 찾으면 서버로 보내준다. 그럼 나는 받은 위도, 경도를 기준으로 특정거리내에 있는 가게를 DB 에서 가져와야 한다. 개발 환경 Spring 2.7.9 JPA MySQL 8.0 위도와 ...