First, i don't want make multiple way of doing the same thing, too. At the same time, i need fast development environment. Not 'code -> package -> install -> run',  but 'code->run'.
Current implementation didn't even introduce single code look like 'if (mode==DEVELOPMENT)'. all code is doing single work. There's only one way of loading driver - loading from 'drivers' directory.
If you know better way, without making development process complicated, please suggest me one.

When starting ZeppelinServer class, zeppelin-daemon.sh(actually common.sh) script construct classpath with all files under /lib, /conf directory. And this behavior is quite common. All java server damons loads jars in this way. That's why we can see something like "Drop mysql-connector.jar in your /lib directory" in other project's manual.

Could you tell me advantage of placing driver jar inside of lib directory? i can list out advantage of placing driver jar outside of lib directory

 * Separation of jars by classloader. ie. /lib - default classloader, /drivers/hive11 - another classloader ...
 * Easy to install 3rd party driver. Create a dir under /drivers and drop all required jars, configurations.
 * Easy to change/add jar into specific driver. For example, let's say there's generic JdbcZeppelinDriver under /drivers/jdbc and then user can drop mysql-jdbc-driver.jar or postgres-jdbc-driver.jar as he want.