Posted
Filed under 프로그래밍

$("#id",opener.document).text("aa");
$("#id",parent.document).text("aa");
2013/07/03 18:50 2013/07/03 18:50
Posted
Filed under 프로그래밍/PHP
개발을 하다보면 설정파일이 필요할때가 있다
프레임웍을 사용하면 자체적으로 별도의 설정파일을 세팅할수 있게 지원하지만 네이티브로 개발할경우
많이 사용하는 방식을 소개한다.

parse_ini_file

설정파일 내용은 기본적으로 php의 ini파일 형태이고
; This is a sample configuration file
; Comments start with ';', as in php.ini

[first_section]
one = 1
five = 5
animal = BIRD

[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"

[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"

 

사용방법은

<?php
$ini_array parse_ini_file("sample.ini"true);
echo $ini_array['first_section']['one'];
?>




배열의 형태로 사용한다.
두번째인자의 true는 그룹명까지 결과에 포함하겠냐는거다


ini파일 노출이 껄그러우면 파일을 php로 만들어버리면 된다
 ;<? /*
; This is a sample configuration file
 ; Comments start with ';', as in php.ini

 [first_section]
 one = 1
 five = 5
 animal = BIRD

 [second_section]
 path = "/usr/local/bin"
 URL = "http://www.example.com/~username"

 [third_section]
 phpversion[] = "5.0"
 phpversion[] = "5.1"
 phpversion[] = "5.2"
 phpversion[] = "5.3"
;*/?>

2013/07/02 09:47 2013/07/02 09:47
Posted
Filed under 프로그래밍/PHP

잘돌아가던게 php 5.4로 업그레이드후 오류가 뜬다

2013/06/09 12:46:16 [error] 2952#0: *11681 FastCGI sent in stderr: "PHP message: PHP Fatal error:
Call-time pass-by-reference has been removed in /home/miyu/html/zboard/zboard.php on line 197"
while reading response header from upstream

 

&$error 와 같이  reference 처리된것은 모두 에러처리 되고 프로그램이 중단된다.
$error 와 같이 모든 코드를 교체해야한다.

예전에는 php.ini에서 allow_call_time_pass_reference = On으로 처리했지만
5.4부터는 사라졌다.

더불어 globals_register와 magic_quotes도 사라졌다.

The ini option allow_call_time_pass_reference was removed
Register globals, magic quotes and safe mode were removed

 

2013/06/09 13:21 2013/06/09 13:21
Posted
Filed under 장난감
서밋과 함께한 간단한 등산.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
2013/06/05 21:16 2013/06/05 21:16
Posted
Filed under 골때리는 기사들
한 편의점 주인이 본사와 갈등을 겪다 자살을 기도한 사건 보도해 드렸습니다. 그런데 편의점 CU 측이 책임을 면하려고 고인의 사망 진단서에 손을 댄 사실이 뒤늦게 밝혀졌습니다. 수면 유도제 중독이라는 문구를 삭제했습니다.

.........


http://media.daum.net/economic/newsview?newsid=20130530203007800

2013/05/30 23:11 2013/05/30 23:11
Posted
Filed under 프로그래밍/PHP
PHP 5.4.15로 업그레이드를 했다
근데 기존에 없던 옵션이 생겼네?
security.limit_extensions 라는 놈이다

php-fpm.conf 을 열어보면
;security.limit_extensions = .php .php3 .php4 .php5

이렇게 되어있을것이다.
주석을 풀어주고 php코드가 들어간 확장자를 추가해준다.

security.limit_extensions = .php .php3 .php4 .php5 .htm .html

기본값이 .php 이기때문에 다른게 들어오면 막아버리는것이다.


2013/05/30 01:21 2013/05/30 01:21
Posted
Filed under 기타

요즘 시간을 가지고 구직 중이다.
이름없고 작아도 오래 다닐수 있는 회사를 찾고 있지
전회사에서는 면접관이였지만 이제 면접자로 입장이 바뀌었다

면접관이 갑?

내가 입사해서 어떤일을 할지도 안알려주는...

자기들 회의한다고 1시간이 넘게 대기실에서 기다리게 하고 미안하단 말한마디 없고 음료 한잔 안주고 실무파악도 안된 사람이 면접관으로 나온....

정보만 캐낼려는...

이력서도 안보고 이상한 질문 하는...

명함도 안주고 커피숍에서 면접하는...

면접관이 나보다 떨어져서 대화가 잘 안되는...

예전부터 느끼는거...회사가 같이 일할 사람을 선택하는거 맞지만
면접자는 자기가 일할 회사를 선택하는것도 맞다는거.

좋은 인재를 채용하려면 면접관의 자세도 중요하다 생각한다.

기본적인 예의는 서로 지키자고...
내가 널 채용해 줬으니 감사하게 생각하라는 마인드는 언제적 얘기인가..

지금은 당신이 면접관이지만 언제든지 상황이 바뀔수도 있다는걸 명심하자..



2013/05/15 11:54 2013/05/15 11:54
Posted
Filed under 프로그래밍

    $("#BtnDateSearch").click(function() {
     if(!$("#Date1").val()) { alert("시작날짜를 선택하세요");  return false; }
     if(!$("#Date2").val()) { alert("끝날짜를 선택하세요");  return false; }
     var date1 = new Date($("#Date1").datepicker("getDate"));
     var date2 = new Date($("#Date2").datepicker("getDate"));
      if (date2 - date1 < 0){
      alert("끝 날짜가 시작날짜보다 이전일수 없습니다"); return false;
     }
     $("#DateSearchForm").submit();

    });

 

2013/04/25 11:39 2013/04/25 11:39
Posted
Filed under 프로그래밍

mysql 에서 CHAR, VARCHAR 타입은 유사하다.

단지 저장하고 읽을 때만 살짝 다르다.

 

CHAR(40) 에 "mydata" 를 저장할 때, 6바이트를 저장하고 나머지 34바이트의 비어 있는 공간에는 공백을 채워서 저장한다.

그리고 읽어들일 때, 임의로 채워진 공백들은 제거되어서 읽혀진다. (물론, PAD_CHAR_TO_FULL_LENGTH 모드를 활성화하면 공백까지 다 읽어온다)

 

VARCHAR(40) 에 "mydata" 를 저장할 때, 6바이트를 저장하고, 뒤에 1바이트(255길이 미만) 또는 2바이트(255길이 이상)의 길이 정보를 추가한다.

따라서 VARCHAR 에는 공백을 채워넣지 않으므로, 가변 길이의 정보에 적합하다.

문제는 VARCHAR(40) 에 새로운 데이터가 업데이트 될 경우이다. 더 큰 길이의 데이터가 저장되면, 공간이 부족하여 새로운 저장 영역에 새로 할당해야 하기 때문이다. 이 때문에, 데이터 파편화가 심해진다.


테이블 ROW 중에 CHAR, VARCHAR 타입이 섞여 있으면 데이터 파편화는 발생할 수 밖에 없다. 파편화를 염두하고 설계한다면, 테이블의 데이터 타입 중에 VARCHAR 타입을 두어선 안될 것이다.

그러나 MySQL 에서는 다음의 쿼리를 적용하면 파편화를 막을 수 있다. 

ALTER TABLE tblname ROW_FORMAT = FIXED;

VARCHAR 타입을 CHAR 타입처럼 동작하도록 강제로 지정하는 것이다. 덕분에 저장 용량은 증가하지만, VARCHAR 로 인한 파편화로 성능 저하는 막을 수 있다.

 

물론 VARCHAR 로 선언한다고 무조건 파편화가 발생하는 것은 아니다. 앞서서 적은대로, 처음에 데이터를 INSERT 한 뒤에, 다른 크기의 데이터로 UPDATE 가 발생할 경우에 파편화가 발생하는 것이다.

그러므로 LOG 테이블처럼 INSERT 만 허용되는 테이블에는 이 문제가 적용되지 않을 것이다.

 

 

그리고, 다음의 쿼리를 통해서 저장된 데이터를 분석해볼 수도 있다.

SELECT * FROM tblname PROCEDURE ANALYSE();

 

 

마지막으로, 테이블 설계할 때부터 데이터 타입은 신중하게 고려하면 좋다. IPv4 문자열 주소는 CHAR(15) 형태로 한다든가, 아니면 아예 INT 값으로 저장할 수도 있다.(IPv6 라면 CHAR(39) 이다.)

그리고 MD5 암호키 정보는 CHAR(32) 형태로 하는 것이다.



출처 : http://netmaid.tistory.com/44

2013/04/23 14:07 2013/04/23 14:07
Posted
Filed under 프로그래밍

* 스크럼 (SCRUM) 구성요소
 Product Owner (제품 소유자)
 Scrum Master (스크럼 마스터)
 Scrum Team (스크럼 팀)
 Sprint (스프린트)
 Sprint Goal (스프린트 목표)
 Product Backlog (제품 백로그)
 Sprint Backlog (스프린트 백로그)
 Sprint Task (스프린트 작업)
 Sprint Planning Meeting (스프린트 계획 회의)
 Sprint Review Meeting (스프린트 검토 회의)
 Daily Scrum Meeting (일일 스크럼 회의)
 Scrum Retrospective Meeting (스크럼 회고 미팅)
 Velocity (속도)
 Release (릴리즈)
 Release Burndown Chart (릴리즈 번다운 챠트)
 Burndown Chart (번다운 챠트)
 Impediments (장애)


* 제품 소유자 (Product Owner)
 제품 백로그를 책임지는 사람
 고객 요구사항 식별을 대표하는 사람
 제품 소유자는 프로젝트 착수 시점부터 프로젝트 일원이 된다.

* 스크럼 마스터 (Scrum Master)
 프로젝트 관리자와 비슷하나, 관리자보다는 리더에 가까운 역할이다.
 팀에 봉사하는 역할을 수행 - Servant 리더십이 필요하다.

* 스크럼 팀 (Scrum Team)
 4~7명의 개발자로 구성된다.
 모두 함께 한다는 자세로 일한다.
 자기 주도적인 팀이다.
 팀원 스스로 의사결정을 한다.

* 스프린트 (Sprint)
 하나의 이터레이션을 의미한다.
 하나의 스프린트는 보통 30일 정도이다.
 
* 스프린트 목표 (Sprint Goal)
 스프린트 종료 시점에 시연이 가능한 결과를 얻는 목표를 수립한다.

* 제품 백로그 (Product Backlog)
 제품에 필요한 모든 기능을 담은 목록이다.
 백로그에는 기술적인 작업도 있고, 좀더 사용자 중심적인 작업도 있다.

* 스프린트 백로그 (Sprint Backlog)
 해당 스프린트에서 개발되는 제품 백로그
 
* 스프린트 태스크 (Sprint Task)
 제품 백로그를 개발하기 위해 필요한 작업이다.
 일반적으로, 시간단위로 분할되어진다.
 태스크가 분할되면, 팀 회의를 통해서, 개발할 담당자를 결정한다.
 
* 스프린트 계획 회의 (Sprint Planning Meeting)
 스프린트가 시작할 때마다 열린다.
 회의는 하루종일 열린다.

* 제품 소유자, 스크럼 마스터, 팀의 개발자 전체가 회의에 참석한다.
 스프린트 검토 회의 (Sprint Review Meeting)
 한달간의 스프린트를 마쳤을 때, 잠재적으로 출시 가능한 소프트웨어를 고객에게 검토를 받는다.
 가능한 비공식적인 미팅으로 수행한다. 형식적인 자료를 만들기 위한 시간을 줄이기 위함이다.
 
* 일일 스크럼 회의 (Daily Scrum Meeting)
 각 팀원은 다음과 같은 세가지 질문에 대답한다.
 어제 무엇을 했는가?
 오늘 무엇을 할 것인가?
 장애 요소는 무엇인가?

* 스크럼 회고 회의 (Scrum Retrospective Meeting)
 스크럼 검토 회의 종료후에 실시한다.
 스크럼 마스터와 팀은 다음 단계에서 좀 더 개선해야할 것이 무엇인 지를 정의한다.

* 속도 (Velocity)
 한 스프린트에서 개발해야할 스토리포인트 또는 제품 백로그 갯수이다.
 
* 릴리즈
 인도가능한 제품이 변화되는 모습
 하나의 릴리즈는 보통 하나 또는 여러개의 스프린트로 구성된다.

* 릴리즈 번다운 챠트 (Release Burndown Chart)
 프로젝트 진행 현황을 표시한 챠트

* 번다운 챠트 (Burndown Charts)
 하나의 스프린트에서 작업에 대한 완료 추이를 그린 챠트

* 장애 (Impediments)
 스크럼 팀이 효과적으로 일하는 것을 방해하는 요소

2013/04/16 10:55 2013/04/16 10:55