반응형

테스트 실행 후 success  되었을때 결과가 자동으로 숨김 처리 될 때

아래 옵션들을 이용해서 조정 할 수 있습니다.

 

 

[원문] https://www.jetbrains.com/help/idea/viewing-and-exploring-test-results.html

반응형
블로그 이미지

visualp

c#, java

,
반응형

1.  intellij 시작시 utf-8설정

intellij -> Help -> UTF-8

help -> edit custom vmoptions....

-Dfile.encoding=UTF-8

 

2. intellij global encoding 설정

  - settings -> File Encodings 에서 global Encoding , Project Encoding -> UTF-8로 설정 한다.

  - 인코딩이 문제있는 파일들을 확인 할 수 있음

 

 

3 - tomcat 시작시 VM options 지정

tomcat7 <- -Dfile.encoding=UTF-8 지정 안해주면 한글 깨지는 문재가 발생 할 수 있음

반응형
블로그 이미지

visualp

c#, java

,
반응형

아래와 같이 yyyy-mm 형태로 변경할 수 있는 StringTemplate 를 생성한다.

StringTemplate formattedDate = Expressions.stringTemplate(
                "DATE_FORMAT({0}, {1})"
                , qDailySalesVO.pdTdate
                , ConstantImpl.create("%Y-%m"));

querydsl에선는 groupby orderby 절에  다음과 같이 사용한다.

query.groupBy(formattedDate);
query.orderBy(formattedDate.desc());

 

이 방법은 mysql or mariadb에서만 사용 할 수 있습니다.

반응형
블로그 이미지

visualp

c#, java

,
반응형

vo or entity에 아래와 같이 annotation 설정

@Temporal(TemporalType.DATE)
@DateTimeFormat(pattern = "yyyy-MM-dd")

 

//시간_yyyymmdd
  @Temporal(TemporalType.DATE)
  @DateTimeFormat(pattern = "yyyy-MM-dd")
  private Date rdYmd;

 

날짜 범위 인덱스 적용을 위해서

yyyy-MM-dd 형태로 사용하기 위해서

 

controller에서 처리해야 할 부분

@DateTimeFormat annotation을 사용해서 정의 한다

 

조회 쪽 서비스 단에서는 

stdate <-- java.util.Date

eddate <-- java.util.Date

형태로 설정 한다.

 

또는 

Controller단에서는 String을 사용하고 조회시 service단에서 Date로 변경해서 처리 해도 됨.

아래 에서는 그냥 Date를 사용함 ..

 

 

 @GetMapping("/list.html")
    public String list(Model model,
                       @PageableDefault(value = 20, size = 20) Pageable pageable,
                       @DateTimeFormat(pattern = "yyyy-MM-dd") Date stdate,
                       @DateTimeFormat(pattern = "yyyy-MM-dd")Date eddate){
                       
        Page<RdocVO> rdocVOPage =  rdocService.selectAll(pageable, stdate,eddate);
        PageUtil pageUtil = new PageUtil(rdocVOPage);
        model.addAttribute("pageUtil",pageUtil);
        model.addAttribute("list", rdocVOPage.getContent());
        model.addAttribute("stdate",DateUtil.toYYYY_MM_DD(stdate));
        model.addAttribute("eddate",DateUtil.toYYYY_MM_DD(eddate));

        return "ui/rdoc/list";
    }
    

 

 

DateUtil에 date --> String yyyy-MM-dd  형태로 변형 해주는 유틸

public static String toYYYY_MM_DD(Date date) {
        if(date!=null) {
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            return formatter.format(date);
        }else{
            return null;
        }
    }

 

반응형
블로그 이미지

visualp

c#, java

,
반응형
Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [16,008] milliseconds.

tomcat 실행시 위와 같은 문제가 발생한다면 

 

-Djava.security.egd=file:/dev/./urandom

옵션을 넣어 주면 됨

반응형
블로그 이미지

visualp

c#, java

,
반응형

[참고]www.myorasql.com/jdbc_connect.html

 

jdk(jre) 11을 사용하고 있으며   오라클 버전에 맞게 사용해야함

10g 이상을 사용하고 있다면 maven에 아래와 같이 사용하면됨

 

orai18n<-- 다국어 지원을 하기위해서 필수로 porm.xml에 추가해야함

(1.8 이전 버전에서는 해당사항 없음 java9이상부터 해당됨)

 

<!-- oracle -->
        <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>ojdbc8</artifactId>
            <version>19.3.0.0</version>
        </dependency>
        <dependency>
            <groupId>com.oracle.ojdbc</groupId>
            <artifactId>orai18n</artifactId>
            <version>19.3.0.0</version>
        </dependency>

 

