Browsed by
[Category:] IT 개발

IT 개발 피드

[linux] find 검색과 grep 검색

[linux] find 검색과 grep 검색

자주 쓰이면서 유용한 쉘 명령어 입니다. find는 파일이나 디렉토리 검색시 유용하게 사용됩니다. # find ./ -name index.html 위의 예시는 현재 디렉토리에서 index.html 파일을 검색하는 것입니다. *.html 과 같은 형식의 검색도 가능합니다.   grep 검색은 파일의 내용 속 단어를 검색할때 사용합니다.  일일히 파일을 열어 검색할 필요가 없습니다. # grep -r “검색어” ./ 위의 예시는 현재 디렉토리에서 “검색어”라는 단어가 존재하는 파일을 찾는 명령입니다.

IE8이하에서 html5 태그를 사용하기 위한 방법

IE8이하에서 html5 태그를 사용하기 위한 방법

IE 버전 8이하에서는 html5의 시멘틱 태그 사용시 해석이 불가능해 깨지는 현상이 발생됩니다. header, footer, nav, section, article, aside, figure, figcaption, hgroup 등과 같은 html5 태그를 낮은 버전의 IE에서 사용하기 위해서는 아래 js를 추가하시면 됩니다. CDN 링크와 파일 다운로드로 제공되고 있고 라이센스는 GPL 2와 MIT 중 선택가능 합니다. 사용 방법은 <head> 태그 영역 안에 아래 내용을 추가해주시면 됩니다. <!–[if lt IE 9]> <script src=”dist/html5shiv.js”></script> <![endif]–> 자세한 사항은 다음 링크를 참조하시기 바랍니다. https://code.google.com/p/html5shiv/

[CSS] IE7 z-index 적용이 되지 않는 버그

[CSS] IE7 z-index 적용이 되지 않는 버그

IE 덕분에 작업 시간이 배로 늘어나는 느낌은 지울 수가 없습니다. 그것도 화면 퍼즐 맞추는 시간에 많은 시간을 소모하게 되는게 씁쓸합니다. IE7이 역사속으로 사라지기까지는 몇 년이 더 걸리겠지만 그 뒤엔 또 새로운 IE가 바통을 받아들겠지 ㅜ IE7에는 많은 버그가 있지만 그 중에 z-index 버그와 해결방법을 소개합니다. IE7은 이상하게도 position:relative 속성을 가지고 있는 엘리먼트는 z-index를 무참히 0으로 만들어 버립니다. 이 말은 곧 z-index가 먹히지 않는다는 말입니다. 크롬에서 작업을 마치고 IE로 테스트를 하는 순간 멘붕이 오는 요소 중 하나이기도 합니다 자, 여기서 우리는…

Read More Read More

[PHP] substr시 한글 글자수에 맞춰 자르기

[PHP] substr시 한글 글자수에 맞춰 자르기

영문과 한글은 1byte와 2byte로 byte 수가 다릅니다. 그리고 UTF-8 인코딩의 경우 3byte입니다. 이경우 단순히 substr를 사용한다면 1byte가 넘는 문자열은 깨지게 됩니다. 이런 문제를 바이트 체크하면서 문자열을 자르는 함수을 구현해 사용하는 경우가 간혹 있는데.. 정신건강에 좋지 못합니다. substr의 경우 mb_substr을 사용하면 간단하게 해결 됩니다. 다만 PHP 기본 함수는 아니고 mbstring 모듈을 추가해야 사용가능합니다. (요즘은 대부분 기본적으로 포함되어 있습니다.) mbstring 모듈은 2byte 이상의 문자열에 대해 string 함수를 사용하기 위해 만들어졌습니다. 때문에 substr 말고도 그 밖에 많은 string 함수를 지원합니다. 더 자세한 내용은…

Read More Read More

[PHP] 문자열 줄바꿈 치환

[PHP] 문자열 줄바꿈 치환

문자열의 엔터(개행) 문자를 <br/>로 치환해야할 경우가 많습니다. str_replace(‘\n’, ‘<br/>’, $str); 혹은 str_replace(‘\r\n’, ‘<br/>’, $str); 으로 간단하게 해결될 것 같지만 전혀 먹질 않습니다. 줄바꿈 문자를 <br/> 태그로 치환하는 함수가 따로 있습니다. 사용법은.. nl2br($str); 아주 간단합니다. 하지만 자주 쓰이기에 기억해두면 유용합니다.

[IE] userAgent : Trident 로 값 변경 후 IE7에서 오류나는 문제

[IE] userAgent : Trident 로 값 변경 후 IE7에서 오류나는 문제

