2007년 5월 31일 목요일
MYSQL 함수 모음
ABS(X) : X 에 해당하는 절대 값을 돌려준다.
SIGN(X) : X의 값의 부호 값을 돌려 준다.(-1 : 음수, 0 : 0, 1 : 양수)
MOD(N,M) : N을 M으로 나눈 값의 나머지를 돌려 준다.
FLOOR(X) : 실수 X 값의 소수점 이하의 값은 버림을 한 정수 값을 돌려 준다.
CEILING(X) : 실수 X 값의 소수점 이하의 값을 올림을 한 정수 값을 돌려 준다.
ROUND(X,D) : 실수 X 값에서 소수점에서 D + 1번째에 해당하는 값을 올림한 값을 돌려 준다. POWER(X,Y) : X의 값을 Y번 곱한 값을 돌려 준다. RAND() : 0에서 1 사이의 숫자를 랜덤하게 발생시겨 돌려준다.
SELECT abs(-2),abs(2),sign(-45),sign(0),sign(34),mod(23,7);
SELECT floor(1,234),ceiling(1,234),round(2,49),round(2,51); SELECT power(3,2),power(3,3),rand();
문자열함수
2) 문자열 함수
CHAR(N,...) : N(1-256의 정소)값의 아스키코드를 해당 문자로 출력한다. CONCAT(str1,str2,...) : 각각의 str1,str2,...등을 하나의 스트링으로 돌려 준다. 단, NULL 이 있으면 NULL 을 출력한다.
CONCAT_WS(separator, str1, str2,...) : 각각의 str1,str2,...등을 separator을 구분자로 사용하여 하나의 스트링으로 출력한다.
LENGTH(str) : str의 문자의 길이를 출력한다.
SELECT char(48),char(76),concat(('My','S','ql'),concat('My',NULL,'Sq;');
SELECT concat_ws(',','My',NULL,'Sql',' ','is',' ','Good'); SELECT length('mysql'),locate('bar','foobarbar');
LOCATE(substr,str) : str에서 substr이 위치한 첫번째 위치를 정수 값으로 출력한다.
LEFT(str,len) : str에서 지정해준 자릿수 len만큼 왼쪽에서부터 문자열을 출력한다.
RIGHT(str,len) : str에서 지정해준 자릿수 len만큼 오른쪽에서부터 문자열을 출력한다.
SUBSTRING(str,pos,len) : 문자열 str에서 특정 시작위치 pos에서 지정된 길이 len만큼 문자를 출력한다.
LTRIM(str),RTRIM(str),TRIM(str) : str의 왼쪽,오른쪽,혹은 양쪽 모두의 공백 문자를 제거해 준다.
SELECT left('mysql is good',3),right('mysql is good',3); SELECT substring('mysql is good',1,5);
SELECT ltrim(' mysql'),rtrim(mysql '),trim(' mysql ');
SPACE(N) : N개 만큼의 공백 문자를 만들어 출력한다.
REPLACE(str,from_str,to_str) : 문자열 str에서 특정문자 from_str을 특정 문자 to_str로 바꾸어 출력한다.
REPEAT(str,count) : 문자열 str을 count 갯수만큼 반복하여 반복한 값을 출력한다.
REVERSE(str) : 문자열 str을 역으로 출력 한다.
INSERT(str,pos,len,newstr) : 문자열 str에서 특정 위치 pos에서 특정 길이 len 만큼을 newstr문자열로 바꾸어 출력한다.
SELECT concat('a',space(6),'a');
SELECT replace('mysql is good','is','very'),repeat('a',3); SELECT reverse('mysql'),insert('Quadratic',3,4,'What');
LCASE(str) : 문자열 str을 소문자로 바꾸어 출력한다.
UCASE(str) : 문자열 str을 대문자로 바꾸어 출력한다.
SELECT lcase('MYSQL'),ucase('mysql);
날짜시간함수
3) 날짜, 시간 함수
DAYOFWEEK(date) : 해당날짜의 요일값을 출력한다.(1=일요일,2=월요일,3=화요일,...,7=토요일)
WEEKDAY(date) : DayOfWeek() 함수와 같지만 요일값이 다르다.(0=월요일,1=화요일,...,6=일요일)
DAYOFMONTH(date) : 해당날짜의 날(1-31) 값을 출력한다.
DAYOFYEAR(date) : 일년중 몇번째 날(1-366)인지를 출력한다.
MONTH(date) : 해당 날짜의 달(1-12) 값을 출력한다.
DAYNAME(date) : 해당 날짜의 요일 값을 스트링으로 출력한다.
SELECT dayofweek('2003-02-22'),weekday('2003-02-23');
SELECT dayofmonth('2003-02-22'),dayofyear('2003-02-23'); SELECT month('2003-02-22),dayname('2003-02-23');
MONTHNAME(date) : 해당 날짜의 달 값을 스트링으로 출력한다.
QUARTER(date) : 총 4분기중 해당 날짜의 분기 수 값을 출력한다.
WEEK(date,first) : 해당날짜가 1년중 몇번째 주인지를 출력한다.
YEAR(date) : 해당 날짜의 년도 값을 출력한다.
YEARWEEK(date,first) : 해당 날짜의 년도와 1년중 몇번째 주인지를 출력한다.
HOUR(time) : 해당 시간의 시 값을 출력한다.
SELECT monthname('2003-02-22'),quarter('2003-02-23');
SELECT week('2003-02-22'),year('2003-02-23'); SELECT yearweek('2003-02-22'),hour('10:22:32');
MINUTE(time) : 해당 시간의 분 값을 출력한다.
SECOND(time) : 해당 시간의 초 값을 출력한다.
PERIOD_ADD(P,N) : P(YYMM or YYYYMM)값에서 N 달을 뺀 값을 출력한다.
PERIOD_DIFF(P1,P2) : P1(YYMM or YYYYMM)과 P2(YYMM or YYYYMM)의 달 차이를 출력한다.
TO_DAYS(date) : 0년 부터 date까지의 날 수를 출력한다.
FROM_DAYS(N) : N(날)에 해당하는 날짜를 출력한다.
SELECT minute('10:22:32'),second('10:22:32');
SELECT period_add(200302,3),period_diff(0302,200209); SELECT to_days(20030222),from_days(731633);
DATE_FORMAT(date,format) : date의 날짜 값을 원하는 format 값으로 바꾸어 출력한다.
TIME_FORMAT(time,format) : time의 시간 값을 원하는 format 값으로 바꾸어 출력한다.
CURDATE() : 현재의 날짜 값을 출력한다.
CURTIME() : 현재 시간을 출력한다.
NOW() : 현재 시스템의 날짜와 시간을 출력한다.
SELECT date_format('2003-02-22 22:23:00','%D %y %a %d %m %b %j');
SELECT time_format('22:23:00','%H %k %h %i %I %r %p %s %S'); SELECT curdate(),curtime(),now();
제어함수
4) 제어 함수
1) ~ 3)까지의 함수들은 이름만 들어도 대강은 어떤 함수일 거란 것을 예상 할 것이다. 그럼 제어 함수란 무엇인가. 이들 함수는 일반적인 프로그래밍 언어에서의 조건문과 같은 역할을 하는 함수들이다. 종류로는 IsNULL,NULLIF,IF,CASE등이 있으며 이들 함수로 인해 SQL문 안에서 값들을 제어 할 수가 있다.
IFNULL(expr1,expr2) : expr1 값이 널이면 expr2값이 출력이 되는 함수
NULLIF(expr1,expr2) : expr1 값과 expr2값이 같으면 NULL이 출력이 되고 다르면 expr1 값이 출력되는 함수
IF(expr1,expr2,expr3) : expr1 값이 참이면 expr2 값이 출력되고 거짓이면 expr3값이 출력되는 함수
CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END : value 값이 WHEN 다음의 compare-value값과 같으면 THEN 다음의 result 값을 출력하는 함수
SELECT IFNULL(NULL,2),IFNULL(1,2),IF(1 > 0,1,0),IF(1 < id =" 'kim';" id =" a.ID)" id =" a.ID;">등을 서브쿼리(SubQuery)에서도 지원하고 있다. 이건 오픈 소스 데이터 베이스의 한계로 앞으로 이들 오픈 소스 데이터 베이스도 역시 지원을 할 것이다.
[오라클] 기본팁
<< 오라클 >>** 오라클 사용시 "commit;" 명령어 사용함 **
1. [테이블의 필드 확인] - desc 테이블명;-예) desc cybedu_board01;
2. [날짜 표현] - sysdate (MS-SQL에서는 getdate())-예) select sysdate from cybedu_section;
3. [중간 글 틀렸을때 수정] - c옵션은 변환, r옵션은 변환값으로 재실c행
예) SQL> 22* where substring(convert(varchar2(20),sysdate,120),1,10) >= 2004-07-29SQL> c/varchar2/varchar2* where substring(convert(varchar(20),sysdate,120),1,10) >= 2004-07-29SQL> 33* and substring(convert(varchar2(20),sysdate,120),1,10) <= 2004-08-05SQL> c/char2/char3* and substring(convert(varchar(20),sysdate,120),1,10) <= 2004-08-05SQL> r1 select popWidth, popHeight, popFlag from cybedu_popup2 where substring(convert(varchar(20),sysdate,120),1,10) >= 2004-07-293 and substring(convert(varchar(20),sysdate,120),1,10) <= 2004-08-054* order by 2004-07-29 desc, 2004-08-05 desc, popsn descwhere substring(convert(varchar(20),sysdate,120),1,10) >= 2004-07-29
=> 오라클에서는 substring -> substr, convert사용안함, varchar -> to_char로 사용* 아래는 문제 해결 구문 *
sql = "select popWidth, popHeight, popFlag from cybedu_popup"; sql = sql + " where substr(to_char(sysdate,'YYYY-MM-DD'),1,10) >= popstartday";sql = sql + " and substr(to_char(sysdate,'YYYY-MM-DD'),1,10) <= popendday";sql = sql + " order by popstartday desc, popendday desc, popsn desc"; 4. oracle에서 left outer join을 하시려면[MY-SQL]select aa.day,aa.count,bb.apply from (select day,count from tblCount where year='2004' and month='06') aa left outer join (select day, count(*) as apply from tblApply where year='2004' and month='06' and Deliverystate='신청접수' group by month,day) bb on aa.day = bb.day; [오라클]select aa.day,aa.count,bb.apply from (select day,count from tblCount where year='2004' and month='06') aa , (select day, count(*) as apply from tblApply where year='2004' and month='06' and Deliverystate='신청접수' group by month,day) bb where aa.day = bb.day(+) <--이런식으로 써야 outer join이 걸립니다... 5. 오라클에서 컬럼 자동 증가 하기create table cybedu_message ( msgid integer not null, /* 일련번호*/msgSendId varchar2 (10), /*쪽지보낸사람 ID*/ ~ ~ ~msgDate date, /* 쪽지보낸 날짜*/~ ~ ~msgFlagR varchar2 (2), /* 받은쪽지함에 보여지는 여부*/ primary key ( msgid ) ) ; create sequence msgid_seq; ==> 자동증가 (ms-sql: identity(1,1))
6. **** 오라클 기본 문법 ****삭제: delete from 테이블 이름 where 조건절 ;
[MS-SQL] 기본 사용법
1. CEILING -> 소숫점 아래수를 반올림해서 정수값 돌려줌
SELECT Count(*),CEILING(CAST(Count(*) AS FLOAT)/보여줄 페이지수)FROM 테이블명 WHERE search_word LIKE '%SearchString%'
rs.Open strSQL, dbcon
intTotalCount = rs(0) ' 총 페이지 수 (검색어가 있을때, 없을때)intTotalPage = rs(1) ' 보여줄 페이지 수의 값(intPageSize가 10이므로 10페이지씩 몇개를 보여줄지의 수)rs.Close
2. Top 숫자 -> 상위의 "숫자"만큼 뿌려줌
strSQL = "SELECT Top " & intNowPage * intPageSize & " brdnum, brdtitle, brdname, writedatetime, brdcount "strSQL = strSQL+ "FROM gong_news_board WHERE brdstate = '02' "if search_word <> "" thenstrSQL = strSQL & " AND " & search_word & " LIKE '%" & SearchString & "%'"end ifstrSQL = strSQL & " ORDER BY brdnum DESC"
3. ISNULL 사용법
예> SELECT EMPNO, ENAME, DEPTNO FROM EMP;
EMPNO ENAME DEPTNO SALARY--------------------------------------------01001 김갑돌 101 NULL01002 이몽룡 102 1000001003 홍길동 NULL NULL01004 고인돌 NULL 500001005 손오공 111 NULL
이러한 경우,
SELECT EMPNO, ENAME, ISNULL(DEPTNO,'999'), ISNULL(SALARY,0)FROM EMP;
EMPNO ENAME DEPTNO SALARY--------------------------------------------01001 김갑돌 101 001002 이몽룡 102 1000001003 홍길동 999 001004 고인돌 999 500001005 손오공 111 0
이와 같이 얻으실수 있습니다.
4. sql문 case -> if 문으로 변환
[case 문] [if 문]
select m.[번호] select m.[번호], m.[이름] , m.[이름], [회원구분] = , [회원구분] =case if ( when m.[번호] in ( m.[번호] in (select [번호] select [번호]from [정회원] as r ---> from [정회원] as rwhere r.[번호] = m.[번호] where r.[번호] = m.[번호]) )then '정' , '정'else '준' , '준')end , m.[전화번호] , m.[전화번호]from [회원] as m from [회원] as morder by m.[번호] order by m.[번호]
5. ** 해당 날짜 사이의 값 가져오기 **
select count(distinct lecNo) from cybedu_curriculum, cybedu_course, cybedu_section, cybedu_lecture left join cybedu_train on ( lecNo = traNo )where convert(varchar(10),getdate(),120) between secStartregist and secEndregistand secNo=lecSecno and crsCode=lecCrscodeand curCode = crsCurcode and curCode = 'curCode' and secFlag='0'
=> 설명 : from 뒤의 테이블과 join 뒤의 테이블을 left join해서(lecNo = traNo) 값중에서between뒤의 시작날짜와 종료날짜 사이의 값을 가져오라는것..
(아래 sql문은 업그레이드 한 것인거 같네여~)..위랑 같은 내용
select count(distinct lecNo) from cybedu_curriculum, cybedu_course, cybedu_section, cybedu_lecture left join cybedu_train on ( lecNo = traNo ) where convert(varchar(10),getdate(),120) between secStartregist and secEndregistand secNo=lecSecno and crsCode=lecCrscodeand curCode = crsCurcode and secFlag='secFlag' and curcode <> 'offline'
6. delete 구문delete 테이블명 where 조건문
7. update 구문update 테이블명 set 바꿀구문 where 조건구문
[MS-SQL] 중요팁2
----------------------------------<<>>-----------------------------------
1. 기본 쿼리sp_spaceused : DB사용자 정보 보여줌sp_dboption : 가능한 DB 옵션들sp_helpdb : 각DB이름,사이즈,owner등을 보여줌sp_helpdb 디비명 : 디비의 설명
2. 다른 DB의 테이블 불러서 사용하기- 우선 sql서버 엔터프라이즈 관리자에서/ENT01/users/ 사용자를 추가한다.- DB -> ENT01, 111
- 111에서 ENT01의 board14테이블 사용하려면
ex) select * from ENT01.111.board14 -> select * from 해당DB.테이블소유자명.테이블명
[MS-SQL] 중요팁
1. 오픈 쿼리 사용법
* 링크드 리스트가 설정이 되어 있어야 오픈쿼리 사용됨.(MS-SQL에서 사용됨)
------------------------------------ (사용예) ---------------------------------------/*sql = "select convert(varchar(20),user_id), convert(varchar(20),name), convert(varchar(20),jumin)";sql = sql + " from OPENQUERY(jejunet,'SELECT user_id, jumin, name FROM member_table') as member_table where (convert(varchar(20),name) = ?) and (substring(convert(varchar(20),jumin),1,6) = ?)";
pstmt = con.prepareStatement(sql);pstmt.setString(1,name);pstmt.setString(2,pass);rs = pstmt.executeQuery();if(rs.next()){student.setId(rs.getString(1)); */
sql = "select korname, usrjumin from cybedu_userinfo where (korname = ?) and (usrjumin = ?)"; //out.print(sql);
pstmt = con.prepareStatement(sql);pstmt.setString(1,name);pstmt.setString(2,pass);rs = pstmt.executeQuery();if(rs.next()){student.setId(rs.getString(1));--------------------------------------------------------------------------------------
2. 병렬 처리 사용 방법
* 생성시 같이 정의 create table line_item (item_no number(7), item_name varchar(20), ... ) parallel 20;create index item_index on line_item (item) parallel 20;
* 이미 작성된 오브젝트에 대한 병렬처리 alter table line_item parallel 20;alter index item_index rebuild parallel 20;응용프로그램의 수정없이 즉시 사용
* 해당 SQL만 병렬로 처리 : Hint 기능 사용 select /*+ parallel(line_item,20) */ item_name, ... from line_item, products .....
각종 DBMS JDBC 드라이버 셋팅법 정리
//********** 각 경우별 드라이버 연동하기 **************/
** JDK jdbc-odbc driver (Type1) **연결 URL : "jdbc:odbc:"드라이버 클래스 : sun.jdbc.odbc.JdbcOdbcDriver
** Oracle thin driver (Type4) **연결 URL : "jdbc:oracle:thin:@:port:"드라이버 클래스 : oracle.jdbc.driver.OracleDriver
** Oracle oci driver (Type2) **연결 URL : "jdbc:oracle:oci:@"드라이버 클래스 : oracle.jdbc.driver.OracleDriver
** Sybase jConnect driver (Type2) **연결 URL : "jdbc:sybase:Tds::"드라이버 클래스 : com.sybase.jdbc2.jdbc.SybDriver
** Informix JC1 driver (Type4) **연결 URL : "jdbc:informix-sql://:/:INFORMIXSERVER"드라이버 클래스 : com.informix.jdbc.IfxDriver
** mSQL Imaginary JDBC driver (Type4) **연결 URL : "jdbc:msql://:/"드라이버 클래스 : com.imaginary.sql.msql.MsqlDriver
** Postgres driver (Type4) **연결 URL : "jdbc:postgresql://:/"드라이버 클래스 : postgresql.driver
** MM MySQL driver (Type4) **연결 URL : "jdbc:mysql://:/"드라이버 클래스 : org.git.mm.mysql.Driver
mysql은 JConnector 3.0 부터는 com.mysql.jdbc.Driver
연결 URL 은 jdbc:mysql://localhost/dbname?Unicode=true&characterEncoding=EUC_KR
같이 인코딩 타입을 직접 줌으로써 한글 변환문제에 좀더 쉽게 해결할 수 있음.
// ******************************Connected To IBM AS/400
Class.forName("com.ibm.as400.access.AS400JDBCDriver"); com = Driver.Manager.getConnection("jdbc:as400://10.20.30.40/testlib;user=user;password=pass");
// ******************************Connected To Unisql
Class.forName("unisql.jdbc.driver.UniSQLDriver"); con = Driver.Manager.getConnection("jdbc:unisql:10.20.30.40:43300:demodb:::", "user","pass");
// ******************************Connected To Jdbc-Odbc Type - 1 Driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); // con = DriverManager.getConnection("Jdbc:Odbc:dsnname","userid","password"); con = DriverManager.getConnection("jdbc:odbc:Driver={SQL Server};Server=servername;Database=pubs","userid","password");
// ******************************Connected To Ms-Access JDBC ODBC Driver .
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con = DriverManager.getConnection("Jdbc:Odbc:dsnname","",""); // con = DriverManager.getConnection("jdbc:odbc:Driver={MicroSoft Access Driver (*.mdb)};DBQ=G:/admin.mdb","","");
// ******************************Connected To Ms-Access Type-3 Driver.
Class.forName ("acs.jdbc.Driver"); String url = "jdbc:atinav:servername:5000:C:\admin.mdb"; String username="Admin"; String password=""; Connection con = DriverManager.getConnection(url,username,password);
// ******************************Connected To Microsoft SQL.
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); con = DriverManager.getConnection("jdbc:microsoft:sqlserver://servername:1433","userid","password");
// ******************************Connected To Merant.
Class.forName("com.merant.datadirect.jdbc.sqlserver.SQLServerDriver"); con = DriverManager.getConnection("jdbc:merant:sqlserver://servername:1433;User=userid;Password=password");
// ******************************Connected To Atinav SqlServer.
Class.forName ("net.avenir.jdbc2.Driver"); con= DriverManager.getConnection("jdbc:AvenirDriver://servername:1433/pubs","userid","password");
// ******************************Connected To J-Turbo.
String server="servername"; String database="pubs"; String user="userid"; String password="password";
Class.forName("com.ashna.jturbo.driver.Driver"); con= DriverManager.getConnection("jdbc:JTurbo://"+server+"/"+database,user,password);
// ******************************Connected To jk Jdbc Driver.
String url= "jdbc:jk:server@pubs:1433"; Properties prop = new Properties(); prop.put("user","userid");//Set the user name prop.put("password","password");//Set the password
Class.forName ("com.jk.jdbc.Driver").newInstance(); con = DriverManager.getConnection (url, prop);*/
// ******************************Connected To jNetDirect Type - 4 Driver
String sConnect = "jdbc:JSQLConnect://127.0.0.1/database=pubs&user=userid&password=password"; Class.forName ("com.jnetdirect.jsql.JSQLDriver").newInstance(); Connection con= DriverManager.getConnection(sConnect);
// ******************************Connected To AvenirDriver Type - 4 Driver
// String url= "jdbc: AvenirDriver: //servername:1433/pubs"; // java.util.Properties prop = new java.util.Properties (); // prop.put("user","userid"); // prop.put("password","password");
Class.forName ("net.avenir.jdbc2.Driver"); System.out.println(" Connected To AvenirDriver Type - 4 Driver"); con= DriverManager.getConnection("jdbc:AvenirDriver://servername:1433/pubs","userid","password");
// ******************************Connected To iNet Sprinta2000 Type - 4 Driver
String url="jdbc:inetdae7:servername:1433"; String login="userid"; String password="password"; Class.forName("com.inet.tds.TdsDriver"); System.out.println(" Connected To iNet Sprinta2000 Type - 4 Driver"); con=DriverManager.getConnection(url,login,password);
// ******************************Connected To iNet Opta2000 Type - 4 Driver String url="jdbc:inetdae7:servername:1433"; String login="sagar"; String password="sagar"; Class.forName("com.inet.tds.TdsDriver").newInstance(); System.out.println(" Connected To iNet Opta2000 Type - 4 Driver"); con=DriverManager.getConnection(url,login,password);
출처 : http://blog.empas.com/yooncom77/18149708
(출처 : BoKi - http://boki.tistory.com/9)
메일 에러 코드(SMTP 응답코드표)
** SMTP 응답코드표 =============================================================================================================== SERVER REPLY: 501 Denied domain name |
2007년 5월 23일 수요일
MySQL-Standard-5.0.18 설치 방법
1) cd /tmp
2) wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-standard-5.0.18-linux-i686-glibc23.tar.gz/from/http://mysql.byungsoo.net/
2) tar xvfz mysql-standard-5.0.18-linux-i686-glibc23.tar.gz
3) mv mysql-standard-5.0.18-linux-i686-glibc23 /usr/local/mysql
주의) /usr/local/mysql 폴더가 존재하는지 확인하고 있으면 반드시 지울것!
4) cd /usr/local/mysql
5) ./scripts/mysql_install_db
주의) 반드시 /usr/local/mysql 폴더에서 명령을 내릴 것! /usr/local/mysql/scripts로 들어가서 하지 마셈!
6) groupadd mysql
7) useradd -g mysql mysql
8) chown -R root /usr/local/mysql
9) chown -R mysql /usr/local/mysql/data
10) chgrp -R mysql /usr/local/mysql
11) chown -R root /usr/local/mysql/bin
12) ./bin/safe_mysqld --user=mysql &
주의)
[root@a1 mysql]# ./bin/safe_mysqld --user=mysql &
[1] 5948
[root@a1 mysql]#Starting mysqld daemon with databases from /usr/local/mysql/data (ENTER)
ENTER키를 치면 다시 프롬프트가 나타남
13) ps -ef | grep mysql
14) ./bin/mysqladmin -u root password "123456"
15) ./bin/mysql -p mysql
SVN 사용방법
ci(=commit) : svn ci -m "수정내용 설명" 파일명파일을 수정한 후 설명 내용을 적어 서버에 적용 시키는 명령어
add(=add) : svn add 파일명새로운 파일을 생성했을시에 적용을 한후에 ci를 적어 주도록 하자.
up(=update) : svn up 파일명 혹시 변경 되었을지 모르는 소스를 변경 시켜주는 명령어
commit을 할경우에는 라인을 적게 해서 수정할것
Apache 서버 폴더리스트가 출력 안되게 할때
별로 안보여주고 싶은데 파일리스트가 주르륵 나올때 막아주는 방법
우선 httpd.conf 파일을 vi편집기로 연다.
/ 를 누르고 FollowSymLinks 를 검색해보자!!
그러면 딱 여기에 요게 보인다.
Options Includes Indexes FollowSymLinks
여기서 indexes 부분을 싸악 지워주고 저장한다.
그리고 아파치 재시작!!!
(가상호스트인경우는 각자 저 indexes가 써있는 경우가 있다.열씨미 찾아서 고쳐서 재부팅했는데도 안나와서 알고보니 가상호스트쪽에 하나 더 저 indexes가 있더군...고것도 고치고서 다시
아파치 재부팅하니까 제대로 작동됨)
2007년 5월 17일 목요일
진정한 웹2.0으로서의 UCC가 되려면
원래 조삼모사(朝三暮四)는 춘추전국시대 송나라에 살던 저공이라는 사람의 이야기에서 유래한다. 저공은 자신이 기르던 원숭이에게 줄 도토리가 부족해지자 아침에는 3개, 저녁에는 4개로 줄이겠다고 원숭이들에게 통보하였다. 원숭이들이 이에 격렬히 항의하자 저공은 다시 아침엔 4개, 저녁엔 3개로 바꿔 제안을 하였다. 결국 똑 같은 말인데도 원숭이들은 나중 제안을 기뻐하며 받아 들였다는 것으로 사물의 본질을 보지 못하는 어리석음을 비유한 이야기이다.
여기서 저공과 원숭이의 대화 장면을 차용한 조삼모사 시리즈는, 저공이 뭐라 하자 난리를 치던 원숭이들이 그가 돌아서며 던진 한마디 말에 바로 불리함을 깨닫고 아부를 하는 모습을 재미있게 묘사한다. 특이한 것은 네티즌들에 의하여 대화 내용이 매번 바뀌면서 상황은 똑같지만 내용이 다른 촌철살인의 유머들이 쏟아져 나왔다는 점이다. 하도 많은 버전들이 만들어 져서 처음 나왔던 원본이 무엇인지도 모르게 되었지만, 서로들 만들어 낸 버전을 감상하며 공감하고 즐거움을 느꼈던 건 디지털 세상이 만들어 준 자그마한 행복이었다.
UCC, 과거를 부활시키다
이른 바 웹2.0 시대의 인터넷의 화두는 단연코 UCC(User Created Cotents) 또는 UGP(User Generated Contents)라 불리는 ‘이용자에 의하여 생산된 콘텐츠’이다.
다들 새로운 엘도라도를 발견한 듯이 UCC로 어떻게 수익을 올릴지 몰두하고 있고 구글에 거액에 인수된 유튜브의 사례는 UCC의 위력을 보여주는 신화가 된 것처럼 보인다. 어떻게 보면 대동강 팔아먹은 봉이 김선달보다 더 심한 것이 아닌가 하는 생각도 들지만 웹2.0의 지향점이 참여의 아키텍처에 의한 이용자들 자신의 개인적이고 이기적인 활동의 부산물로서 구축된 DB를 이용한 비즈니스이니 잘못된 방향은 아니다.
그러나 참여와 개방, 공유를 본질로 하는 웹2.0과 관련해서 UCC를 논하려면 단순히 ‘이용자에 의하여 생산된 콘텐츠’라는 정의만으로는 부족하다. UCC는 콘텐츠를 만든 자가 누구냐가 핵심이 아니라 콘텐츠에 누구나 접근 가능하고, 이를 누구나 가져갈 수 있으며, 제일 중요한 것은 그것으로 누구나 새로운 것을 만들 수 있다는 것이 본질이기 때문이다. 조삼모사 시리즈가 가능했던 바로 그 부분이다.
사실 이러한 의미에서의 UCC는 새로운 개념이 결코 아니다. 오히려 UCC는 창작의 원래 모습이다. ‘창작자’라는 계층이 따로 존재하지 않았던 과거로 돌아가 보자. 낮에 있었던 사냥을 떠올리며 동굴 벽에 그림을 그린 자나 여기에 자기 이야기를 덧붙인 자 모두 그 날 그 날 살아가느라 바빴던 평범한 사람들이다. 이 사람 저 사람이 흥얼거리던 노래는 어느덧 아리랑이라는 명곡이 되었으며 지역에 따라 다르게 바뀌어 새로운 버전이 만들어졌다. 눈먼 아버지를 위해 바다에 몸을 던진 어린 소녀의 부활이야기는 유교와 불교의 정신세계가 혼합되어 있는 것을 보더라도 어느 한사람의 창작이 아닌 오랜 세월동안 많은 이들의 손을 거쳐 완성된 스토리임이 틀림없다.
창작의 원래 모습이 UCC일 수밖에 없었던 것은 그 당시에는 창작행위가 돈벌이 수단이 아니라 단순히 즐기거나 자신의 생각, 감정을 표현하는 수단이었기 때문이다. 따라서 그 결과물인 창작물에 대한 독점이라는 개념이 없었다. 그러나 문화가 축적되어 저작물의 수준이 높아지고 새로운 전문가들이 두각을 나타내기 시작하면서 이야기는 달라진다.
천부적인 소질과 전문화된 실력을 갖춘 창작자들이 등장하고 그들이 만들어낸 창작물들이 높은 평가를 받고 그 가치가 인정되면서 이를 저장할 미디어와 널리 전파시키기 위한 네트워크가 고안되었다. 미디어와 네트워크의 발달은 창작물의 온전한 보존과 공간적 범위의 확장을 가져오면서 전문 창작자의 지위와 창작물의 경제적 가치를 더욱 더 높였고 이는 다시 창작행위를 그와 같은 전문가들에게 집중되게 만들었다. 점차 문화적 수준에서 뒤지고 경제적, 시간적 여유가 부족한 일반인들은 일방적인 수용자로 전락하게 되었다. 이러한 상황의 변화는 저작물에 대한 저작자의 독점적 이익을 강화하고 그의 허락 없이는 아무도 손을 댈 수 없는 원칙을 만들어 냈다. 저작권법이 등장하고 점차 강력한 저작권의 모습을 갖춰간 것이 이 무렵이다.
그러나 20세기 후반에 나타난 기술의 발전은 역설적으로 과거의 부활을 가져왔다. 고비용의 미디어에 의존하지 않고도 창작물을 무형적인 디지털 정보 자체로서 저장, 인식할 수 있게 되고 인터넷이라는 비용 제로의 혁명적인 배포수단이 등장하면서 일반인들이 넘볼 수 없었던 미디어와 네트워크의 장벽이 무너졌다. 또한 창작을 위한 기술적, 경제적 어려움이 극복되면서 이전에는 엄두도 내지 못했던 높은 수준과 대규모의 저작물을 쉽게 만들어 낼 수 있게 되었다. 무엇보다도 중요한 점은 커뮤니케이션수단의 발달과 정보검색의 진전으로 창작을 위한 온갖 정보가 확산되면서 일반인들의 문화적 수준이 높아졌다는 점이다. 진정한 UCC의 부활이 가능해진 셈이다.
UCC, 저작권법 장벽과 마주치다
그러나 부활은 부활인데 완벽하지 않다는 것이 문제이다. UCC는 부활하였지만 그때 당시에는 존재하지 않았던 저작권법이라는 장벽을 마주치게 된 것이다.
저작권법은 원본인 저작물을 변형하는 행위를 두 가지로 나누어 규정하고 있다. 변형한 결과 새로운 창작성이 더해져서 사회통념상 원저작물과는 다른 독자적인 저작물이 된 경우 이를 ‘2차적저작물’이라 한다. 이와는 달리 그 창작성의 정도가 낮아 수정, 가감이 이루어진 것에 불과한 경우는 저작물의 단순한 ‘변경’에 해당한다. 즉 원저작물에 가미된 창작성의 수준에 따라 구별되는데, 변형물이 2차적저작물로 인정되면 원저작물과는 독립하여 새로운 저작물로서 보호를 받게 된다는 점이 단순한 변경의 경우와 제일 큰 차이점이다.
저작권법은 저작권자에게 위 두 경우를 모두 컨트롤 할 수 있는 배타적 권리를 부여하고 있다. 원저작자의 허락을 받지 않고 2차적 저작물을 만들면 저작재산권인 ‘이차적저작물작성권’을 침해한 것으로, 허락 없이 원저작물을 변경한 경우는 저작인격권인 ‘동일성유지권’을 침해한 것이 된다. 위에서 언급한 것처럼 2차적저작물이 새로운 저작물로서 보호받게 된다고 하더라도 원저작자의 허락을 안 받았다면 그의 이차적저작물작성권을 침해한 사실은 변함이 없다.
물론 저작권이 전문창작자만을 위한 것은 아니다. 창작자를 차별함이 없이 자신의 저작물에 대한 권리는 모두에게 동등하게 주어진다. 문제는 그 유래를 보더라도 알 수 있듯이 저작권법이라는 시스템은 UCC가 아닌 전문창작자의 경제적, 독점적 권리를 보호하기에 적합한 시스템이라는 점이다. 만인에게 동등하게 적용되는 저작권법의 원칙은 오히려 UCC의 부활을 방해하는 부작용을 낳고 있는 셈이다.
자연스로운 콘텐츠 순환과정을 만들어야
게다가 대부분의 UCC 플랫폼들이 UCC의 본질을 실현할 수 있는 여건을 만들지 못하고 있는 것이 사정을 더욱 악화시키고 있다.
UCC 플랫폼들이 가지고 있는 상당수의 UCC가 출발부터 진정한 UCC가 아닌 사이비 UCC(User Copied Contents)라는 점도 문제지만 그나마 이용자가 만들어낸 콘텐츠로서의 UCC임에도 이마저 제대로 구현되지 못하고 있는 것이 현실이다. 대부분의 UCC 플랫폼들이 집중하고 있는 것은 UCC의 확보, 확보된 UCC로부터의 수익, 그리고 창작자와의 수익분배이다. 물론 중요한 사항이다. 그러나 콘텐츠를 확보하여 수익을 내고 이를 창작자와 나눠 가진다는 개념은 그 콘텐츠가 아마추어에 의한 것이든 프로에 의한 것이든 큰 의미는 없다. 그걸 굳이 웹2.0이라고 부를만한 혁신적인 것이라 할 수 있겠는가. 스크랩 기능을 더하여 자유롭게 스크랩해 갈 수 있는 여건을 마련한다고 하더라도 크게 사정이 달라지는 것도 아니다.
진정한 웹2.0로서의 UCC를 추구한다면 원래의 모습대로 누구나 접근가능하고 누구나 가져갈 수 있으며 누구나 변형시킬 수 있는 콘텐츠의 장을 마련하여 참여와 개방과 공유를 실현시켜야 한다. 즉 UCC에 적합하지 않은 저작권을 해결할 수 있도록 플랫폼 자체에서 지원을 해 주어야 한다. 정체불명의 개념인 스크랩 허용만 달랑 달아놓을게 아니라 콘텐츠의 개방과 공유를 계몽, 유도하면서 CCL이나 정보공유라이선스처럼 자신의 저작물을 남들이 어떻게 이용할 수 있는지, 새로운 2차적저작물의 작성을 허용할 것인지 나타내 줄 수 있는 간편한 방법을 마련해 주어야 한다. 기술적인 면에서도 수정, 변환이 어려운 포맷으로 UCC를 보관할 것이 아니라 좀 더 유연하고 다양한 포맷을 지원하여 제3자에 의한 접근과 수정이 가능하도록 배려할 필요가 있다.
그래서 웹2.0에서 추구하는 콘텐츠의 순환과정이 자연스럽게 이루어지게 하여야 한다. UCC 제공자에게 정당한 수익을 나누어 주는 것도 좋지만, 그게 전부는 아니다. 어느 누구는 단지 자유롭게 즐길 수 있는 놀이터와 친구들이 생겼다는 것만으로 만족할 것이기 때문이다. 오히려 그것이 UCC 플랫폼이 우선적으로 접근해야 할 기본적인 방향이고, 더욱더 수준 높은 제2, 제3의 조삼모사 시리즈를 만들어 낼 수 있는 환경이다.@
출처 : ZDNet Korea <윤종수(서울 북부지원 판사) >
UCC 현황과 전망 [1]
네모, 파이, 플레이, TV팟, 야미, 붐, 큐… 올해 포털 사이트에서 신규 런칭된 UCC 콘텐츠 들이다. UCC는 그만큼 강력한 화두였고, 선두 포털 사이트들은 다양한 이름의 서비스들을 경쟁적으로 만들어 냈다. 그리고 위의 서비스들처럼 동영상 또는 이미지 중심의 서비스들 외에도 블로그와 같은 텍스트 중심의 UCC도 계속 업그레이드 되고 있다.
이런 실물적인 서비스가 나오고 있음에도 불구하고, UCC는 웹2.0이라는 단어와 함께 일종의 마케팅 유행어로 취급되고 있기도 하다. 비즈니스 트랜드에 뒤떨어진 사람들의 푸념이라고 볼 수도 있지만, 몇 가지 부분에서 거슬리는 부분이 있는 것도 사실이다.
무엇보다 소비자와 합의되지 않은 영문 이니셜을 이용한 개념어가 구체적인 서비스에 앞서 먼저 사용되었다는 것이 그렇고 – 일반 소비자들은 UCC를 모를 수도 있다. – ‘일반 사용자에 의해 생산되는 콘텐츠’라는 것은 이미 웹 초창기에 ‘웹’ 스스로를 칭찬했던 대표적 멘트 중 하나였기 때문이다.
하지만 이런 회의론자들에게 보란 듯이 UCC는 이미 상당한 양의 방문자들을 확보했으며 아래 그림과 같이 방문자들이 늘어나는 경향을 보이고 있다.
포털 UCC 주요 사이트 방문자수 추이 |
용어는 다소 겉멋 들었고 이미 익숙한 개념인 것은 사실이지만, 사용자들은 충실히 반응하고 있다는 얘기다.
사실 일부 회사에서 퍼뜨린 마케팅 유행어라는 혐의를 떨치지 못하면서도,UCC의 매력을 떨치지 못하고 있는 이유가 여기에 있다. 인터넷은 사용자의 자발성을 근거로 시작했으며, 이들의 자발성을 높이는 방향으로 진화하고 있기 때문이다.
유통 채널로써 기능 확장
1998년에 함께 영화 평론을 공부하던 친구들과 웹진을 공동으로 발행한 적이 있었다. 그다지 유명하지는 않았지만, 아마추어 글쟁이들 치고는 나름대로 주목 받았던 것으로 기억한다. 지금으로 치면 UCC라는 이름을 붙여주기에 알맞은 콘텐츠가 아니었나 싶다.
어쨌든 각자의 생계 활동에도 불구하고 처음 1년간은 매월 꾸준히 업데이트를 진행했지만, 그 후 1년간 정기 업데이트 일정을 거의 지키질 못했고 결국 2년을 채 못 채우고 폐간을 선택할 수밖에 없었다.
그 당시 안타까웠던 것은 두 가지다. 하나는 힘들여 생산한 글들에 대한 제대로 된 유통 채널이 있으면 좋겠다는 것이고, 또 하나는 그 일을 통해서 생계를 유지할 수 있으면 좋겠다는 것이었다.
현재의 UCC 서비스의 양태를 보면 전자는 해결된 듯 싶다. 블로그는 적어도 검색 포털 내에서는 매우 평등한 매체이다. 그리고, 트랙백과 같은 기능은 댓글 자체도 콘텐츠 유통에 포함시켜 생산된 글에 대한 토론 행위를 인터넷 공간에서 무한히 확장한다.
이것은 분명히 최초 인터넷 산업 시기에 우리가 보지 못했던 부분이다. 콘텐츠의 생산이 아닌 생산된 콘텐츠의 평등한 유통과 유통 라인의 무한한 확장. 이는 그야말로 UCC를 위한 새로운 인프라라고 할 수 있다.
현재는 크게 활성화되어 있지 않을 지라도 이 기술적 인프라는 향후 UCC의 활성화에 큰 기여를 할 것으로 예상된다. @
출처 : ZDNet Korea <랭키닷컴 송정훈 컨설팅사업부장>
2007년 5월 9일 수요일
MS, 어도비 플래시에 도전장
공식 이름은 「실버라이트(Silverlight)」. 실버라이트는 플래시 플레이어와 마찬가지로 웹상에 동영상을 제공하는 미디어 및 엔터테인먼트 회사들을 주 타깃으로 하고 있다.
소비자로서는 다양한 제품으로 인하여 선택의 폭이 넓어지고 그에 따라서 질적인 향상을 가져온다면 좋을 일일 수도 있겠지만 개발자 입장에서는 달갑지 않은 일일 수도 있을 듯 싶다. 더욱이 그 대상이 MS라는 것,
새로운 기술을 바탕으로 기존의 툴로 불가능 했던 것을 만들어 낸다던가, 기존의 제품보다 향상된 퍼포먼스를 자랑한다면 좋은 현상이겠지만 그런 것이 아닌 비슷한 제품으로 서로 힘의 논리로 시장을 형성해 간다면 좋은 일은 아닐 것이다.
가만히 보면 MS라는 회사는 미국이라는 나라의 애국주의와 많은 부분 닮아있다는 생각도 든다. 물론 자본주의 사회에서의 시장원리를 무시할 수는 없는 일이지만 그로 인해서 피해를 보고 더 발전적인 방향으로 가지 못한 부분들도 많은 것 같다.
MS는 9일(미국시간) 라스베이거스에서 개최되고 있는 NAB(National Association of Broadcasters) 쇼에서 실버라이트를 공식 출시한다.
실버라이트는 미디어 파일을 재생하고 여러 운영체제에 유연성 있게 웹 애플리케이션을 제공하는 웹 브라우저 기능 확장용 소프트웨어이다.
MS 측은 과거에 「WPF/E (Windows Presentation Foundation/Everywhere)」라고 불렸던 실버라이트의 베타 버전을 다음 달 디자이너들과 웹 개발자들이 참여할 Mix07 컨퍼런스에서 선보일 예정이다.
실버라이트의 공식 출시와 함께 MS는 실버라이트를 사용하는 것에 관심을 보인 몇몇 미디어와 광고 에이전시 파트너들을 소개하는 자리를 마련할 계획이다.
이런 파트너들에는 현재 MLB(미 프로야구), 온라인 동영상 방송회사인 브라이트코브, 그리고 넷플릭스와 아카마이 테크놀로지스 등이 있다.
2년여의 개발과정을 거친 실버라이트는 인터넷 익스플로러, 파이어폭스, 또는 사파리 등, 윈도우와 맥에서 웹 애플리케이션을 제공할 수 있는 소프트웨어이다. 플레이어의 용량이 2메가바이트 이하인 것 또한 하나의 장점이다.
플래시처럼 실버라이트 또한 디자이너와 소프트웨어 개발자 둘 모두를 위한 개발 툴을 가지고 있다.
NAB 컨퍼런스를 통해 실버라이트를 출시함으로써 MS는 현재 온라인상에서 활약하고 있는 미디어 회사들의 관심을 유발하기 위해 노력하고 있다. MS의 윈도우 미디어 플레이어 포맷은 다운로드 된 동영상을 재생하는 데 널리 사용된다.
하지만 마이스페이스닷컴이나 유튜브 등과 같은 인기 사이트에서 실시간으로 동영상을 재생하는 데에서는 어도비의 플래시 플레이어가 가장 많이 사용되는 것이 사실이다.
한 예로, 브라이트코브의 마케팅 및 전략 부문 부회장 아담 베리(Adam Berrey)는 그들이 서비스하는 모든 동영상을 현재 플래시를 통해 제공하고 있다. 하지만 브라이트코브는 올해 말부터 실버라이트를 사용하기 시작해 소비자들의 관심을 끌어 모을 예정이라고 밝혔다.
베리는 "실버라이트의 장점은 바로 윈도우 미디어 비디오(Windows Media Video)의 포맷을 브라우저상에서 매우 일관성 있게 구현하기 때문"이라며 "우리가 지금까지 윈도우 미디어 비디오를 지원하지 않았던 이유는 사용자를 배려하는 그런 서비스를 제공하지 못하고 있었다고 판단해서"라고 설명했다.
하지만 그는 브라이트코브가 앞으로도 어도비 플래시와 「플렉스(Flex)」 개발 툴들을 이용해 콘텐츠 보유자들이 브라이트코브 서비스로 동영상을 업로드 할 수 있도록 제작된 툴을 포함한 추가 소프트웨어를 제작할 예정이라고 밝혔다.
어도비, MS라는 장애물 직면
웹 동영상의 급속한 확산과 더불어 어도비와 MS 간의 경쟁은 더욱 심화될 것으로 보인다.
MS는 이미 미디어 사업 부문에 상당한 고객을 보유하고 있고, 이들 중 상당수는 온라인 콘텐츠 부문을 확장하는 것을 고려중인 것으로 알려져 있다.
또한 MS는 그들의 제품에 대한 고정 고객층인 소프트웨어 프로그래머들을 보유하는 것을 넘어서 그래픽과 웹 디자이너들 또한 새로운 고정 고객층으로 유치하기 위해 노력하고 있다. 어도비의 제품 수익 중 절반은 창조적인 전문가들을 위한 제품으로부터 나오고 있다.
이에 대비해서 어도비는 콘텐츠 오서링(authoring)을 통해 웹 개발 부문과 연계하고자 하고 있다.
이에 대한 노력의 일환으로 어도비는 최근 디자이너들이 사진, 동영상 등과 같은 콘텐츠를 지면상 혹은 웹이나 모바일 기기 등을 통해 제공할 수 있도록 도와주는 「크리에이티브 스위트 3(Creative Suite 3)」를 소개한 바 있다.
제공: Microsoft
MS가 NAB 쇼를 통해 웹상에서 미디어를 재생하고 다양한 웹 애플리케이션 상에서 사용이 가능한 새로운 웹 브라우저 플러그 인 실버라이트를 소개할 것이라고 밝혔다. 또한 MS는 WPF/E라는 코드 명으로 불렸던 이 제품에 관심을 보인 퍼블리셔 및 광고 에이전시 파트너들을 소개하는 자리를 마련할 예정이다.
한편 어도비 또한 NAB 쇼를 통해 「필로(Philo)」라는 코드 명으로 알려진 「어도비 미디어 플레이어(Adobe Media Player)」를 선보일 예정이다.
이는 플래시 포맷의 동영상을 오프라인 상에서 재생할 수 있도록 만들어진 무료 소프트웨어다. 올해 말에는 사용자들이 직접 비디오 「팟캐스트(Podcast)」에 대한 RSS 피드를 선택하고 또 운영할 수 있게 하는 어도비 미디어 플레이어를 출시할 예정이다.
MS 서버 및 툴 부문 생산 운영을 담당하고 있는 포레스트 키(Forest Key)는 실버라이트가 플래시보다 더 앞선 성능을 보일 것이라고 주장했다.
그는 실버라이트가 벡터 그래픽(vector graphics)을 사용하기 때문에, 브라우저 페이지 상에서 재생되는 동영상의 창을 마음대로 조정할 수 있다고 강조했다. 또한 MS는 콘텐츠 제작자들을 위한 디지털 저작권 운영 툴을 제공할 예정이라고 밝혔다.
이와 더불어 윈도우나 웹 애플리케이션을 사용하는데 있어 MS의 닷넷(.Net) 툴에 익숙한 개발자들은 온라인 동영상과 관련해서도 그들이 보유하고 있는 기술들을 그대로 사용할 수 있다.
MS는 2분기 말경에, 그래픽 디자이너들과 웹 개발자들을 타깃으로 한「익스프레션 스위트(Expression suite)」툴을 출시할 예정이다.
MS는 또한 NAB 쇼를 통해 현존하는 윈도우 미디어 비디오 파일을 웹상에서 재생할 수 있도록 하는 툴인 익스프레션 미디어 인코더(Expression Media Encoder)를 소개할 예정이다.
실버라이트의 유저 인터페이스 디자인은 MS가 자체 개발한 XAML 이라는 언어를 통해 제작됐다.
애플리케이션은 이 밖에도 자바스크립트나 HTML을 통해서도 제작될 수 있다. Mix07에서 MS는 실버라이트 애플리케이션을 제작하는데 사용할 수 있는 기타 여러 세부적인 프로그램 언어들에 대해서도 설명할 예정이라고 키는 말했다.
결과적으로 MS는 모바일 기기에서 실행될 수 있는 실버라이트 버전을 제작하는 것을 목표로 하고 있다.
MS가 실버라이트를 사용할 여러 파트너들을 섭외 했음에도 불구하고, 아직까지 광범위한 산업계의 지원은 받지 못하고 있는 상태이다.
호스트 애플리케이션 제공 업체인 세일스포스닷컴(Saleforce.com)의 제품 마케팅 담당자 아담 그로스(Adam Gross)는 "아직 실버라이트가 시장의 주류가 아니기 때문에" 실버라이트를 사용할 계획이 없다고 밝혔다.
또한 MS는 NAB 컨퍼런스를 통해 동영상을 더욱 효율적으로 운영할 수 있도록 개선될 윈도우 롱혼 서버에 관한 계획에 대해서도 소개할 예정이라고 밝혔다.
롱혼 서버에 대한 개선 작업은 올해 말경에 완료될 예정이다. 이와 더불어 미디어 및 엔터테인먼트 산업에 최적화된 셰어포인트 서버(SharePoint server)와 관련한 부분에 논의 할 예정이다.
출처 : Martin LaMonica ( CNET News.com )