본문 바로가기
반응형

공부/프로그래밍343

[springboot] swagger 설정 & 사용법 문서 자동화에 쓰이는 swagger를 설정 및 사용하는 방법에 대한 포스팅이다. 그럼 시작. build.gradle 에 다음 의존성을 추가한다 dependencies { ... // swagger compile group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' compile group: 'io.swagger', name: 'swagger-annotations', version: '1.6.2' compile group: 'io.swagger', name: 'swagger-models', versio.. 2021. 2. 4.
[spring] 객체 내 객체에 @Valid 점검하기 예를들어 다음과 같은 데이터 구성이 있다. 유저정보 내 연결된 SNS 계정을 등록해야 한다. 그런데 SNS계정은 1개 이상 필수이며, SNS 유형과 ID가 필수여야한다. 클래스로 표현하면 다음과 같다. @Getter @NoArgsConstructor @AllArgsConstructor public class RequestUser { @NotNull(message = "유저이름은 필수입니다") private String userName; @NotNull(message = "SNS ID는 1개 이상 등록되어야 합니다(1)") @Size(min = 1, message = "SNS ID는 1개 이상 등록되어야 합니다(2)") private List snsAccounts; } @Getter @NoArgsConst.. 2021. 1. 25.
[java] lambda 를 이용한 GroupBy mulitiple field 사용하기 lambda 에서 Collector를 이용해 GroupBy를 사용할 수 있다 결론만 말하자면 DB에 저장되어 있다면 DB에 있는 함수를 사용하길 권장하지만... 데이터 자체를 가공해야한다면 어쩔 수 없이 써야할 거 같다. 암튼 한번 알아보자. 다음과 같이 테스트 데이터를 준비했다. 데이터를 담을 객체를 먼저 생성한다 @Getter @ToString public class Sales { private String yyyymm; private String storeId; private Long sales; public Sales(String yyyymm, String storeId, Long sales) { this.yyyymm = yyyymm; this.storeId = storeId; this.sales.. 2021. 1. 20.
[retrofit, gson] Expected BEGIN_OBJECT but was STRING 에러 해결(String -> LocalDate) Retrofit을 사용하면서 위의 에러가 발생했는데, 확인해보니 String 을 특정 타입으로 변경할때 발생한 에러다. 정확히는 Retrofit이 아닌 Gson 에서 변환하던 중 에러가 발생한 것이다. 샘플을 통해 알아보자. 우선 기존 코드는 다음과 같다 @Getter @ToString public class ResponseApiTest { @SerializedName("date") private LocalDate date; @SerializedName("time") private LocalTime time; @SerializedName("datetime") private LocalDateTime datetime; } 다음 에러가 발생했다. 2021-01-17 15:56:15.827 INFO 18290 .. 2021. 1. 18.
[jpa] 쿼리 로그 설정 jpa 쿼리가 보이는 설정을 하는건 크게 2가지가 있다. 1) show-sql 을 true로 설정하는 방법 2) p6spy를 이용한 로깅(외부라이브러리). 1번은 파라미터 안에 무엇이 들어있는지 알 순 없고 바인딩쿼리만 로그에 찍힌다. 2번은 추가설정을 좀 해주어야 한다. 1) show-sql을 사용하는 방법은 간단하다. application.properties 에다 다음이 설정을 추가하면 된다. spring.jpa.show-sql=false # 여기 spring.jpa.properties.hibernate.format_sql=false # 여기 spring.jpa.hibernate.ddl-auto=none spring.jpa.hibernate.generate-ddl=true spring.jpa.hibe.. 2021. 1. 15.
[axios, react, redux] 서버통신 시 로딩바 띄우기 axios를 이용해 Backend와 API통신하면서 중간에 로딩바가 필요했다. 그런데 이걸 매번 호출마다 넣을 순 없으니 axios의 interceptors 옵션을 이용해 넣기로 했다. 우선 Loading 화면을 우선 만든다. 해당 로딩화면은 항상 최상위어야 한다. 다음처럼 컴포넌트를 만들어 Root에 추가했다. 로딩이미지는 material-ui에 있는 것을 사용했다. https://material-ui.com/api/circular-progress/ CircularProgress API - Material-UI The API documentation of the CircularProgress React component. Learn more about the props and the CSS custom.. 2021. 1. 13.
반응형