반응형

JQuery Plug-In (플러그인) 을 만드는 일련의 과정을 소개하면서, 실습을 통해 여러 사람들과 함께

내가 쌓은 지식을 공유해 보도록 하겠다.


우선!!! 알아야할 사항은 Plug-In(한국말: 플러그인) 이란 무엇이냐???


[1] Plug-In(플러그 인) 이란?


: 흔히들 가정에서 사용하는 가전제품을 예로 들어보자, 전기를 통하게 하기 위해서 우리의 어머니들은 

  가정용 콘덴서에 전기 플러그 라고 하는 놈을 꽃게 된다. 그렇게 하면 전기가 통하면서 가전제품이 작동

  하게 된다. 다만, 전기 뿐만 아니라, 다양한 모양의 플러그를 통해 기기장비들끼리 연결또한 가능하다.

  그렇게 연결함으로써 여러 기기 들을 하나의 기계처럼 함께 호환성을 이루는 구성도 가능하다 .

  아래 그림을 한번 볼까???


[출처 : 구글 이미지 검색]

  • 왼쪽의 그림을 보면 이해가 쉬울 것이다. 저렇게 생긴놈이 실생활의 플러그 인이다. 그렇다면,!! 컴퓨터 업계에서 이야기 하는 플러그 인이란 무엇인가?

  • Plug-In이란, "웹 브라우저의 일부로서 쉽게 설치되고 사용될 수 있는 프로그램을 말한다."

  • 즉, 왼쪽의 그림처럼 Web Application을 개발 할때, 플러그를 꽃았다 뻈다 하는 방식으로, 주변의 부수적인 프로그램들을 연동을 하는 방식을 말한다.

  • 이때, 플러그를 꽃는 것을 Plug In(꽃다) , 빼는 것을 Plug out(빼다) 라고 명칭하는 것이 맞는 것 같다.



















                                         [Plug -in의 이해를 돕기 위한 그림]


이제 이정도면 Plug-in이 뭐다~~ 라는 정도는 감을 잡았을 것이다. 다음으로 jQuery에서 Plug-in 

방식을 사용하는 예제를 보면서, 과연 Plug-in은 이렇게 쓰는 구나~ 하고 생각해 보기 바란다.


[2] 기존 Function 과 Plug - in의 차이점


Plug-in을 처음 사용하는 사람들은 Function 과 Plug-in의 차이점에 대해 혼돈을 하는 경향이 있다.

따라서, 이부분에 대해서 한번쯤 정리를 하고 넘어가는 것이 좋을 듯 하다. 우선 Function 과 PlugIn

방식을사용한 예제를 한번 보도록 하자.


(Function 을 사용 한 예제)

<script language="javascript"> $(document).ready(function(e){ alertFunction("This is function test"); }); alertFunction = function(msg){ alert(msg); }; </script>

위 코드는 전형적인 jquery function을 선언한 것이다. alertFunction 이라는 Function을 선언하여

호출한 예제이다. 03번 라인을 보면 호출부가 특정 엘리먼트를 가지고 호출하는 것이 아닌 Function명

을 통해서 바로 호출하도록 되어있다.


(Plug-in 을 사용한 예제)

<!doctype html>
 
<html lang="en">
<head>
  <meta charset="utf-8" />
  <title>jQuery UI Dialog - Default functionality</title>
  <link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
  <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
  $(document).ready({
    $( "#dialog" ).dialog();
  });
  </script>
</head>
<body>
 
<div id="dialog" title="Basic dialog">
  <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>
 
 
</body>
</html>

  위 예제를 보도록 하자. 13번 Line의 $( "#dialog" ).dialog(); 부분을 유심히 볼 필요가 있다.

 전자의 Function에 비해서 특정 엘리먼트에서 chain 방식으로 dialog() Function을 호출하고 있다.


   지금쯤이면, 뭔가 차이점을 느꼈을 것이다. 즉!!!

   Plug-in은 외부에 만들어 놓은 Function을 자신이 원래 가지고 있더 내장 함수인 마냥 착각을 일으키기

   때문에, jQuery 내부에 있는 Function을 호출하는 것 처럼 해당 엘리먼트에 chain방식으로 호출이 가능하다.


   즉,!! Dialog 라는 외부 Plug-in 모듈을 가져와 script tag로 모듈을 in(내부에 콘덴서에 연결)한 후, 

   내장 Function인 마냥 사용을 하게 되는 것이다.!!


    Are You Understand???



    휴~ 많이 썼더니 골이 아프네~~~ ㅋㅋ


    오늘은 여기까지 다음시간에는 jQuery 작성시 주의해야할 주의사항에 대해 작성해 보도록 하겠다.

 

    주의 사항에 대해 훑고 나서, 본격적인 플러그인 제작에 들어가도록 하겠당!!!

 

    본 자료는 대학내 연구실 연구원들의 교육용 자료로 활용될 예정이오니 불법 펌을 금합니다.



