<< PREV : [1] : [2] : [3] : [4] : [5] : ... [14] : NEXT >>

이전 글을 확인 하실분은 아래 링크를 활용하세요.

네이버 스마트에디터에 업로드 기능 추가(PHP용)[1]

네이버 스마트에디터에 업로드 기능 추가(PHP용)[2]
네이버 스마트에디터에 업로드 기능 추가(PHP용)[3]

이번 글을 테스트용으로 만든 게시판을 보입니다.
첫 페이지 모습입니다.
사용자 삽입 이미지

업로드 모습입니다.
사용자 삽입 이미지
사용자 삽입 이미지

그림으로 삽입, 링크로 삽입 했을 때의 모습입니다.

사용자 삽입 이미지


이 기능에서 주의해야 할 것은 UUID가 생성된 후 파일을 업로드 하고 "새로고침" 해버리면 쓰레기 파일이 남을 수 있다는 점입니다.
이문제는 조금만 신경쓰면 해결할 수 있습니다.

그럼 모두 멋있는 웹사이트 만드시길 바랍니다.
2010/06/22 02:38 2010/06/22 02:38
Posted by 인생을 설계하는 프로그래머
이전 글을 확인 하실분은 아래 링크를 활용하세요.

네이버 스마트에디터에 업로드 기능 추가(PHP용)[1]

네이버 스마트에디터에 업로드 기능 추가(PHP용)[2]
네이버 스마트에디터에 업로드 기능 추가(PHP용)[3]

앞서 서술한 소스를 잠깐 설명하자면.

스마트에디터를 표시하고 밑에 리스트박스와 버튼들을 만듭니다. 그리고 자바스크립 소스를 잘 살펴 보시면 리스트 박스에서 선택된 파일을 이미지 또는 하이퍼링크 형식으로 스마트에디터에 추가하는겁니다. 그리고 아이프레임을 통해서 파일을 업로드하고, 삭제 기능도 하게 됩니다.

이 글을 보시는 분들은 대부분 게시판 정도는 쉽게 만드실 분들이니 글쓰기에 관한건 이야기 하지 않겠습니다.
중요한것은 생성된 uuid를 이용하여 글과 파일이 연결된다는 겁니다.

다음은 업로드 소스입니다.
file_upload.php

<?
  $save_dir = "[파일이 업로드될 유닉스 절대경로]";
 
 $file_temp = $_FILES['txtFile']['tmp_name'];
 $file_name = $_FILES['txtFile']['name'];
 $file_size = $_FILES['txtFile']['size'];
      
 $current_file=$file_name;
 $file_name=substr($current_file,0,strrpos($current_file,"."));
 $file_ex=strrchr($current_file,".");

 //확장자 검사
 if(!strcmp($file_ex,".html") ||
    !strcmp($file_ex,".htm") ||
    !strcmp($file_ex,".php") ||
    !strcmp($file_ex,".phtml") ||
    !strcmp($file_ex,".inc") ||
    !strcmp($file_ex,".txt") ||
    !strcmp($file_ex,".asp")) show_error_java("허용된 파일이 아닙니다.");
   
 //중복파일 검사 - 중복된 파일이 있을경우 인덱스를 붙인다.
 $fn_t=$file_name;
 $fileindex=0;
   
 while(file_exists($save_dir . "/" . $fn_t . $file_ex))
 {
  $fn_t=$file_name . "(" . $fileindex . ")";
  $fileindex++;
 };
   
 $realfile = $fn_t. $file_ex; //실제파일명
  $dest = $save_dir."/".$realfile;
  $srcf = $file_temp;
 if(!move_uploaded_file($srcf,$dest)) show_error_java("업로드 실패");
 
 $sql="insert into t_file(f_articleid, f_name) values('$articleid', '$realfile')";
  mysql_query($sql);
?>

<script language="javascript">
  var item = document.createElement("option");
  item.text="<?=$realfile?>";
  item.value="<?=$realfile?>";
  parent.frmAdd.cmbUpload.add(item);
  parent.divUpload.style.visibility="hidden";
  alert("새로운 파일이 저장되었습니다.");
</script>

이 소스를 설명하자면 앞글에 있는 소스에서 파일 업로드가 되면 파일을 [절대경로]에 업로드하고, DB에 파일에 대한 정보를 저장합니다. 그리고 파일리스트박스에 파일을 추가합니다. 다시한번 말하지만 iframe을 사용합니다. 소스 잘 따라가세요. 그냥 붙여 넣기 하면 잘 안될겁니다.

그리고 삭제하는 부분 소스입니다.
file_del.php

<?
  include "../lib.php";
 
  $db=dbconn();

  $save_dir = $appitem_path."data/";
 
  $sql="select f_name from t_file where f_no=$no";
  $filename = mysql_result(mysql_query($sql), 0, 0);
  @unlink($save_dir.$filename);
 
  $sql="delete from t_file where f_no=$no";
  mysql_query($sql);
