2019년 첫글 게시
2019년 첫글 게시겸 2018년 회고글
어느덧 블로그 한지도 6년이란 시간이 지낫다
2013
2014
2015
2016
2017
2018
그리고 2019 시작
길지도 짧지도 않은 시간이 었는데, 어느덧 세월이 훌훌 흘러가버린다.. ㅜㅜ 나이도 먹고
돌이켜보면 참 핑계지만, 2018년에는 정말 육아에 많이 ? 매진한거 같다.
일찍자고 첫째둘째랑 같이자고, 보통 8~9시 잠들고 3~4시에 일어나는 생활을 했는데
물론 자의적으로 일어난건 아니고 막내가 일어나기 때문에 난 그냥 일어난다. 그대로 나의 하루는 시작
1여년 정도 하니 이제는 그냥 세벽 4시 5시만 되면 저절로 눈이 떠진다. 군생활에 불침번 같이 매일 같이 근무다. 세벽근무 ㅋㅋ
일도 일이고 육아도하고 첫째 둘째랑도 놀아주고 집안일도 도와주고 블로그에 점점 멀어져만 갔던 시간이었다.
아이들과 함께한 시간이 그래도 쪼금 많았던 한해였던거 같다. 앞으로도 그래줄것이다… 막내가 잠만 잘 자준다면 나의 피로가 덜할텐데…ㅋㅋ
2018년은 가족과 함께 추억도 많이 만들고 아빠로써 조금더 성장한 느낌이 든다.
블로그는 조금 뒷전이었지만, 한해 쉬었던 해라고 생각든다… 다시 개발자로써 성장 할수 있도록 블로그를 열심히 해봐야겠다.
와이프가 생일선물로 아이패드 프로 3세대를 사준다하는데 열심히 활용하여 파워?블로그가 되야지 ㅋㅋ
짧게나마 올해 2019년의 목표를 적어본다.
- 머신러닝 활용
- 도커 활용방안 (도커 배포 프로세스 및 도커 레포지토리 구축)
- 문서 잘쓰기… 문서도구 활용
- 몇가지 개인 프로젝트 (2018년에는 한개도 안했다, 아니 못했다 ㅠ,ㅠ)
- 정리 잘하기
- 언제나 그렇지만 기본기 다지기… (자료구조, 알고리즘…)
만다란트 작성법이라는걸 봤는데, 몇가지 아이디어를 더해서 목표를 정하고 실천해 봐야겠다..
이글을 다 작성하고나면 블로그 최신 버전으로 업데이트 해야겠다. 플러그인도 안한지 1년도 넘어서 업데이트할게 태산인데…
그리고 앞으로 머릿속에 정리되지 않았던 내용들도 끄집어내서 자주 적도록 노력해야겠다. 6년째노력중인데 잘안된다. ㅋㅋ
2019년 기해년 화이팅 하자 !
정말 정말 정말 오랜만에 블로그
Long time no see
마지막글이 작년 9월달이라니…
정말 오랫동안 글을 안썻구나 느낀다 ㅋㅋㅋ
아직늦지 않았으니 다시 열심히 블로깅을 하자..ㅎㅎ
그동안 나에게 많은 일이있었고 많은 변화도 찾아왔다!
내가 정말 아빠가 되는것이 느껴진다…(이미 3명의 자식이 있다) 응?ㅋㅋ
짧게나마 지난 몇개월간 개인적인 일의 흔적을 적어보자
프리랜서 생활
은하수호랑이 완성
Ionic Framework 개발
orange pi – network 구축 * 20대 (op tower )
jekins 스케줄러 가동 (news site 국내 언론사)
nutch 고도화 (이건 하다 말았넹)
hapi site 개발 ( 이건 nodejs의 프레임웤 사이트인데, 비공개사이트)
그밖에 여러가지 일들…
생각하려니 또 생각이 안나네.. (이래서 기록이 중요)
앞으로또 열심히 차근차근 남겨보도록 하자
다짐! (몇번째 다짐인지.. ㅋㅋㅋ )
자바스크립트 마스킹 처리 정규식
이번에 특정 정보를 마스킹 처리해야할 일이 생겼는데
이참에 정리 차원에서 올립니다.
자바스크립트로 마스킹 처리
/* * 마지막 글자를 * 처리한다. (ex. 홍길동 → 홍길*) */ function maskingName(strName) { if(strName === undefined || strName === '') { return ''; } var pattern = /.$/; // 정규식 return strName.replace(pattern, "*"); } /* * 뒤에서 부터 3글자를 * 처리한다. (ex. 12가3456 → 12가3***) */ function maskingCar(strCar) { if (strCar == undefined || strCar === '') { return ''; } var pattern = /.{3}$/; // 정규식 return strCar.replace(pattern, "***"); } // 마스킹 이메일 처리 // function masking(email) { var len = email.split('@')[0].length ; // ******@gmail.com // var len = email.split('@')[0].length-3; // AB***@gamil.com return email.replace(new RegExp('.(?=.{0,' + len + '}@)', 'g'), '*'); }
모바일 웹 개발 팁
[Viewport] – 기본설정
[자동 전화걸기 태그 방지] – 기본설정
[홈 화면 아이콘] – 기본설정
[파비콘] – 기본설정 추천
[툴바감추기] – 기본설정 (세트)
[전체화면 모드] 아이폰용 (툴바감추기도 적용되어 있어야 적용됩니다.) (세트)
[스플래시 스크린] 아이폰용 (세트)
[상태바 색상 설정] (bar에 style 입히기) 아이폰용 (세트)
[화면 높이가 너무 짧을 경우]
2. css
[폰트 사이즈 고정하기] – 기본설정
[css의 분리]
3. mobile기법
4. tel schema
자바 디자인패턴
디자인 원칙
스트래티지 패턴(Strategy Pattern)
옵저버 패턴(Observer Pattern)
데코레이터 패턴(Decorator Pattern)
팩토리 패턴(Factory Pattern)
싱글턴 패턴(Singleton Pattern)
커맨드 패턴(Command Pattern)
어댑터 패턴(Adapter Pattern)
퍼사드 패턴(Facade Pattern)
템플릿 메서드 패턴(Template Method Pattern)
이터레이터 패턴(Iterator Pattern)
컴포지트 패턴(Composite Pattern)
스테이트 패턴(State Pattern)
프록시 패턴(Proxy Pattern)
디자인 패턴 정의
정규식 이란
1. 정규식이란?
- String의 검색, 치환, 추출을 위한 패턴.
- 언어별 사용법은 대동소이함.
- 패턴예>전화번호 형식, 이메일 형식 등.
- 벨리데이션 체크할때
- Text파일에서 문자 추출 또는 변환을 위해
정규식 몇가지만 잘 정리하고 익혀두어도 쉽게 검색,치환,추출등이 가능하다는거..
앞으로 저도 각 랭귀지에서 사용하는 정규식 사용법 활용법들을 따로 정리할 예정입니다.
위키에 잘 정리되있네요 ^^;
https://ko.wikipedia.org/wiki/%EC%A0%95%EA%B7%9C_%ED%91%9C%ED%98%84%EC%8B%9D
스프링 4.0 릴리즈 가이드
iframe 부모, 자식 함수 실핼
<body>
<iframe id=“iframeA” src=“test.html”></iframe>
</body>
// iframe 접근
window.frames.length;
// window.frames[0].document;
// iframe의 window의 document객체
document.getElementById(‘iframeA’);
// iframe 엘리먼트document.getElementById(‘iframeA’).contentWindow.document;
// iframe의 window의 document객체
// iframe객체의 window$(‘iframe’).get(0).contentWindow // window
// iframe객체의 document$(‘iframe’).get(0).contentDocument // document// 또는 $(‘iframe’).get(0).contentWindow.document
// document
// 부모html에서 자식iframe 함수 실행
$(‘#iframe’).get(0).contentWindow.함수명(args);
$(‘#iframe’)[0].contentWindow.함수명(args);
// 부모html에서 자식iframe 변수접근
$(‘#iframe’).get(0).contentWindow.접근할변수명;
IE8 하위버전 호환을 위해 contentWindow 를 확인해줄필요가..있습니다
<pre>var objDoc = obj.contentWindow || obj.contentDocument;</pre>
// 부모html에서 자식iframe 접근, 제어
// jQuery$(‘#iframe’).contents().find(‘#foo’).text(‘안녕하세요’);
// 자식iframe에서 부모 html 변수, 함수 호출window.parent.변수명; // 한단계 부모 // 그렇다면 두단계 부모는?? window.parent.parent.변수명window.top.변수명; // 최상위 부모 // html(최상위) -> iframe -> iframe – iframe(자식) (여기에서 top을 쓰면 최상위 부모로 접근, parent를 쓰면 바로위 iframe에 접근)
// iframe 이전페이지로$(‘iframe’).get(0).contentWindow.history.go(-1);
// iframe 새로고침$(‘iframe’).get(0).contentDocument.location.reload(); // document
// iframe 로드$(‘iframe’).load(function(){ // iframe이 모두 load된후 제어 $(this).contents().find(‘body’);});
// 자식iframe에서 부모html의 다른 iframe에 접근$(‘제어할 아이디’, parent.frames[“부모창 제어할 frame의 name값”].document).html(“여기도 제어한다.”);
// 자식iframe에서 부모html 접근 (최상위 부모html에 접근된다.)
$(‘부모창 제어할 아이디’, parent.document).contents().find(‘body’).html();
// $(‘부모창 제어할 아이디’, parent.document) -> $(‘#ID이름’,top.document)로 변경해도 된다.
// html -> iframe -> iframe -> iframe 이런 구조일 경우
// 자식iframe 한단계 윗 부모html(iframe)에 접근하기
window.frameElement
// iframe 또는 this.frameElement .parentNode // 부모
<div> <iframe src=”sub.html”></iframe></div> window.frameElement.parentNode
// 자식iframe을 감싸는 부모는 div가 된다.if(!window.frameElement){ console.log(‘최상위 프레임’); }
// 요소(node)가 iframe이 아닐경우에는 최상위(root)부모 html 이다.
java Socket 오류
– java.net.SocketException: Connection reset by peer: socket write error
원인: write 시 상대방 socket close 된 경우
– java.net.SocketException: Connection reset
원인: read 시 상대방 socket close 된 경우
– java.io.IOException: Broken pipe
원인: receiver에서 송신받은 데이터를 제때 처리하지 못하는 상황(네트워크가 느리거나 서버의 CPU가 max인 경우 등)에서 sender가 계속 보내는 경우