IE 11이 출시한 이후로 기존 userAgent를 MSIE에서 Trident로 변경해야 하는 이슈가 있었습니다. 하지만 변경 후 IE7에서 userAgent가 IE로 식별하지 못하는 문제가 발생했습니다. 그 이유는 userAgent에 찍히는 값을 확인해보면 쉽게 알 수 있는데 Trident 문자는 IE8이상에서 존재했고 IE7이하에서는 존재하지 않았습니다. 때문에 IE7은 IE로 인식하지 못해 스크립트 동작에 문제가 생깁니다. 그렇다면 이 문제에 대한 처리를 해야할텐데요.. 저는 이런 방법을 사용했습니다. if (navigator.appName == ‘Microsoft Internet Explorer’) { // IE 계열 브라우저인 경우 if(window.navigator.userAgent.search(/trident/i) != -1) { alert(‘IE 8 이상’); }else{ alert(‘IE 7…

Read More Read More

[CI] hwp 파일 업로드가 안되는 문제

[CI] hwp 파일 업로드가 안되는 문제

파일 업로드 기능을 CodeIgniter 로 작업하고 있는데 hwp 파일만 서버가 인식하지 못하고 업로드를 하지 못하는 증상이 발생했습니다. 물론 다른 이미지나 zip, doc, ppt 파일등은 정상적으로 업로드가 되고 있었습니다. 전에 mime type 정보가 없어 업로드 되지 않는 증상이 있어 mimes.php 에도 이미 hwp 확장명에 대한 정의를 한 상태 였고 이상이 세팅에는 없었습니다.  이 상태로 개발서버로 옮겨 테스트해보니 증상이 발견되지 않아 서버 세팅의 문제 여부도 보였기 때문에 서버 세팅도 비교해봤지만 상이한 점은 없었습니다. 그래서 CI의 core 안에 있는 Upload 클래스를 뜯어보았습니다. 관련된 upload_do…

Read More Read More

[linux] 퍼미션 777로 설정해도 업로드 안되는 문제 해결방법

[linux] 퍼미션 777로 설정해도 업로드 안되는 문제 해결방법

작업한 소스를 실서버에 올리고 업로드를 테스트하는데.. 에러를 뿜었습니다. mkdir(): Permission denied 업로드 디렉토리 안에 새로운 디렉토리 생성을 시도하자 퍼미션 에러를 낸겁니다. 그런데 업로드 디렉토리의 퍼미션은 이미 777.. (더 이상 줄 권한이 없다.) chmod, chown으로도 해결이 안되었기에 로그를 뒤지기 시작했습니다. 아파치 로그도 확인 해봤으나 특별한 로그는 없었습니다. 그런데 로그 디렉토리에서 업로드 시도때마다 용량과 date가 변하고 있는 message 로그 파일을 발견했습니다. message 로그라면 selinux… 외부에서 접근하는 데이터를 selinux가 막은 것이 었습니다. 그 생각을 못하고 웹소스와 퍼미션만 가지고 삽질을 했네요. 보안에 좋다고는 하지만…

Read More Read More

[css] IE 버전 별 CSS 핵 정리

[css] IE 버전 별 CSS 핵 정리

IE6부터 IE9까지 자주 쓰이는 CSS 핵을 정리해봤습니다. IE6은 버리는 추세이고 IE8이상으로는 어느 정도 타 브라우저와 호환성이 준수한 편입니다. 하지만 IE7은 국내에서 아직까지 가장 많이 사용되고 있지만 IE6 수준과 버금가는 호환성을 지니고 있기에  무시 할 수 없습니다. IE7 위주로 CSS핵을 잘 숙지해두시더라도 코딩 작업에 도움이 많이 될겁니다. (핵은 예시 구문에 주황색으로 표시했습니다.) 단일 적용 핵 IE6 언더스코어 핵 (underscore hack) – 적용 범위 : property => div{_width:150px; _height:70px;}   IE7 *+html body 핵 – 적용 범위 : selector => *+html body div{width:100px;…

Read More Read More

[linux] 부팅시 daemon 실행되도록 등록하는 방법

[linux] 부팅시 daemon 실행되도록 등록하는 방법

이전 포스트에서 daemon 제작 방법을 다룬적이 있습니다. 그렇다면 이 daemon을 부팅시에 자동으로 실행되도록 하는 생각도 해볼 수 있는데요. 방법은 다양합니다. 하지만 이 내용에서는 최대한 간단한 방법으로 설정해보자라는 주제에 포커스를 맞춰보겠습니다. daemon 만들기 포스트 가기 준비물은 daemon 파일만 있으면 됩니다. 데몬파일이 /var/daemon 에 위치해 있다고 가정하겠습니다. 1. # vim /etc/rc.d/rc.local 명령으로 rc.local 편집 2. rc.local 마지막줄에 /var/daemon start 입력 후 저장 이것으로 부팅 시 자동실행 시키도록 설정이 완료되었습니다. 재부팅을 한 후 ps 명령으로 프로세스를 확인해보시면 됩니다. 주의 : 데몬파일에 문제가 없는지 충분히…

Read More Read More