?>

여기가 끝입니다.

앞선 네이버 스마트에디터에 업로드 기능 추가(PHP용)[1] 글과 이 글을 합쳐봐야 파일 3개 입니다. 즉 파일 세개만 잘 분석해서 웹사이트에 적용한다면 스마트에디터에 업로드 기능을 추가할 수 있을겁니다.

다음글은 실행 모습을 보여드리겠습니다.

2010/06/22 02:27 2010/06/22 02:27
Posted by 인생을 설계하는 프로그래머
관련 글을 확인 하실분은 아래 링크를 활용하세요.

네이버 스마트에디터에 업로드 기능 추가(PHP용)[1]

네이버 스마트에디터에 업로드 기능 추가(PHP용)[2]
네이버 스마트에디터에 업로드 기능 추가(PHP용)[3]

웹사이트 구축할 일이 있어서 좋은 이지윅 에디터를 찾던도중 네이버 스마트에디터를 알게되었습니다.
여러가지 에디터들을 살펴보면 솔직히 개발자 마음에 딱 맞게 만들어놓은것이 별로 없습니다.

특히 업로드 기능이 문제인데요... 대부분의 OpenAPI들이 Ajax 및 JSON을 기반으로 하기 때문에 서버와 연결할 필요가 있는 파일업로드 기능은 포함시키기 어렵습니다.

네이버 스마트에디터 역시 마찬가지인데요... 업로드 기능을 찾기 위해서 신나게 서핑을 해봤지만 파일 저장 기능만 가능하고 삭제 기능은 없어서 쓰레기 파일들이 마구 생성된다는 문제점이 있었습니다.

그래서 구현하기로 마음먹고 3시간 정도 삽질을 했습니다.

솔직히 실력도 자랑할 수준도 아니고, 공개해봐야 불평만 하는 인간들 때문에 공개 않할려고 하다가, 생각외로 많은 분들이 업로드 기능을 요구하고 있기 때문에 공개합니다.

허접한 실력이라도 욕하지 마시고, 좋은 제안 부탁드립니다. iframe을 적극 활용하기 때문에 Internet Explorer 8.0 에서만 가능하고, 다른 브라우져는 기능을 직접 수정하시기 바랍니다.

이제 설명 시작합니다.

일반적인 게시판의 경우 DB 구조가 글에 해당하는 레코드에 몇개의 파일 첨부 필드를 두어 파일 첨부가 한정적이고, 스마트 에디터 처럼 이지윅 에디터를 사용하는 경우 그림 첨부에 불편함을 야기할 수 있습니다.

제가 구성한 구조는 파일에 대한 테이블을 따로두고 각각의 파일의 레코드가 글에 해당하는 레코드로 연결됩니다.

글과 파일과 연결되기 위해 uuid를 생성하고, 글 및 파일 레코드에 포함됩니다.

파일의 레코드는 다음과 같습니다. db에 다음과 같은 테이블을 생성합니다.
CREATE TABLE IF NOT EXISTS `t_file` (
  `f_no` int(8) NOT NULL auto_increment,
  `f_articleid` char(15) NOT NULL,
  `f_name` varchar(40) NOT NULL,
  PRIMARY KEY  (`f_no`)
);

f_articleid 필드가 글과 연결되는 필드입니다. 다음은 글쓰는 페이지입니다.
주요 부분만 표시하니 양해 바랍니다. 글과 파일을 연결시켜주는 ID의 중복을 방지하기 위해서 uuid를 생성합니다. $articleid에 저장됩니다.

<form name="frmAdd" action="sample.php" method="post">
  <?$articleid = uniqid();?
  <table width="600" align="center"><tr><td colspan="2" style="text-align:right"> powered by NAVER SmartEditor Basic<br/></td></tr></table>

 <textarea name="ir1" id="ir1" style="width:600px; height:200px;"></textarea>
 <table width="600" align="center">
   <tr>
     <td width="500">
       <select name="cmbUpload" size="5" style="width:100%;">
       <?
       $sql="select * from t_file where f_articleid='$articleid' order by f_name asc";
       $result = mysql_query($sql);
       while($fdata = mysql_fetch_array($result))
       {
         echo("<option value='".$fdata[f_no]."'>".$fdata[f_name]."</option>");
       }?>
       </select>
      </td>
      <td width="*">
        <input type="button" style="width:100%;" value="새 파일 업로드" onclick="showUpload();"><br/>
        <input type="button" style="width:100%;" value="그림으로 삽입" onclick="addImage();"><br/>
        <input type="button" style="width:100%;" value="링크로 삽입" onclick="addLink();"><br/>
        <input type="button" style="width:100%;" value="삭제" onclick="delItem();"><br/>
      </td>
    </tr>
  </table>
</form>