- 2013.02.05 랑이 씀 -


  






반응형
반응형

CSS 에서 메뉴를 Hide/Show 또는 위 아래 정렬을 위해서 많이 사용하는 Style의 속성에 대해


알아보도록 하겠다.


금일 알아볼 Style은 Div나 Span에서 많이 사용하는 Display 속성이다.


우선 아래 예제를 보면서 설명을 하도록 하자.


(1) 기본예제


<div>하이루1</div>
<div>하이루2</div>
<div>하이루3</div>
<br />
<span>하이루1</span>
<span>하이루2</span>
<span>하이루3</span>


위예제의 결과물은 다음과 같다.


  • 옆의 예제에서 처럼 div Tag를 이용한 경우 Enter값이 먹혀버린 상태에서 동작이 된다.
  • span Tag의 경우 우리가 알고 있듯이 별달리 Enter값이 먹히지 않고 가로로 작성이 된다.







위의 예제와 같이 출력되는 이유는 span과 div Tag들 모두다 Attribute(속성)으로 display라는 속성을 가지고 있는데 이 속성의

Default값이 서로 틀리기 때문이다.


Div의 경우 Default Display 속성값이 Block이며, span Tag의 경우 Default Display 속성값이 Inline이다.


그렇다면, 다음과 같이 CSS를 추가하여 style를 조금 변경하면 어떻게 될까?


<style>

div {

display:inline;

}

span {

display:block;

}

</style>


<div>하이루1</div>
<div>하이루2</div>
<div>하이루3</div>
<br />
<span>하이루1</span>
<span>하이루2</span>
<span>하이루3</span>


위 예제의 결과물은 다음과 같다.


  •  옆의 결과물에서 보듯이 div Tag는 이전의 span과 같이 Enter값이 없어졌으며, span Tag의 경우 첫번째 예제의 div와 같이 출력됨을 확인할 수 있다.







(2) Block VS Inline의 차이점


요정도 했으면, 감이 좋은 사람은 둘의 차이점에 대해서 충분히 인지를 하였을 것이다.


그렇다면, 다만 Enter값의 차이만 있을까? 아니다, 다음과 같은 추가적인 차이점이 있다.


block은 Enter값(줄바꿈) 이 적용되며, Inline의 경우 Enter값(줄바꿈)이 되지 않는다.

block으로 설정하면 top/bottom 의 margin과 padding 속성을 사용할 수 있지만, inline으로 설정하면 top/bottom의 margin과padding속성을 이용할 수 없다.

block으로 설정하면 width/height 속성을 사용할 수 있지만, inline은 사용할 수 없다.


(3) 추가적인 display 속성에 대한 공부


(1)단락과 (2)단락을 통해 block과 inline에 대해서 살펴보았다. 이제는 display의 기타 다른 속성에 대해서도 알아보도록 하자.


 속성

설명 

none 

해당 Element의 영역을 보이지 않게 숨김. 

block

해당 Element의 영역을 Block Box으로 만들며, 줄바꿈을 하게 된다. 

inline

해당 Element의 영역을 inline Box으로 만들며 줄바꿈을 하지 않는다.

inline-block

해당 Element의 영역을 Block Box으로 만들지만, line라인 처럼 배치한다.


이상으로 div와 span tag에서 자주 사용되는 block, inline Tag에 대해서 알아보았다.


                            - 2013.01.23 랑이씀 -




반응형
반응형

연구실에서 정부과제 용으로 특허데이터를 활용한 DB 구성 중 데이터가 꽉차서 더이상 저장할 수 없는 문제가 발생되었다.


이 문제를 해결하기 위해 인터넷을 여기저기 뒤졌지만, 확실한 해답이 나와있는 글들은 찾을 수 없었다.


결국, 별의별 짓을 다해보다가 드디어 해답을 찾게 되었다. Mysql에서 Data의 저장소를 변경하고자 하는 사람들이 있다면


