리얼로다가코린이
407
2021-07-27 16:26:04
5
135

코드의 흐름이나 데이터의 효율


제가 코드를 2개를 짰는데 뭐가 더 데이터의 효율성이나 스피드(?)가 높은지 몰라서 질문드립니다. 

1. if문의 조건을 넣고 else문 안에 if else문을 추가한 코드입니다.

if(("".equals(f.get("s_sreg_date"))) && ("".equals(f.get("s_ereg_date")))) 
{
	lm.addWhere("a.reg_date >= '" + m.getTimeString("yyyyMMdd000000", f.get("s_sreg_date")) + "'");
}
else 
{
	if(!"".equals(f.get("s_sreg_date")))
	{
		lm.addWhere("a.reg_date >= '" + m.getTimeString("yyyyMMdd000000", f.get("s_sreg_date")) + "'");
	}
	else if(!"".equals(f.get("s_ereg_date")))
	{
		lm.addWhere("a.reg_date <= '" + m.getTimeString("yyyyMMdd235959", f.get("s_ereg_date")) + "'");
	}
}

2. 첫번째조건에 if else문을 넣고 두번째 조건에 if문을 넣은 코드입니다.

if(!"".equals(f.get("s_sreg_date")+f.get("s_ereg_date"))) lm.addWhere("a.reg_date >= '" + m.getTimeString("yyyyMMdd000000", f.get("s_sreg_date")) + "'");
else lm.addWhere("a.reg_date >= '" + m.getTimeString("19900101000000", f.get("s_sreg_date")) + "'");
if(!"".equals(f.get("s_ereg_date"))) lm.addWhere("a.reg_date <= '" + m.getTimeString("yyyyMMdd235959", f.get("s_ereg_date")) + "'");

데이터가 어떤 값을 불러오는 자세한 내용보다 어느 코드가 효율성이나 데이터의 전달과정에서 더 우세한지 봐주시면 감사드리겠습니다.

0
  • 답변 5

  • ghkdwls30
    2k
    2021-07-27 16:37:37

    이코드를 가지고 효율성이나 퍼포먼스를 논할 코드는 아닌것같구요.

    가독성이 현저히 떨어지네요.


    오히려 메모리 관점에서 효율을 원한다면 

    + 연산보다는

    StringBuffer를쓰세요

  • 포기해..
    1k
    2021-07-27 16:40:16

    단순 참 거짓 분별하는데 뭔 효율성을 따집니까?

    가독성이나 신경쓰세요

  • Mux
    417
    2021-07-27 16:40:27

    if문에서 f.get으로 가져온 문자열을 전부 더해서 ""빈문자열인지 비교하지 마시고 f.get으로 가져온 개별 문자열을 isEmpty() 메소드를 이용해서 검증하시는게 좋을 것 같습니다.

  • Mux
    417
    2021-07-27 16:42:39

    eqauls가 isEmpty보다 느리게 동작합니다.
    그리고 윗 분들께서 조금 강하게 어필을 해주신 부분은
    가독성인데 코드를 처음볼 때 굉장히 보기 어렵거나 껄끄럽습니다.

    if문 블럭이라던지 줄 바꿈이라던지 조금만 더 신경써주셨으면 감사하겠습니다.

  • 리얼로다가코린이
    407
    2021-07-27 16:58:21

    Mux

    2개의 빈값의 조건을 가져오는 부분에서만 isEmpty부분을 수정하면 되는걸까요??


  • 로그인을 하시면 답변을 등록할 수 있습니다.