<div id="divUpload" style="position:absolute;visibility:hidden;top:0px;left:0px;">
  <table width="400" style="border:solid 1px #000000;">
    <tr class="menubar1" style="height:25px;color:#ffffff">
      <td width="370">새 파일 업로드</td>
      <td width="30"><button class="item2" onclick="divUpload.style.visibility='hidden';">×</button></td>
    </tr>
  <form name="frmUpload" action="file_upload.php?articleid=<?=$articleid?>" target="sub_frame" method="post"  enctype="multipart/form-data">
    <tr>
      <td width="400" height="100"colspan="2">
      <input type="file" name="txtFile" style="width:90%;"><br/><br/>
      <input type="submit" class="button50" value="업로드">
      <input type="button" class="button50" value="취소" onclick="divUpload.style.visibility='hidden';">
      </td>
  </table>
    </tr>
  </form>
</div>
<iframe name="sub_frame" style="display:none;"></iframe>
<script>
var oEditors = [];
nhn.husky.EZCreator.createInIFrame({
 oAppRef: oEditors,
 elPlaceHolder: "ir1",
 sSkinURI: "SEditorDemoSkin.html",
 fCreator: "createSEditorInIFrame",
 bUseBlocker: true
});
function addImage()
{
  var cmb = frmAdd.cmbUpload;
  var si = cmb.selectedIndex; 
  if(si == -1)
  {
    alert("파일이 선택되지 않았습니다.");
    return false;
  }
  var t =cmb.options[si].text;

 sHTML = "<img src=[파일이 저장된 웹경로]" + t + ">";
 oEditors.getById["ir1"].exec("PASTE_HTML", [sHTML]); 

}

function addLink()
{
  var cmb = frmAdd.cmbUpload;
  var si = cmb.selectedIndex; 
  if(si == -1)
  {
    alert("파일이 선택되지 않았습니다.");
    return false;
  }
  var t =cmb.options[si].text;

 sHTML = "<a href=[파일이 저장된 웹경로]" + t + ">" + t + "</a>";
 oEditors.getById["ir1"].exec("PASTE_HTML", [sHTML]); 

}

function delItem()
{
  var cmb = frmAdd.cmbUpload;
  var si = cmb.selectedIndex; 
  if(si == -1)
  {
    alert("파일이 선택되지 않았습니다.");
    return false;
  }
  if(!confirm("정말 삭제하시겠습니까?"))
    return false;
 

  var t =cmb.options[si].text;
  var v = cmb.options[si].value;
 
  sub_frame.navigate("file_del.php?no=" + v);
  cmb.remove(si);
 
  alert("삭제되었습니다.");

}

function showUpload()
{
  var de = document.documentElement;
  divUpload.style.visibility = "visible";
  divUpload.style.top = de.scrollTop + 200;
  divUpload.style.left =((document.body.clientWidth - 400) / 2.0);
}
</script>


글이 너무 길어지는군요. 다음 글에서 계속 쓰겠습니다.
2010/06/22 02:17 2010/06/22 02:17
Posted by 인생을 설계하는 프로그래머

안드로이드 개발팀을 이끌고 있는 개발자의 한 사람으로써 글을 씁니다.

최근 최고의 IT관련 키워드를 고르라고 하면 대부분 스마트폰, 앱스토어를 이야기 할겁니다
.
스마트폰이라... 개념도 명확하지 않죠... 사람들이 이야기 하는 스마트폰의 개념은 어떻게 보면 터치폰? 정도
?

저는 스마트폰을 이렇게 정의하고 싶습니다
.

고 수준의 운영체제를 갖추고 있으며 PC 기능의 일부분을 수용하면서, 직접 프로그램을 설치 및 운용 할 있으며, 인터넷 서비스가 가능한 휴대폰


최고의 스마트 폰을 꼽으라고 하면 아이폰 또는 안드로이드라고 이야기 하겠지요.
아이폰은 휴대폰을 사용하는 사람들의 이상을 가장 잘 실현시켜준 휴대폰이라고 할 수 있는데요, 이 아이폰이라는 것이 아주 골때리는 구조를 가지고 있습니다. 동작 과정은 물론이고 폐쇄적인 구동 환경 및 개발 과정은 이야기 할 것도 없고요 아이폰을 통한 수익 모델은 모두 애플을 거치게 되어 있습니다
.

물론 휴대폰을 그렇게 만들고(잘 만들었지요), 거기에 따라가는 사용자, 개발자들이 있기 때문에 누구도 탓할 수 없지만 다른 관점에서 보면 폭정인것이죠. 하지만 가장 잘 만들어진 스마트폰이라는데에는 의의를 제기할 사람은 아무도 없습니다
.

