[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 »

[링크] MyBatis 1:N select 결과 매핑하는 예제 (e.g. 게시물 목록조회시 게시물당 첨부파일목록을 함께 조회하여 그룹핑, group, collection, one to many)

By | 7월 8, 2021

[Mybatis] 1:N 관계 데이터 처리 data concatenation 주의사항 resultMap > collection 을 사용할 경우 collection 의 요소가 두 개 이상일 경우(거의 그렇겠지만) 평범한 페이징으로는 오류가 날 수 밖에 없다. offset, limit 등은 그룹핑 후에 걸어야 하는데, collection의 경우 쿼리가 다 끝나고 그룹핑 되므로 그래서 나는 그냥 resultMap-collection 패턴을 포기하고 주 레코드만 select 후, select된 목록의… Read More »

[워드프레스] 이 웹사이트에 치명적인 오류가 있습니다.

By | 3월 12, 2021

여느때처럼 블로그 관리자 페이지에 로그인 하려고 했더니, 흰 바탕에 달랑 두 줄이 씌여 있는 페이지로 이동했는데 내용이, ‘이 웹사이트에 치명적인 오류가 있습니다’ 였다. 겁나 황당.. trouble shooting 링크가 있어서 따라가 보니 이런 저런 내용이 있어서 하나하나 따라해 보려고 했는데, 다행히 첫 단계에서 해결이 되었다. 사실 별로 한 것도 없어서 왜 해결이 되었는지도 모르겠는데. 일단 복기하면,… Read More »

Intellij 에서 debug 시 breakpoint 가 에러메시지와 함께 비활성화(disable) 되는 문제 (intellij debug no executable code found at line…)

By | 3월 10, 2021

간만에 디버그 좀 할라 했더니 Intellij 가 안도와주네 하. 대충 인터넷을 둘러보니 ‘소스랑 빌드랑 싱크가 안맞나보네요. 겁나 클린해 주세요~’ 등등의 답변이 많은 것 같았다. 나는 늘 하던 maven clean package 를 했더니 어찌어찌 해결되었다. 굳이 package 가 아니더라도 clean 만 들어가면 되지 않을까 싶네~

flutter 환경셋팅시 에러 해결 등등

By | 3월 10, 2021

flutter doctor –android-licenses 실행시 Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema 에러 java8 로 내리라고 해서 봤더니 나는 이미 java8 이었음. Android Studio 에서 아래의 항목을 추가 설치 후 다시 해 보니 성공 Appearance & Behavior > System Settings > Android SDK 에서 Andriod SDK Command-line tools (latest) 를 체크 후 설치

mariadb(아마 mysql도)의 varchar(길이) 에 대하여 잘못 알고 있었던 것 (글자 length, byte length)

By | 7월 16, 2021

오라클 하던 생각으로 막연히 varchar(길이) 안의 길이가 바이트를 나타낸다고 생각하고 있었는데, 오늘 실험 결과 글자(character)단위 길이인 것을 확인했다. mariadb 10 (utf-8) 의 varchar(10)에 한글 10자를 넣어 보니 정상적으로 들어갔다. LENGTH(입력값) = 30, CHAR_LENGTH(입력값) = 10 의 결과가 나왔다.

워드프레스에서 <br/> 태그를 사용하여 개행(줄바꿈, line break)하기

By | 3월 4, 2021

스택오버플로운가 어디서 봤던 것 같은데, 워드프레스는 <br />을 공백문자로 치환한다고 한다. 그래서 아무리 태그를 먹여도 한 줄 밖에는 개행이 안되는 짜증인 것이다. 그래서 꼼수로서, ‘뭔가 내용이 있는 br 태그’ 를 사용하면 된다고 한다. 그래서 내가 사용하는 것은 이것. <br class="" /> 아 속이 다 시원하네.

[윈도우10] 절전모드에 들어간 PC를 스케쥴러로 깨우는 셋업

By | 2월 17, 2021

새벽에 알아서 파이썬 스케쥴러가 돌아서 수행할 작업이 있었는데, PC를 늘 켜놓을 수는 없는 환경이라서, 파이썬 스케쥴러가 돌기 직전에 PC를 깨우고 싶었다. RTC alarm power on 을 사용하여 종료된 PC를 처음부터 부팅하는 것은 스케쥴링도 디테일하게 하기가 어려웠고, PC가 켜진 이후에 작업 스케쥴러를 통해서 파이썬 스케쥴러를 띄우는 것도 백그라운드에서만 가능해서 확인도 잘 안되었고 알 수 없는 이유로… 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가 이루어 지는지는 아직 모르겠다. });

[Mybatis] 동적쿼리 관련 (if, foreach, test …)

By | 7월 7, 2021

if, foreach 등 샘플코드 <if test='cateIdList != null and cateIdList.size > 0'> cate_id in (<foreach collection="cateIdList" item="cateId" separator=", ">#{cateId}</foreach>) </if> 외따옴표, 쌍따옴표에 숨겨진 의미 https://developyo.tistory.com/242

[git] intellij 에서 빈 github repository 와 연동하기

By | 12월 29, 2020

※ 소스는 로컬에 있고 github에는 빈 repository 가 있을 경우 github 계정 셋팅은 이미 완료되어 있다는 가정. 프로젝트 우클릭 > Manage Remotes 에서 git full url 을 등록한다. 프로젝트 우클릭 > git > add 프로젝트 우클릭 > git > push

“이 컴퓨터에 마지막으로 연결한 usb 장치가 오작동했으며 windows에서 장치를 인식할 수 없습니다” 상황시 해결 경험

By | 12월 25, 2020

제어판 > 장치관리자 에 보면 ‘알 수 없는 장치(장치 설명자 요청 실패)’ 라고 느낌표 표시된 장치가 있을 건데, 해당 장치를 장치관리자에서 제거한다. 제어판 > 장치 및 프린터 에 보면 역시 해당 장치가 있을텐데 제거해 준다. 장치 새로고침이든 뭐든 해서 refresh 를 해 보자.