반응형 공부/프로그래밍346 [springboot] 데이터 사용 Service를 mockito로 테스트하기 mockito는 단위 테스트를 위한 java mocking framework이다. 어디다 쓰냐면... 단위 테스트를 해야 하는데 데이터베이스에서 데이터를 가져와야 할 경우 테스트 환경에 따라 각각 다른 데이터가 조회될 수 있는데 예를 들어 A라는 고객이 1번_테스트_데이터베이스에서는 ID가 1인데 2번_테스트_데이터베이스에서는 5번일 수 있다. 이럴 경우 상황에 따라선 테스트의 단위가 깨지게 되는데, mockito를 이용하면 입력한 값을 리턴하게 되므로 동일한 환경으로 테스트할 수 있게 된다. mockito를 사용하려면 dependencies를 추가해야 하지만 SpringBoot를 사용하면 gradle에 spring-boot-starter-test를 추가하게 되는데, 그 안에 mockito-junit-j.. 2020. 2. 12. [spring security oauth] 403이 아닌 406 에러가 나는 경우 (Accept 설정에 따른 문제) spring security oauth 로 인증요청 할 경우 에러가 2가지 있다 401 Unauthorized 403 FORBIDDEN(Access Denied) 401의 경우 로그인 실패시, 403은 인증한 토큰이 잘못되었을 경우 발생한다. 사내에서 사용하고 있는 API 헤더 2가지 옵션인 Accept와 Content-Type 를 json으로 통신하되 커스텀하게 붙인게 있다 Content-Type: application/json+custom Accept: application/json+custom 이게 정상으로 처리가 되었을 경우 문제가 되지 않았는데 에러가 발생할 때 403 에러를 리턴해야 하는데 406 에러를 리턴했다. HTTP 상태 406 – 받아들일 수 없음(Not Acceptable.. 2020. 1. 30. [java] builder 패턴, 객체를 안전하게 생성하기 객체를 생성할 때 파라미터가 많으면 빌더패턴을 사용 시 생성이 편리하다. 우선 1. 순서에 상관없이 객체생성이 가능하고 2. 인자가 많아도 안전하게 생성 등 장점이 있다. 그런데 빌더패턴을 쓰다보면 한가지 걸리는 것이 있다. 바로 필수값 체크(Not null)다. Book 이라는 객체가 있다고 해보자. 진행의 편의성을 위해 Lombok 을 이용했다. import lombok.Builder; import lombok.ToString; @ToString public class Book { private String bookName; private String author; private Integer price; @Builder public Book(String bookName, String .. 2020. 1. 29. [react, springboot] react 와 spring boot 로 구성하기, 묶어 build 하기 Springboot 프로젝트를 생성한다. 여기서는 Intellij 를 이용해 생성했고, Gradle과 Java 버전 11을 사용했다. 이 과정은 생략하겠다. react를 설치하는 방법은 다양하지만 여기서는 Create react app 을 이용해 생성하고자 한다 관련 항목은 아래 링크에서 설명되어 있다 https://reactjs-kr.firebaseapp.com/docs/installation.html Getting Started – React A JavaScript library for building user interfaces reactjs.org node.js 6버전 이상이 설치되어 있어야 한다 npm을 이용해 create-react-app 을 설치한다 npm install -g cr.. 2020. 1. 19. [개발] 2019년 하반기 회고록 이전글: https://lemontia.tistory.com/910 [개발] 2019년 상반기 회고록 지금 회사에서 본격적인 프로젝트를 시작한 것은 올해부터가 아닐까 싶다. 작년 말에 들어와서 이것저것 인수인계받느라 시간을 보내기도 했고, 서버 구성이라든가 개발 방향, 문화 등을 고민했던 거에 비하면 올.. lemontia.tistory.com 올 한 해를 한 단어로 표현하면 '내실 다지기'라 할 수 있겠다. 그동안 제대로 동작하지 않았던 것들을 수정하고, 사람이 손이 덜 들어가게 자동화하는 등 최대한 내부적인 문제점을 해결하는 데 중점을 두었다. 나 역시 이전 것을 수정하는 것보다는 새로운 것을 만드는 게 편하다. 하지만 시스템이라는 것이 계속 원활하게 수행되려면 지속적인 유지 보수를 해주어야 한다.. 2019. 12. 29. [개발] 2019년 상반기 회고록 지금 회사에서 본격적인 프로젝트를 시작한 것은 올해부터가 아닐까 싶다. 작년 말에 들어와서 이것저것 인수인계받느라 시간을 보내기도 했고, 서버 구성이라든가 개발 방향, 문화 등을 고민했던 거에 비하면 올해부터는 제대로 실무를 처리해야만 했다. # 외주로 주던 서비스를 내재화 서비스 중에는 선불카드시스템이 연동되어 있는데, 이것은 외부에 의탁해 개발된 것이었다. 그런데 유저 수가 조금만 늘어도 서버가 출렁거렸고, 툭하면 서버가 응답을 하지 않아 애간장을 태웠다. 마침내는 서비스를 담당하는 업체에서 더 이상 서비스를 제공할 수 없겠다며 자기네 서비스를 사 가라고, 아니면 삭제해버리겠다고 협박 아닌 협박을 해댔다. 딱히 방법이 없던 터라 서비스 개발비용을 주고 사기로 결정. 처음에는 이것을 그대로 .. 2019. 12. 29. 이전 1 ··· 25 26 27 28 29 30 31 ··· 58 다음 반응형