그 아이폰의 대항마로서의 가장 유력한 후보는 구글의 안드로이드입니다. 안드로이드의 개념은 바로 "오픈"입니다. 그동안 스마트폰의 동작 및 개발에 관해서는 모두 오픈하겠다는 의미입니다. 그래서 안드로이드에 관련된 개발 자료는 엄청나게 많습니다. 또한 자유로운 개발을 표방하고 있기 때문에 "개발자 등록(?)"이 필요하지 않습니다
.
누구나 원하면 공짜로 개발 할 수 있고 공짜로 배포할수도 있으며 거기서 발생하는 수익을 구글과 나눌 필요도 없습니다. 물론 구글 마켓스토어를 이용한다면 약간의 수수료는 줘야 하는걸로 알고 있습니다
.

안드로이드는 OS를 이야기 합니다. 아이폰하고는 다른 개념이죠. 아이폰은 하드웨어 및 소프트웨어(OS)를 포함하고 있습니다
.

하지만 안드로이드는 오로지 OS를 이야기 합니다. 따라서 하드웨어는 어떻게 만들던지 안드로이드가 구동되고 그 하드웨어 구성이 어느정도의 표준에 적합하다면 누구나 판매가 가능합니다. 그래서 안드로이드 폰도 다양합니다. 또한 많은 휴대폰 제조업체에서 안드로이드 폰을 만들수가 있는겁니다
.

이처럼 안드로이드는 "오픈"을 그 모토로 하고 있습니다.


하드웨어 개발업체는 안드로이드 폰을 만든 후 출시하기 위해서, 정확하게 이야기 하자면 안드로이드폰이라는 이름을 달기 위해서는 구글의 인증을 받아야 합니다. 이 과정은 개발사 입장에서는 꽤 복잡하고도 긴 시간을 필요로 한답니다.
어느정도의 안드로이드 기능을 안정적으로 구동할 수 있어야지 인증이 통과된다는 의미지요하지만 다시 말하자면 구글이 명확한 스펙을 제시하지 않은 부분은 멋대로 만들어도 된다는 이야기도 됩니다. 하드웨어 스펙의 부족한점은 전력 소비에 민감한 스마트폰에서는 큰 문제를 야기 할 수 있습니다.

 

애플리케이션 개발 과정중에 발생했던 문제점을 이야기 합니다.

우리가 만들고 있던 애플리케이션에서 문제가 되는 부분은 디스플레이의 전원이 차단되어도 G 센서의 이벤트는 계속 발생해야 하는 것이었습니다. 사전 조사 결과 G 센서의 전원을 제어하는 내용은 구글 개발자 센터에서 찾을 수 가 없었습니다.


구글 개발자레퍼런스에는 이런 구문이 있습니다.

전력 관리 부분인데요,


사용자 삽입 이미지

 

전력관리에 관련된 부분은 위의 네가지 플레그로 결정됩니다. 보시다시피 CPU, Screen, Keyboard에 한정되어 있습니다. 센서에 관한 부분은 어디에서도 찾을 수가 없습니다.

 

그럼 여기서 개발자들은 고민하게 됩니다. 프로젝트를 진행해야 하는가 중단해야 하는가.

 

당시 넥서스원으로 테스트하고 있었습니다. 실험 결과 디스플레이의 전원이 차단될 경우 G 센서의 전원 역시 차단되었습니다. 그래서 화면이 꺼져 있는 동안에는 센서값을 읽어올 수 없었습니다. 그래서 관련 문서들을 찾아봤습니다. 대부분의 글이 HTC 장치에서는 해당 기능이 동작하지 않는다는 내용이었습니다. 그런데 이런 내용도 있었습니다.

 

!!모토로라의 드로이드에서는 제대로 동작한다.!!

 

하드웨어 표준화가 제대로 되어 있지 않았던 것이었습니다. 그 때 당시에는 HTC 기기 보다는 모토로이가 국내에 확산될 때 였고, 운영체제 업그레이드 이슈도 있었기 때문에 개발을 진행해 완료하였습니다.

 

하지만 모토로이의 OS 업그레이드 이후에도 해당기능은 동작하지 않았고 애플리케이션은 그대로 사장되었습니다.

 

몇일전에 P&C의 시리우스 장치에 테스트를 하니 또 동작하는 것이었습니다. 환장할 노릇이지요. 그 외의 장치에는 동작하지 않는것으로 확인되었습니다.

 

저는 매우 단적인 예를 제시하고 있지만 이런 상황은 여러 문제를 야기 할 수 있습니다. 아무리 오픈된 운영체제라고 해도, 아무나 그냥 저냥 만들어버리고 그 문제에 대한 명확한 해결책 및 가이드라인을 제시하지 않는 것은 큰 문제입니다.

 

이런 문제는 개발자들이 떠 안게 될 것이고, 구글은 오픈된 OS 이니깐 알아서 수정해서 쓰라고 일관할지도 모를일입니다.

 

또한, 오픈 OS는 보안상 매우 취약하다는 문제점 역시 가지고 있습니다. 긍정적으로 생각한다면 보안상 취약 부분을 Open되어 있기 때문에 많은 개발자들이 찾아 낼 수 있고 수정도 가능하다라고 생각하겠지만, 해커들이 취약점을 발견할 경우 시간적 금전적 피해를 입힐 수가 있으며, 그 피해는 안드로이드 폰의 사용이 많아 질수록 심각해 질 수 있습니다.

 