반응형
블로그 이미지

visualp

c#, java

,
반응형

1. 필수 defendency

 <dependency>
 	<groupId>org.springframework.boot</groupId>
 	<artifactId>spring-boot-starter-data-redis</artifactId>
 </dependency>
       
 <!-- redis -->
 <dependency>
   <groupId>org.springframework.session</groupId>
   <artifactId>spring-session-data-redis</artifactId>
 </dependency>

2. configuration

@Configuration
public class RedisConfig {
    
    @Value("${spring.redis.host}")
    private String host;
    
    @Value("${spring.redis.port}")
    private int port;

    @Value("${spring.redis.password}")
    private String password;

    @Value("${spring.redis.database}")
    private int database;
	
    @Bean
    public RedisConnectionFactory redisConnectionFactory() {
        RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration();
        redisStandaloneConfiguration.setHostName(host);
        redisStandaloneConfiguration.setPort(port);
        redisStandaloneConfiguration.setPassword(password);
        redisStandaloneConfiguration.setDatabase(database);
        LettuceConnectionFactory lettuceConnectionFactory = new LettuceConnectionFactory(redisStandaloneConfiguration);
        return lettuceConnectionFactory;
    }

    @Bean
    public RedisTemplate<String, Object> redisTemplate() {
        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setConnectionFactory(redisConnectionFactory());
        template.setKeySerializer(new StringRedisSerializer());
        /**
         * 2017-11-15 (고병만)수정
         * 필수처리 key StringRedisSerializer 처리를 해줘야 key앞에 이상한 특수 문자들이 임의로 붙는 상황을
         * 막을 수 있음 ex)\xAC\xED\x00\x05t\x00\x12
         */
        template.setKeySerializer(new StringRedisSerializer());
        return template;
    }
}

 

3. spring에서session 사용방법 다음만 지키자

아래의 코드처럼 session에서 데이터를 가져와서 데이터 가공작업 후 -> 다른 페이지로 redirect하는 상황이 발생한다면

반드시 데이터 가공후 session.setAttribute 해줘야함

당연한거라 생각 할 수 있지만. 일반httpsession같은경우 setAttribute 하지 않더라도 데이터가 유지됩.

 

SinJepmSSVO ss_sinJepmSSVO = request.getSession().getAttribute("ss_sinJepmSSVO") != null ? (SinJepmSSVO) request.getSession().getAttribute("ss_sinJepmSSVO") : null;
        List<CycleDataCompareVO> cycleDataCompareVOS = jmngService.compare_cycle(ss_sinJepmSSVO,sinJepmSSVO);
 //session save
  request.getSession().setAttribute("ss_cycleDataCompareVOS",cycleDataCompareVOS);

 

4. 반드시 vo , dto 등 session에 담을 데이터는 implements Serializable 해야함.

@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Builder
public class TermVO implements Serializable {
    //년도
    private String year;

    //텀
    private String term;

    //텀 - 시작일자
    private String stdate;
    //텀 - 종료일자
    private String eddate;

    //텀코드
    private String termcode;

    public String getTermcode() {
        return year + "-" + (Integer.parseInt(term) < 10 ? "0"+term : term);
    }
}

 

5. redist는 프로젝트 초기에 세팅해서 작업을 하는게 좋을듯 . 중간에 끼어넣으려니 그동안 작업했던 vo , session 처리하는 부분들 변경해줘야 되는 귀찮은 일들이 생김.

 

반응형
블로그 이미지

visualp

c#, java

,

ngram 구현하기

Java 2020. 11. 26. 10:02
반응형

elasticsearch 색인시키기 위해서  2자 , 3자 색인이 필요한 상황

그래서 간단하게 Stringtokenlizer활용하여 만듬

ex)

input : 힐스테이트2차 

 

//2자 result

힐스 

스테 

테이 

이트 

트2 

2차 

 

//3자 result

힐스테 

스테이 

테이트 

이트2 

트2차

 

/**
     * elastic search 용 ngram 2,3 자르기
     * @param str
     * @param n 자를 글자수
     * @return
     */
    public static String esNgram(String str, int n){
        StringTokenizer stringTokenizer = new StringTokenizer(str.trim()," ");
        List<String> strArr = new ArrayList<>();
        while(stringTokenizer.hasMoreTokens()){
            String token = stringTokenizer.nextToken();
            for(int i=0; i<token.length(); i++){
                if(i+n > token.length()){
                    break;
                }
                strArr.add(token.substring(i,i+n));
            }
        }
        return String.join(" ", strArr);
    }

 

반응형
블로그 이미지

visualp

c#, java

,