프로젝트 중 문자 전송 관련하여 개발했을 때,

 

문자 내용 길이에 따라, SMS/LMS/MMS 기준으로 전송해야할 때가 있었다.

 

웹 검색 중 Byte 계산에 대한 1byte, 2byte 등 기준이 애매한게 많았다.

 

숫자, 영문, 띄어쓰기, 줄바꿈 등은 1byte

 

한글, 특수문자 등은 2byte로 계산하는것을 작성하였고, 추후에 필요할까 싶어 기록해놓는다.

 

public static int getByteLength(String str) {
    int bytes = 0;
    if (str == null) {

        return bytes;

    } else {

        char[] strChar = str.toCharArray();
        char ch; int code;

        for (int i = 0; i < strChar.length; i++;) {
            ch = strChar[i];
            code = (int) ch;

            // 2bytes
            if ((ch < '0' || ch > '9') && (ch < 'A' || ch > 'Z') && code > 255) bytes += 2;
            // 1bytes
            else bytes +=1;
        }

        return bytes;

    }
}

 

 

Byte 계산 (영문, 숫자, 공백 = 1byte, 그 이외 한글, 한문, 특수문자 등 = 2byte)

 

이미지 태그를 이용할 시 참조하는 이미지가 없을 경우를 대비해 대체할 이미지를 보여주는 기능이 있다.

 

바로 onError라는 속성인데 작성하는 방식은 아래와 같다.

 

<img src="aaa.domain.com/bbb.jpg" onError=this.src="aaa.domain.com/ccc.png">

 

하지만, 이 부분에서도 무한루프에 빠지는 허점이 있다.

 

bbb.jpg에 접근하였더니, 존재하지 않아 ccc.png에 접근했는데

 

이 파일 또한 존재하지 않았을 경우 다시 onError를 호출하여 또 파일을 찾는 것이었다.

 

<img src="aaa.domain.com/bbb.jpg" onError="this.onerror=null; this.src='aaa.domain.com/ccc.png'">

 

이렇게 onError부분에 코딩하게 되면, 기본 src의 참조오류로 인한 onError 호출할 때 null로 처리되며..

 

이후 error의 src가 참조를 못하였을 경우, 앞서 null로 처리하였기 때문에 무한루프에서 벗어날 수 있다.

 

혹시, 잘못된 부분이나, 더 좋은 정보가 있다면 공유 부탁합니다.

 

 

이클립스에서, 파일 검색 중 하나 인 Open Resource (Ctrl + Shift + R)을 사용 할 때

 

target 에 포함되어있는 파일까지 검색되어, 여간 걸리적 거리는게 아니었다.

 

해당 프로젝트 우클릭 후 프로퍼티에 들어간 다음, 리소스 안에 리소스 필터를 찾는다.

 

Properties -> Resource -> Resource Filters을 열면, 아래와 같은 이미지가 나온다.

 

 

 

 

쿠팡!

무료체험 후 월 4,990원이 결제됩니다. 와우 멤버십 이용약관에 동의합니다.

loyalty.coupang.com

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

 

 

 

 

여기서 , Add Filter를 누른 후

 

Exclude all 체크

 

Folders 체크

 

아래, target을 입력을 하면, 파일 검색 시 target파일은 제외된다.

 

위 작업은, Spring Tool Suite 4 (4.5.1 RELEASE) 버전에서 작성된 것이며,

버전 및 Tool 종류에 따라 다를 수 있습니다.

 

 

 

 

'Java > etc' 카테고리의 다른 글

[JAVA] Interger와 null 비교  (0) 2023.06.11

import com.fasterxml.jackson.core.type.TypeReference;

import com.fasterxml.jackson.databind.ObjectMapper;

 

private final static ObjectMapper objectMapper = new ObjectMapper();

 

/**
 *
 * 어떤 특정한 Json String 값을 TypeReference<T>로 번형
 *
 * @param HttpServletRequest request, String jsonKey, TypeReference<T> typeReference
 * @return Map<String, Object>
 * @throws Exception
 **/

public static <T> T convertJsonToObject(String jsonStr, TypeReference<T> typeReference) throws Exception {
    return objectMapper.readValue(jsonStr, typeReference);

}

+ Recent posts