오픈이라는 단어는 다른 의미를 가지고 있습니다. 바로 책임이 없다라는 뜻입니다. 안드로이드OS를 위해 개발된 스마트폰은 어떠한 사고를 당하더라도 구글이 책임지지 않습니다. 왜냐고요? 스스로들 안드로이드를 채택한것이지 구글이 해달라고 한건 아닙니다.

 

우리나라 사람들만 우르르 몰려다니는줄 알았는데, 세계 IT 상황이 그렇습니다. 아이폰에 엄청나게 얻어터지더니, 구글이라는 공룡기업이 안드로이드를 내놓자 마자 우르르 거기로 몰려갑니다. 아이폰에 당한 것을 거기에서 풀겠다는 심보로 말이지요.

 

또 하나 망각하고 있는 것이 있습니다. 구글이 왜 노력과 돈을 들여서 Open OS를 공급하고 개발자 지원까지 할까요? 좋은말로 장기적인 투자라고 이야기 하고 싶습니다.

 

하지만 다른 관점에서 본다면, 우리 생활 하나하나에 파고들려고 하는 구글의 야심을 엿볼수 있습니다. 얼마전 유럽에서 구글 스트릿뷰에서 사생활 정보를 수집했다는 사건 때문에 떠들썩 했었습니다. 바로 그겁니다. 구글은 검색엔진, PC, 웹브라우져, 전화기 그리고 TV 모든 인간 생활에 침투할려고 하고 있습니다. 어떻게 본다면 기업의 가장 이상적인 정책이라고도 할 수 있습니다.

 

똥인지 된장인지 구분도 못한다라는 이야기가 있습니다. 마냥 다른사람이 좋다 하니 나도 좋다라는 생각은 버려야 할 때입니다. 아무리 옆에서 좋다고 하더라도 사물의 본질을 파악할 수 있는 안목이 필요할 때입니다. 구글이 애플보다 더 지독한 기업이 될지도 모르르 일이고, 언제 어디서 여러분의 자고 있는 사진이 안드로이드 폰에 찍혀서 인터넷으로 TV로 퍼질지 모르는 세상입니다.

 

 

2010/06/06 22:02 2010/06/06 22:02
Posted by 인생을 설계하는 프로그래머
천안함 사고를 시작으로 군기강 또는 안보의식 문제가 불거지고 있다.

솔직히 얘기해서 대통령이 군대 안갔다 왔는데 뭘 바라는지...

근데 따지고 보면 미국도 군대 안간 대통령이 좀 있는거 같던데..

그래서 내가 이대통령이 왜 군대를 면제받았는지 조사를 해봤더니...

다 이유가 있더만..

사용자 삽입 이미지

총을 이렇게 쏘는데... 군생활 시키고 싶겠어?

초등학생한테 K-3 줘도 저렇게 안 쏘겠다. 옛날에는 접촉할 수 있는 미디어가 별로 없어서 그런가?


2010/04/29 00:58 2010/04/29 00:58
Posted by 인생을 설계하는 프로그래머
아... 강기갑...
강기갑을 보면... 목소리 큰 사람이 정치한다는 생각을 떨칠수가 없군요..

TV 카메라 들이 대는대도 그렇게 떠들고... 동네 술취한 영감처럼 책상을 엎지 않나?

자신도 오죽 답답했으면 이미지 망가질걸 생각하면서 그 지랄병을 떨었을까요... 이해 못하는건 아닙니다.

그런데... 지깟게 정치인이면 정치인이지... 정치인은 공인 아닙니까?
그런 개념없는 인간한데 금뱃지 달아준 사람은 뭡니까?

아무리도 답답하고 화나도 그렇지 그런 쌩쑈를 해서...

에이 시팔.. 블로깅을 할 가치도 못느낀다.. 개새끼들..
2010/01/25 03:19 2010/01/25 03:19
Posted by 인생을 설계하는 프로그래머

NF43 사운드 트랙

2010/01/04 11:54

Soft Action 게임들의 Sound Track인 NF43입니다.

처음에는 저작권 때문에 망설여졌으나, 요청하시는 분이 많고.

그 분들이 돈이 있다고 해도 어디서 구할 수 있을까요?

만약 제가 이 음원을 공유함으로써 발생할 수 있는 원작자의 피해나, 음반사에 피해가 있다면

당장 삭제 하겠습니다.

2010/01/04 11:54 2010/01/04 11:54
Posted by 인생을 설계하는 프로그래머
티맥스 윈도가 발표되고 하루 뒤에 미국 출장을 다녀왔습니다.
몇일전에 귀국을 했는데요.. 보고서나 뒷정리 때문에 정신을 못차리다가, 드디어 여유가 약간! 생겼습니다.

