Browsed by
[Category:] IT 개발

IT 개발 피드

저사양 서버 성능 최적화 하기 (#2 MySQL/PHP)

저사양 서버 성능 최적화 하기 (#2 MySQL/PHP)

이번에는 MySQL과 PHP 입니다. 설정할 것들이 그렇게 많진 않습니다. (제가 지식이 얕아서..)   1. MySQL (my.cnf) 우선 MySQL부터 보겠습니다. MySQL의 설정파일은 패키지로 설치하셨다면 /etc/my.cnf 파일이 되겠습니다. [mysqld] skip-locking key_buffer = 16K max_allowed_packet = 1M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 64K # InnoDB 사용시 추가 옵션 innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M…

Read More Read More

저사양 서버 성능 최적화 하기 (#1 Apache)

저사양 서버 성능 최적화 하기 (#1 Apache)

이 블로그는 워드프레스로 제작되었습니다. 워드프레스는 많은 기능을 가지고 있지만 속도가 느리다는 단점을 가지고 있지요. 게다가 기반이 되고 있는 언어도 PHP이기 때문에.. PHP 역시 빠른 언어는 아닙니다. 설상가상으로 아주 저렴한 VPS 서버위에서 돌고 있습니다. 여기서 아주 저렴한 VPS (가상화서버)라 함은.. cpu는 1개의 단일 코어, 512메가의 메모리, 30기가의 HDD 입니다. 웹서버는 메모리 상에 많은 데이터가 올라와있는 상태로 유지가 되어야하기 때문에 메모리는 무엇보다 중요한 요소입니다. 그런데 512메가 입니다. 요즘 저렴한 개인 PC도 메모리는 최소 4기가 이상이죠. 흐흐.. 아무튼 돈이 없으니 저사양 스펙으로 돌리고…

Read More Read More

[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우

[CI] 로그인시 Session은 처리됐는데 로그인이 안되는 경우

하아.. 이걸로 고생을 좀 한 것 같습니다. 여러 PC로 로그인 테스트를 하던 중 Session은 문제 없이 처리가 되었는데 로그인이 되지 않았습니다. Session 등록 직후 값을 찍어보면 찍히는데 로그인 완료 화면에서 Session을 찍어보면 빈 값으로 출력되는 문제가 있었습니다. 에러로그에도 아무런 문제가 나타나지 않고 특정 PC에서만 발생하니 더 난해한 문제였습니다. 그런데 간단하게 해결이 되었습니다. 해결 방법 1. /application/config/config.php 파일을 엽니다. 2. $config[‘sess_match_useragent’] 값을 TRUE에서 FALSE로 변경합니다. 3. 로그인을 시도해봅니다. 기본적으로 CodeIgniter에서는 Session 데이터 옵션에 User_Agent를 매칭하는 옵션이 설정되어있습니다. 그런데 이 부분에서 문제가 좀…

Read More Read More

[CI] Session 데이터를 DB로 저장하는 방법

[CI] Session 데이터를 DB로 저장하는 방법

Session은 일반 적으로 파일로 저장하거나 DB에 저장할 수 있습니다. 기본 값으로는 파일로 저장되도록 설정이 되어있습니다. 이를 DB로 저장하는 방법을 소개드립니다. 1. /application/config/config.php 파일을 열어 아래 내용과 같이 수정 합니다. $config[‘sess_use_database’] = TRUE; $config[‘sess_table_name’] = ‘ci_sessions’; sess_table_name은 ci_session으로 이름을 달리하고 싶은 경우 변경하셔도 무방합니다. 단, sess_cookie_name 의 값도 변경된 이름과 동일하게 맞춰주셔야 합니다. 2. ci_session 테이블을 만듭니다. 저장될 DB 테이블을 설정하셨다면 테이블이 필요하겠죠. ci_session 테이블의 스키마는 아래와 같습니다. CREATE TABLE IF NOT EXISTS `ci_sessions` ( session_id varchar(40) DEFAULT ‘0’ NOT NULL, ip_address…

Read More Read More

[JS] 자바스크립트 함수 인자 디폴트 처리방법

[JS] 자바스크립트 함수 인자 디폴트 처리방법

보통 개발 언어에서는 함수 인자가 없는 경우 디폴트 값을 지정이 가능합니다. PHP를 예로 들어보겠습니다. function test($a = 1, $b = 2) { return $a + $b; } test(); 결과값 => 3 이처럼 인자가 없는 경우 설정된 기본값이 대입되어 처리됩니다. 자바스크립트의 경우는 처리 방법이 조금 다릅니다. 정확히 말하자면 자바스크립트에는 함수 인자 기본 옵션을 줄 수 없습니다. 때문에 함수 안에서 인자를 체크하여 기본값 처리하는 부분이 들어가야 합니다. function test(a, b) { a = typeof a !== ‘undefined’ ? a : 1; b…

Read More Read More

[JS] setInterval을 적용하는 함수에 인자 추가하는 방법

[JS] setInterval을 적용하는 함수에 인자 추가하는 방법

주기적으로 함수를 실행시키기 위해 사용하는 setInterval 함수가 있습니다. 잘 아시겠지만 보통 이렇게 사용합니다. <script type=”text/javascript”> // test 함수를 5초마다 실행 setInterval(test, 5000); function test() { console.log(“hello!!”); } </script>   여기서 test 함수에 인자가 포함되어있다면 어떻게 호출해야할까요? 방법은 아래와 같습니다. <script type=”text/javascript”> // test 함수를 5초마다 실행 setInterval(function(){ test(“hello”); }), 5000); function test(string) { console.log(string); } </script>   이 방법을 통해 인자를 포함시켜 setInterval 을 실행시킬 수 있으며 여러 개의 함수를 함께 실행 시킬 수도 있습니다. <script type=”text/javascript”> // test 함수와…

Read More Read More

[jQuery] Textarea 줄바꿈시 자동 리사이즈 시키는 방법

[jQuery] Textarea 줄바꿈시 자동 리사이즈 시키는 방법

textarea에서 글을 작성할때 줄바꿈을 하면 상자의 세로길이가 변경되는 소스입니다. <script type=”text/javascript”> $(document).ready(function(){ $(“#textarea”).on(“keyup”, function(){ textarea_resize(this, 10); }); }); function textarea_resize(id, offset) { obj.style.height = “1px”; obj.style.height = (obj.scrollHeight + offset) + “px”; } </script> <textarea id=”textarea”></textarea> textarea_resize 함수의 인자 중 offset은 줄바꿈을 했을때 세로값을 임의로 추가할때 사용됩니다.

[HTML] form 안에 존재하는 button 클릭시 submit 동작 방지

[HTML] form 안에 존재하는 button 클릭시 submit 동작 방지

UI 작업을 할 때 보통 버튼은 <input type=”button” /> 또는 <button></button> 을 사용합니다. 여기서 기본적으로 <button> 요소 자체는 submit 속성을 가지고 있기 때문에 type 정의가 되어있지 않다면 submit 동작을 하게 됩니다. <form name=”data_form” method=”post” action=”./”> <!– 클릭시 form(data_form)의 submit 동작을 하게 됨 –> <button id=”btn_example1″>버튼 예제1</button> <!– 클릭시 submit 동작하지 않고 아무 반응 없음 –> <button type=”button” id=”btn_example2″>버튼 예제2</button> </form> 위 예제와 같이 button 태그에 type=”button” 이 정의되어 있냐 없냐에 따라 동작이 달라질 수 있습니다. 버튼 자체를 submit 용도로 사용한다면…

Read More Read More

[JS] jQuery Tooltip Plugin – frzTooltip v1.0

[JS] jQuery Tooltip Plugin – frzTooltip v1.0

작업을 하면서 jQuery로 툴팁을 간단하게 만들어봤는데 필요하신 분이 계실 수도 있으니 정리해서 공유해드립니다. 최대한 간단하게 적용할 수 있도록 하는데에 포커스가 맞춰진만큼 화려한 이펙트 같은 것은 없습니다. 소스가 워낙 간단해 고쳐쓰기 용이하실 겁니다.   [FrzTooltip v1.0 Download]