Category Archives: Lang

프로그래밍 언어

[링크/javascript] 얕은 비교(shallow compare), 깊은 비교(deep compare), 얕은 복사(copy), 깊은 복사, 전개구문(spread operator), cloneDeep…

By | 1월 27, 2023

https://babycoder05.tistory.com/entry/%EC%A0%84%EA%B0%9C%EA%B5%AC%EB%AC%B8%EA%B3%BC-%EC%96%95%EC%9D%80-%EB%B3%B5%EC%82%AC-%EA%B9%8A%EC%9D%80-%EB%B3%B5%EC%82%AC 참고 전개구문(스프레드 연산자 = spread operator)을 사용한 깊은 복사는 반쪽짜리 깊은 복사이다. 하위 depth는 여전히 얕은 복사 상태임을 주의하자. => lodash.cloneDeep()을 사용하면 완전한 깊은 복사 실현 가능.

[javascript] querystring의 특정 pair의 값을 수정하여 또 다른 querystring 으로 만들기

By | 3월 17, 2021

// 함수 정의 /** * 파라미터로 받은 querystring의 특정 파라미터 값을 변경한 querystring을 리턴한다. * * – querystring은 주소부분을 제외한 ? 이후의 부분이라 가정한다. */ function modifyQueryString(src, modObj){ // querystring을 object 화 var obj = JSON.parse('{"' + decodeURI(src).replace(/"/g, '\\"').replace(/&/g, '","').replace(/=/g,'":"') + '"}'); for(key1 in obj){ for(key2 in modObj){ if(key1 != key2){ continue; } obj[key1] =… Read More »

[html] 상/하위 block 요소 간의 수직정렬 사례

By | 2월 9, 2021

html 엘리먼트의 수직정렬은 정확히 알고 하던 것이 아니라서 항상 헷갈리는데, 이번에 알게 된 사례를 하나 기록한다. 부모/자식 둘 다 display:block 이라고 가정하고, 부모요소의 css에 아래 항목을 추가한다. { display:flex; align-items:center; } 참고 링크 https://stackoverflow.com/questions/5166574/vertical-align-text-in-block-element/9406982

[java] List 의 진정한 deep copy 에 대하여

By | 2월 2, 2021

newList.addAll(oriList); 는 언뜻 deep copy 인 것처럼 보이지만 아니다. 커스텀 클래스인 경우에는 Clonable 을 implement 하기도 한다고 한다. 나는 주로 List<Map> 구조를 사용하기 때문에 그냥 아래와 같이 했다. List<Map<String, Object>> newList = new ArrayList<>(); oriList.forEach(el -> { newList.add(new LinkedHashMap<>(el)); // 이걸로 완전한 deep copy가 이루어 지는지는 아직 모르겠다. });

[java] 여러 개의 문자열에 대해 equals 비교가 아닌 contains 비교를 해 주는 메서드 (StringUtils.containsAny())

By | 9월 18, 2020

* commons StringUtils.containsAny([타겟 문자열], [비교대상1], [비교대상2]..);   * containsAll() 같은 건 없지만, 그거 비슷하게 구현한 메서드 public static boolean hasAndKey(String value, String… keys) { for (String key : keys) { if (value.contains(key) == false) { return false; } } return true; }    

웹 관련 유틸 클래스 (자작)

By | 8월 13, 2020

  package com.app.util; import java.util.Locale; import java.util.Properties; import javax.servlet.http.HttpServletRequest; import org.springframework.context.MessageSource; import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; import org.springframework.core.io.support.PropertiesLoaderUtils; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import com.util.StringUtil; import lombok.extern.slf4j.Slf4j; /** * 웹 관련 유틸 클래스 * * @author STEVE */ @Slf4j public class WebUtil { /** * 현재 request url 에서 [http(s)프로토콜 부터 도메인까지]를 substring 한 문자열을… Read More »

php 에서 java System.out.print() 처럼 간단한 서버 로깅 수행하기

By | 5월 29, 2020

* error_log() 라는 함수를 사용한다. e.g.) error_log(“블라블라”, 3, “/home/bruce/custom.log”); 두 번째 인수 3은 세 번째 인수의 경로에 해당하는 로그파일에 기록하겠다는 선언이다. 로그가 기록되지 않는다면 로그파일을 777 권한으로 생성해 보자.            

[링크] [JavaScript/자바스크립트] 숫자를 만, 억, 조, 경 등 만 단위 한글로 찍기 + 자바스크립트 연산의 한계값

By | 5월 27, 2020

https://this-programmer.com/entry/JavaScript%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%88%AB%EC%9E%90%EB%A5%BC-%EB%A7%8C-%EC%96%B5-%EC%A1%B0-%EA%B2%BD-%EB%93%B1-%EB%A7%8C-%EB%8B%A8%EC%9C%84-%ED%95%9C%EA%B8%80%EB%A1%9C-%EC%B0%8D%EA%B8%B0-%EC%9E%90%EB%B0%94%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9D%98-%ED%95%9C%EA%B3%84%EA%B0%92      

java 8 의 컬렉션(Map, Set, List…)을 편리하게 순회하는 샘플코드 (forEach, replaceAll, filter, map…)

By | 3월 25, 2021

/* * 기본적인 루프 * – map.forEach() */ map.forEach((k, v) -> System.out.println("key: " + k + ", value: " + v)); map.forEach((k,v) -> { System.out.println("key: " + k + ", value: " + v) }); map.entrySet().forEach((e) -> System.out.println("key: " + e.getKey() + ", value: " + e.getValue())); map.keySet().forEach((k) -> System.out.println("key: " + k)); map.values().forEach((v) ->… Read More »