인터넷을 검색하다가 티맥스 윈도 어떻게 되었나 하고 찾아봤더니만,

박대연 회장의 인터뷰 기사가 눈에 걸리더군요. 제목하여
"MS의 그늘에서 벗어날 때다..."
제 블로그를 읽어보시면 알겠지만, 전 리눅스 빠돌이도 윈도우 팬도 아닙니다. 그냥 필요할 때, 번갈라가며 운영체제를 씁니다. 말 그대로 박쥐같은놈이지요.

어째뜬 간에 리눅스를 한번 생각해보죠.
리눅스 만든 사람 또는 커널 개선에서 매달려 있는 수많은 공개 프로그래머들이 이런 생각을 할까요?
"난 윈도가 싫어서 리눅스를 만드는거야..."

제 생각은 NO 입니다.
그런 생각은 일부 바보 같은 리눅스 커널 소스도 한번 안본 빠돌이들이나 하는 생각인것 같은데요.
리눅스가 만들어지고, 소스를 공개하는데 까지는 "윈도가 싫어"라는 생각보다는 "뛰어난 공개 OS를 만들어보자"라는 남다른 철학이 숨어있다고 봅니다.

그럼 리눅스가 좋냐 윈도우가 좋냐라는 질문에는 전 둘다 그저 그렇다라는 평가를 내리고 싶습니다.
쓰이는 분야가 다르기 때문이지요...
리눅스를 쓰는 사람들이 정말로 윈도의 그늘에서 벗어나서 윈도는 꼴도 안보고, 그냥 리눅스로만 컴퓨팅을 하진 않을겁니다.

그래서 "MS의 그늘에서 벗어날 때다" 라고 이야기 하는것은 참 어리석은 생각이라는 것이지요.

다시 티맥스의 이야기를 해봅니다.

인터넷에 검색해보면 티맥스의 개발자란 사람이 올린 글을 찾아볼 수 있는데요, 물론 이 사람이 진짜 티맥스 윈도우의 개발자인지 아니면 허경영 추종세력인지는 검증하지 못했지만 그 사람의 이야기를 보면 어느정도 사실인것 같습니다.

오래전에 발표 일정을 정해놓고 3개월전에 회사에서 윈도와 호환할 수 있도록 했다는 이야기인데요...
이때까지 티맥스가 하는짓을 보면 충분히 그러고도 남을것 같습니다. 참 대한민국 IT 종사자들은 인내심이 강한것 같습니다. 만약 다른 분야였다면 총 파업이 일어났을 상황인것 같네요.

이번달 초 티맥스 윈도가 발표되었는데, 과연 MS의 그늘에서 벗어났다고 생각하시나요?

만약 윈도우 API를 티맥스에서 완전 하드코딩으로 구현했다고 한다면... 하나의 가정입니다.
티맥스 윈도우 개발자들은 MS의 기술문서(그래봤자 MSDN이겠지요?)를 보고 MS가 한짓을 그대로 흉내내었을겁니다. 그것도 잠도 못자면서 수개월 동안... 그늘에서 벗어났나요? 그 개발자들이 설마 리눅스 환경에서 개발을 진행했을까요?

또 다른 가정 하나... 리눅스의 Wine을 그대로 뱃겼다면... 참으로 더러운 상황이죠.
MS의 그늘을 벗어나기 위해 MS의 윈도우를 흉내낸 Wine을 뱃겼다! 음... 도대체 뭐랑 비교를 해야하나요..
심각한 가치관의 혼란에 빠집니다...

자 어째 어째 해서 발표는 하긴 했습니다. 발표회가 끝나고 사람들이 "올레!" 하면서 감탄사를 불렀습니까?
수많은 블로거들이 티맥스 윈도를 씹어대기 시작했지요. 그나마 기대를 하면서 말수를 아끼던 기자 및 블로거들도 그동안 쌓였던 말들을 풀어해치기 시작했습니다.

자 정리하자면

MS의 그늘을 벗어나려고 MS의 윈도우와 비슷한 운영체제를 만들었는데, 중간 중간 보여준 스샷은 윈도 캡쳐해서 합성한것이고, 막상 풀어해쳐보니 제대로 돌아가지도 않고, 인터페이스는 윈도와 아주 아주 비슷하더라... 라는게 핵심입니다.

제 생각을 다시 말하면

MS의 그늘을 벗어나려고 MS의 윈도우와 비슷한 운영체제를 만들려다가 돈은 돈대로 박아넣고 욕은 욕대로 먹고, 그나마 유지하던 회사의 이미지는 엉망진창이 되버리고, MS의 그늘 밑에도 못들어가는 상황이 되어버렸다.

라는 것이지요.

