전체 글(23)
-
스프링부트 다국어 설정 i18n
우선 다국어 설정을 위해 빈을 등록해야 된다. defalut locale은 kr로 설정하였고. 기본적인 셋팅을 해줬다. @Configuration public class I18nConfig implements WebMvcConfigurer { @Bean public LocaleResolver localeResolver() { CookieLocaleResolver resolver = new CookieLocaleResolver(); resolver.setDefaultLocale(Locale.KOREA); resolver.setCookieName("lang"); return resolver; } @Bean public LocaleChangeInterceptor localeChangeInterceptor() ..
2023.03.09 -
spring-validation 사용법 rest방식
우선 build.gradle에 아래 의존성을 추가한다. implementation 'org.springframework.boot:spring-boot-starter-validation' 일단 유효성 검사할 자바 entity에 체크할 annotation을 설정해주면 된다. @NotBlank private String tenantNm; validation에서 제공해주는 어노테이션은 아래와 같다. 사용자가 annotation을 만들어서 커스텀도 가능하다. // null만 허용 @Null(message="") // null 허용 X, "", " "는 허용 @NotNull(message="") // null, "" 허용 X, " "는 허용 @NotEmpty(message="") // null, "", " " 허용..
2023.03.09 -
NHN toast-grid 연동 JPA pageable custom 하기
토스트 페이지네이션 같은 경우 { "result": true,//성공, 실패 "data": { "contents": [],// 실제 데이터 "pagination": { //페이징 관련 "page": 1,//페이지 "totalCount": 100//데이터 개수 } } } 이 형식으로 json 응답을 내려줘야 작동을 하게 된다. 그러기에 객체를 생성해줬다. @Getter @Builder public class GridData { private List contents; private Pagination pagination; } @Getter @Setter public class Pagination { @Builder public Pagination(Integer page, Integer totalCount,..
2023.02.28 -
스프링부트 oauth 소셜로그인(카카오, 네이버, 구글) 구현
기본적으로 각 사이트에서 애플리케이션 등록 및 redirect url 설정은 다른 곳을 참고 하시고 시작하면 된다. 일단 yml 파일에 설정을 등록해줘야 한다. security: oauth2: client: registration: google: redirect-uri: "{baseUrl}/login/oauth2/code/{registrationId}" client-id: "my client-id" client-secret: "client-secret" scope: - email - profile naver: client-id: "my client-id" client-secret: "client-secret" redirect-uri: "{baseUrl}/login/oauth2/code/{registrat..
2023.02.28 -
SXSSF 대용량 엑셀 다운로드 공통화
엑셀을 추출할 해당 java entity에 @ExcelColumn이라는 커스텀 annotation을 붙인 값만 엑셀 다운로드가 되도록 구현하였다. @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) public @interface ExcelColumn { String headerName() default ""; } @ExcelColumn(headerName = "bbsUid") private Long bbsUid; 엑셀 공통화 작업을 위해 자바 entity와 해당 contents list객체만 넘겨주면 처리할 수 있게 구현하였다. 자바 reflaction을 통해서 추출해온다. @Service public class ExcelRender { ..
2023.02.24 -
화살표함수와 일반함수의 차이
function userList() { // TODO } const userList = () => { // TODO } 1. 화살표 함수는 this는 상위 스코프를 나타내는 반면 일반함수는 자기 자신을 가르킴 예를 들어 event를 주면 화살표 함수는 window 전역 객체를 가르킴 2. 화살표 함수는 this가 없기에 new로 생성하는 생성자 함수 사용 불가 3. 화살표함수는 argument가 없어 유사 배열 객체를 지원하지 않음
2023.02.01