나의 글을 참조하여 많은 도움이 되었으면 한다.


[1] Data Full 이 되었을때 발생되는 에러


 111215 22:30:15 [ERROR] /usr/sbin/mysqld: Disk is full writing './patent_trend/#sql-6aba_52c.MYD' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to continue after freeing disk space)


위와 같이 Disk Full Error가 발생하게 되면 현재 /var/lib/mysql 안의 데이터의 저장공간이 꽉차있다는 것이다.


[2] 개발환경


환경 구분

개발환경

 운영체제 (os)

 Ubuntu 11.04

 Mysql Version 

 5.1.54

 DB Engine

 My Isam, InnoDB 혼합형


[3] Mysql 저장소 변경 실시


(1) Mysql Daemon Stop


 user_id$ sudo /etc/init.d/mysql stop 


(2) 기존 Physical Repository Copy


 user_id$ sudo cp -Rp /var/lib/mysql /새로운 경로/mysql_repository


(3) Mysql 보안모듈 내 경로 수정(apparmor.d)


 user_id$ vi /etc/apparmor.d/usr.sbin.mysqld


(기존 Link 정보를 주석처리한다)

# /var/lib/mysql/ r,

# /var/lib/mysql/** rwk,


(새로운 경로를 추가한다)

/새로운경로/.mysqldb r,

/새로운경로/.mysqldb/** rwk,


(4) Mysql 설정파일 수정 (my.cnf)


 user_id$ sudo vi /etc/mysql/my.cnf


(Add)
datadir = /새로운경로/mysql_repository

(5) 보안모듈 및 Mysql 재시작


 user_id$ sudo /etc/init.d/apparmor restart

 user_id$ sudo /etc/init.d/mysql restart


이상이다. 위 예제는 Debian 계열의 Ubuntu Server에서 진행한 사항이기 떄문에 Pedora나 CentOS 와 같은


타 OS에서는 정상적으로 구동될지 의문이다. 하지만 Ubuntu에서는 100% 호환되기 떄문에 참고하길 바란다.

 

참조 사이트 :

http://www.ubuntu.or.kr/viewtopic.php?p=58100
http://www.ubuntu.or.kr/viewtopic.php?p=80681


                                                     - 2012.12.31 2012년의 마지막날 랑이씀 - 

반응형

'DB > Maria & Mysql' 카테고리의 다른 글

Maria DB 설치 후기  (3) 2013.12.04
MS-SQL 주석달기  (0) 2013.08.28
MYSQL 자주쓰는 명령어  (0) 2012.09.10
[ MYSQL PROCESS LIST 보기 ]  (0) 2011.12.27
PK & UI 무엇이 올바른가?  (0) 2011.01.31
반응형


1.회원관련 명령어


(1) root 비밀번호 변경

mysql> use mysql;

Database changed

mysql> update user set authentication_string=password('10djraks^^') where user='root';

Query OK, 1 row affected, 1 warning (0.02 sec)

Rows matched: 1  Changed: 1  Warnings: 1


mysql> flush privileges;

Query OK, 0 rows affected (0.21 sec)


mysql> 



2.INDEX 관련 명령어


(1) 인덱스 생성

mysql)ALTER TABLE 테이블명 ADD INDEX `IDX_인덱스 이름` (`인덱스 컬럼명`) 


3.권한 관련 명령어


(1) 권한 생성


mysql> grant all privileges on DB명.* to 계정명@localhost identified by '비밀번호';

Query OK, 0 rows affected, 1 warning (0.23 sec)


mysql> grant all privileges on DB명.* to 계정명@'%' identified by '비밀번호';

Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

 



(2) 권한 삭제


mysql> revoke all on DB명..* from 계정명@'%'; 

Query OK, 0 rows affected, 1 warning (0.23 sec)


mysql> revoke all on DB명..* from 계정명@'localhost'; 

Query OK, 0 rows affected, 1 warning (0.23 sec)




반응형

'DB > Maria & Mysql' 카테고리의 다른 글

MS-SQL 주석달기  (0) 2013.08.28
MYSQL Data Repository(저장소) 변경방법  (0) 2012.12.31
[ MYSQL PROCESS LIST 보기 ]  (0) 2011.12.27
PK & UI 무엇이 올바른가?  (0) 2011.01.31
[ Mysql Concat 한글깨짐 ]  (0) 2011.01.13

+ Recent posts