처음 부터 아예 그런말을 하지 않고 묵묵히 개발하다가 조용히 발표했으면 얼마나 좋았을까요?
그래도 엔지니어 출신인 회장이란 사람이 돈맛을 알아가지고 얼론 플레이하다가 개 발렸으니 얼마나 쪽팔리겠어요.
그러니 처음부터 말조심을 하셨어야죠.
저랑은 별로 상관없지만 그냥 우리나라에서 일어난 일이라 정말 부끄럽습니다.
발표회때 개판 친 티맥스 윈도가 얼마 뒤에 좀더 개량해서 나올거라던데. 제발 삽질 고만하시고, 하던거나 쭉 하시기 바랍니다.
2009/07/28 05:15 2009/07/28 05:15
Posted by 인생을 설계하는 프로그래머
여러분 드디어 우리나라가 국산 OS를 쓸 순간이 다가오고 있습니다.

아주 오래전부터 티맥스라는 회사(.. SI 회사입니다)가 윈도우 호환 OS를 만들고 있답니다.
오늘 홈페이지에 가보니 7월 7일에 정식 발표라고 하는군요! 저의 짧은 소견으로는 OS를 만든다고 하면 보나 마나 리눅스 커널 약간 고친거 정도 되겠지만... 글쎄 티맥스는 윈도우즈 호환 운영체제를 만든다는군요...

일단 윈도우즈 호환이 될려면 Win32 API가 전부(그러니깐 100%는 안되더라도 시스템쪽 부분은 99.9%는 되야겠죠?) 구현이 된다는 얘기인데... 참으로 멋진 회사입니다. 하하하...

그런데 티맥스 윈도가 나온다 나온다 하고 벌써 얼마나 미뤄진지 모르겠네요... 7월 7일이라고 못박아놨으니 조만간에 나오기는 나올 모양입니다.
인터넷의 반응을 한번 쭉 살펴봤는데요. 대부분 그냥 피식하는 정도입니다. 물론 저도 마찬가지고요...

대부분의 엔지니어들 또는 어느정도 식견이 있는 사람들은 "어디 한번 만들어내나 두고보자"는 식이던데요.

뭐 어떻게 보면 당연한 것일 수도 있고 티맥스의 말을 빌리자면 "고정관념"이라는 겁니다. 하하..

그럼 제가 생각하는 티맥스 윈도우에 대해서 한번 짚어 볼까요? 왜 이놈이 그렇게 논란거리가 되고 있는가..

1. 운영체제 발표를 도대체 얼마나 미루나?
이미 티맥스는 임베디드 운영체제를 만든것으로 알고 있는데 제가 봤을땐 거의 uCOS 수준입니다. 간단한거지요. 그리고 제가 알기로는 티맥스 윈도우가 아니고 티맥스 OS 였습니다. 계속 미루더니 이름을 티맥스 윈도우로 바꾸고, 사람들이 기대 반 의심 반 기다리는 동안 그 흔한 스크린샷 한번 안보여 주는지.. 아.. 세미나 현장에서 잠깐 스크린 샷이나 구동모습을 보이긴 했습니다만... 몇명 모아놓고 보여주는거랑 인터넷에 공개하는거랑 뭔가가 좀 다르겠지요. 결국 7월 7일에 발표한다고 얘기는 해놨지만 그것도 연기될지도 모른다는 생각이 드네요.

2. 리눅스에 Wine을 붙인거 아닌가?
리눅스에서 윈도 프로그램을 돌릴 수 있는가? 라는 질문은 "그럴수도 있다"라고 할 수 있겠네요. Wine이라는 공개 소프트웨어를 사용하면 어느정도까지는 윈도 프로그램을 돌릴 수 있습니다. 일단 윈도 프로그램을 돌릴려면 Win32 API를 지원해야하는데, 그래도 태생이 다른데 리눅스에서 윈도 프로그램을 100% 돌릴 순 없습니다. 속도도 느리고요. 그래서 잘 안쓰죠. 그나마 윈도를 에뮬레이팅 시킨것이 Wine 이니깐 티맥스 윈도우에서도 대략 Wine과 비슷하게 동작하지 않을까 라고 하는게 전문가들의 생각입니다. 그럼 결국 리눅스가 공개되어 있고 Wine도 공개되어 있으니 대략 짬뽕한 운영체제? 라는 말이 나올것도 같군요.. 근데 GPL이 적용되면 티맥스 운영체제 소스도 공개되어야 하고 나중에 뽀록나는거 아니겠습니까?

3. 어째 테스트 한다는 소리는 하나도 없는거냐?
7월 7일 출시라고 못박았는데 어디서 베타 테스트 한다는 소리는 전혀 듣지 못했습니다. 진짜 한번 테스트 해보고 싶은데 말이죠. 회사 내에서 수천명의 엔지니어들을 이용하여 테스트를 진행할 수도 있겠지만... 어디 운영체제가 CPU 하나 덜렁 있다고 돌아가는 소프트웨어도 아니고 적어도 하드웨어 개발업체에는 드라이버 호환성등을 위해서 테스트를 반드시 진행해야 할건데요... 하물며 OS로 먹고사는 기업인 MS도 그런 부분에 엄청나게 신경쓰고 하드웨어 벤더의 테스트 결과에 만족하지 못해서 일반인들에게 테스트를 하고 있지요. 만약에 티맥스에서 정말 테스트를 않하고 OS를 출시한다면... 대략 개념없는거네요. 티맥스에서는 드라이버 수준까지 호환성을 끌어올린다고 하는데... MS가 운영체제를 발로 만든것도 아니고... 터무니 없는 소리로 들립니다. ㅋ

4. 정말... 만에 하나 정말 만들었다면 경쟁력은 있는것이냐?
경쟁력이 없는거 왜 만들고 있는지 모르겠네요. 과연 티맥스 윈도우가 MS의 윈도와 비교하여 경쟁력이 있는가에 대한 질문을 해볼 수 있겠는데요... 이름 자체도 티맥스 윈도고 컨셉이 MS 윈도 호환 OS입니다. 한마디로 윈도 짝퉁인거죠. 뭐 어찌 어찌 해서 99.9% 호환성 있게 동작한다고 합시다. 그럼 가격 면에서 유리한 고지를 차지하게 되면 경쟁력이 생길 수도 있다는건데... MS가 가만히 두겠습니까? 그리고 운영체제가 에러 한번 난다고 해서 넘어가는 소프트웨어도 아니고 에러 한번 나면 사람 짜증나고 다른 프로그램도 안돌아갈건데... 몇만원 아끼자고 짝퉁을 쓰는 바보들은 없겠지요? 그럼 다른 부분에서 경쟁력이 있어야 하는데 뭐가 있을까 흐음...
또는 경쟁력이 없는데 그냥 객기로 만들어본거라면 이거 진짜 개념없습니다. 수천명의 인력을 거의 3년동안 투입해서 만든게 객기 OS라면... 아이고 생각도 하기 싫습니다.

5. 전 네티즌을 상대로 뻥을 치고 있는것이다?
많은 의견들이 티맥스에서 희대의 사기극을 벌이고 있다는겁니다. 그래도 수십억씩 매출을 올리는 회사가 그럴리 없겠지만 저도 사실 약간씩 의심이 들긴 합니다. 1, 2, 3, 4 항목을 읽어보시는 여러분들도 약간 그런 생각이 들지 모르겠네요. 도대체 OS를 만든다고 했을때부터 구라 기미가 약간 보이다고 날이 가까워 질 수록 더 거짓같다는 생각이 왜 계속 드는건지

이상 인터넷상에서 떠도는 이야기를 정리한건데, 검색을 하면 할 수록 정말 뻥같은 느낌을 지울 수가 없군요.

결론을 이야기 하자면 일단 무슨 평가를 내리기 전에.. 우리가 아직 못봤으니깐 말이지요. 7월 7일까지 기다려보는 수 밖에 없습니다. 많은 엔지니어들이 기대를 걸고 있습니다. 정말로 써먹을 수 있는 국산 OS...
하지만, 대략 리눅스에 Wine 붙인것이거나, 기대에 어긋나는 그런 파렴치한 행동을 한다면 티맥스는 거의 망한다고 볼 수 있겠네요.

제가 이렇게 글을 쓰고 있는것도 막연한 기대감 때문이겠지요. 나중에 정말 티맥스 윈도우가 엄청나게 좋게 만들어져서 제가 "나쁜놈"이라거나 모욕죄로 법정 소송이 걸려도 괜찮습니다. 그래도 괜찮으니 티맥스 윈도우 잘 만들어졌으면 좋겠습니다. 우리나라 모든 엔지니어들이 바라고 있을겁니다.
2009/06/11 12:00 2009/06/11 12:00
Posted by 인생을 설계하는 프로그래머
이새끼 병신인지...

야단치면 반성하는 기미를 보여야 되는데 뭘 잘했다고 또 뻥뻥 터뜨리나요..

정말 듣보잡인가요?

내가 듣보잡이란 단어를 좋아하지 않아서 잘 쓰지 않는 편인데... 얘는 정말 듣보잡인가봅니다.

"듣도 보도 싫은 잡놈"

전유경 : 개새끼랑 제대로 된 논쟁이 되긴 힘들것 같아서 패스...
2009/05/30 00:44 2009/05/30 00:44
Posted by 인생을 설계하는 프로그래머
<< PREV : [1] : [2] : [3] : [4] : [5] : ... [14] : NEXT >>

BLOG main image
by 인생을 설계하는 프로그래머

카테고리

Life Designer (139)
컴퓨터공학박사 (80)
세상 (24)
건강한 삶 (8)
I Love Korea (2)
海兵隊 (3)
Common Sense! (4)
Game is Life! (12)
Life of Digital (4)
추억으로의 여행 (0)
애마 카돌이! (1)
세상속으로! (1)

글 보관함

달력

«   2010/09   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30