터미널에서 브랜치 도움말을 보려다가 실수로 브랜치를 생성하고 원격저장소(remote)에 올리고 말았다.

ZMBP:mobile zeidepeace$ git help branch
브랜치 도움말 보기
ZMBP:mobile zeidepeace$ git branch help 
help라는 이름의 브랜치 생성하기


브랜치를 삭제하는 명령어는 

ZMBP:mobile zeidepeace$ git branch [-d|-D]


-d는 모두 머징이 된 상태여야 브랜치가 삭제가 되며 -D는 머징하고 상관없이 브랜치가 삭제된다.

브랜치를 삭제하고 전체리스트(-a)를 확인하면

ZMBP:mobile zeidepeace$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/help


로컬저장소에서는 삭제가 되었는데 원격저장소에 올라간 브랜치는 삭제되지 않고 남아있는게 보인다.

http://help.github.com/remotes/ 에서 찾아보면 원격저장소에 올라간 브랜치/태그를 삭제하는 방법이 나와있다.

 

ZMBP:mobile zeidepeace$ git push origin :help
remote: fatal: bad object 0000000000000000000000000000000000000000
remote: bb/acl: hyo is allowed. accepted payload.
remote: fatal: bad object 0000000000000000000000000000000000000000
To git@bitbucket.org:d/mobile.ios.git
 - [deleted]         help 


다시 확인하면 

ZMBP:mobile zeidepeace$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master 


브랜치가 삭제된 것을 알 수 있다.

Posted by zeide
,

[git] 충돌 체험기

자료 2011. 11. 9. 09:46
비록 2인(나포함)이지만 DVCS로 소스를 관리하고 있다. 저장소는 bitbucket.org(빛바굴이라고 부른다).
오늘은 오랜만에 A님께서 푸시를 하셨다.

직진하는 곰돌이가 나, 알 수 없는 도형 A.


그때 나는 무언가 로그를 보겠다고 소스에 손을 대고 있었다.
그 와중에 pull을 하니...

ZMBP:************* zeidepeace$ git pull
remote: Counting objects: 23, done.
remote: Compressing objects: 100% (15/15), done.
remote: Total 15 (delta 11), reused 0 (delta 0)
Unpacking objects: 100% (15/15), done.
From bitbucket.org:########/*************
   559aad6..9e2d63d  master     -> origin/master
Updating 559aad6..9e2d63d
error: Your local changes to the following files would be overwritten by merge:
Classes/Controllers/MobileWeb/MobileWebViewController.m
Classes/Extends/MOKMutableURLRequest.m
mok.front.ios.xcodeproj/project.pbxproj
mok_front_ios-Info.plist
mok_front_ios_Prefix.pch
Please, commit your changes or stash them before you can merge.
Aborting

예상했던대로 일이 생겼다. 
지금 이 상황은,  5개의 파일을 로컬저장소에서 수정하고 있었는데 원격저장소의 파일을 불러와(pull) 덮어씌우게 된다고 말해주는 것이다.

그래서 다음과 같이 처리했다.
1. 지금 상황을 commit까지만 한다.
2. HEAD를 이전으로 돌린다.
ZMBP:************* zeidepeace$ git reset --hard HEAD@{1} 
3. 로컬저장소에서 pull한다. 

마지막에 푸시를 해서 가지를 늘려보았다.

양쪽 소스를 머징하는게 아니라 받기만 하면되는지라 간단하게 끝났다.
 
PS)이력을 볼 수 있다.
ZMBP:************* zeidepeace$ gitk 

 
Posted by zeide
,
명령어로는 잘 몰라서 
결국

vi .git/config
파일을 열고

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
        ignorecase = true
[remote "origin"]
        fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
        remote = origin
        merge = refs/heads/master
[user]
        user.name = name
        user.email = email@email.net 
삭제하고

:wq!
저장 종료

git config --list
 
user.name=zeide
user.email=zeide0325@gmail.com
core.excludesfile=/Users/zeidepeace/.gitignore_global
difftool.sourcetree.cmd=opendiff "$LOCAL" "$REMOTE"
difftool.sourcetree.path=
mergetool.sourcetree.cmd=/Applications/SourceTree.app/Contents/Resources/opendiff-w.sh "$LOCAL" "$REMOTE" -ancestor "$BASE" -merge "$MERGED"
mergetool.sourcetree.trustexitcode=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
 
확인.
 
Posted by zeide
,

[자료]Type System

자료 2010. 5. 22. 22:05
슬라이드 자료를 보던 중에 type system이 뭔지 몰라서 검색.

http://en.wikipedia.org/wiki/Type_system

즉, 타입시스템은 값(Value)을 타입(Type)으로 연관짓는다. 예를 들어 Java에서 value는 type을 선언하고 그 type에 맞는 값을 할당해야 한다. 그렇지 않으면 컴파일시 에러가 발생한다(Java는 static type system).

왜 몰랐지;
Posted by zeide
,
fckeditor를 사용하다가
iframe으로 뜬 팝업에서 이미지 추가 버튼을 누르면
이미지 추가 창이 이미 떠있는 팝업의 뒤로 가려져서 사용할 수 없게 되는 경우가 있다.
이럴 때는 이미지 추가 창이 생성되는 iframe의 zindex를 수정해주어야 한다.

fckeditorcode_ie.js
fckeditorcode_gecko.js
를 열면 iframe을 생성하는 부분이 있는데

var FCKDialog=(function(){
var A;
var B;
var C;
var D=window.parent;
while (D.parent&&D.parent!=D){
 try{
   if (D.parent.document.domain!=document.domain) 
    break;
   if (D.parent.document.getElementsByTagName('frameset').length>0)
    break;
 }catch (e){
    break;
};
D=D.parent;
};
var E=D.document;
var F=function(){if (!B)B=FCKConfig.FloatingPanelsZIndex+9999999;return++B;};
var G=function(){
if (!C) return;
var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;
FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'}
);
};
return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,resizable){
if (!A) this.DisplayMainCover();
var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};
FCK.ToolbarSet.CurrentInstance.Selection.Save(true);
var J=FCKTools.GetViewPaneSize(D);
var K={ 'X':0,'Y':0 };
var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));
if (L) K=FCKTools.GetScrollPosition(D);
var M=Math.max(K.Y+(J.Height-height-20)/2,0);
var N=Math.max(K.X+(J.Width-width-20)/2,0);
var O=E.createElement('iframe');FCKTools.ResetStyles(O);
O.src=FCKConfig.BasePath+'fckdialog.html';
O.frameBorder=0;
O.allowTransparency=true;
FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});
O._DialogArguments=I;
E.body.appendChild(O);
O._ParentDialog=A;A=O;},

OnDialogClose:function(dialogWindow){
var O=dialogWindow.frameElement;
FCKDomTools.RemoveNode(O);
if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}
else{if (!FCKBrowserInfo.IsIE) FCK.Focus();
this.HideMainCover();
setTimeout(function(){ A=null;},0);
FCK.ToolbarSet.CurrentInstance.Selection.Release();}},

DisplayMainCover:function(){
C=E.createElement('div');
FCKTools.ResetStyles(C);
FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});
FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);
if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){
var Q=E.createElement('iframe');
FCKTools.ResetStyles(Q);
Q.hideFocus=true;
Q.frameBorder=0;
Q.src=FCKTools.GetVoidUrl();
FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px',
'filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});
C.appendChild(Q);};
FCKTools.AddEventListener(D,'resize',G);
G();
E.body.appendChild(C);
FCKFocusManager.Lock();
var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');
R._fck_originalTabIndex=R.tabIndex;
R.tabIndex=-1;},

HideMainCover:function(){
FCKDomTools.RemoveNode(C);
FCKFocusManager.Unlock();
var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');
R.tabIndex=R._fck_originalTabIndex;
FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},

GetCover:function(){return C;}
};
})();
원하는 값으로 수정해주면 된다.
(9999999는 이미 수정된 값임.)
Posted by zeide
,

이클립스 워크스페이스에서 프로젝트를 삭제하였는데도 불구하고 
프로젝트를 자꾸 로드하려고 하면서 경로를 못찾는다는 에러가 뜰 때가 있다.
워크스페이스를 찾아보면 분명히 없다.

그렇다면 워크스페이스에 있는 metadata를 확인해봐야 한다.
\workspace\.metadata\.plugins
\workspace\.metadata\.plugins\org.eclipse.ui.workbench
에서
workbench.xml파일을 수정했더니 에러가 뜨지 않았다.

org.eclipse.wst.sse.core.prefs파일을 보면
task-tag-projects-already-scanned=
jeus-setting,ec.gds.GoodsDisplayCpnt,ec.gds.SpePriceCpnt,ec.gds.NewItemZoneCpnt,
ec.cms.NewsCpnt,ec.lotte.bean.lc,RemoteSystemsTempFiles
바꾸어주었다.

결과적으로 어느 쪽이 맞는 방법인지는 잘 모르겠다.

Posted by zeide
,

[SVN] 설치하기

자료 2009. 9. 14. 13:33

갈릴레오를 쓰다가 프로젝트를 위해 이클립스SDK를 받았다.
SVN을 설치해야 하는데 어떻게 했었는지 그새 잊어버려서...

주소를 입력한다.
서브버전의 버전이 높아서 안된다. 즉, 이클립스가 후달린다...

버전을 1.2.x로 했더니 된다.
Posted by zeide
,

[Ajax] 인 프랙티스

자료 2009. 8. 21. 09:58

일반적으로 RPC(원격 프로시저 호출)는 원격 메서드의 시그니처를 흉내내는 로컬 프록시 인터페이스(스텁)를 생성하여 동작한다. 로컬에 있는 코드가 로컬 인터페이스를 호출하고 로컬 시스템에 있는 RPC 에이전트가 호출에 필요한 입력 데이터를 마샬링하고 반대편 원격 서버에 정보를 전달하는데 필요한 네트워크 처리를 수행하게 된다. 원격의 에이전트는 전달받은 데이터를 적절한 형식으로 변환하고 실제 메서드 호출을 수행한다. 메서드가 리턴하면 반환한 데이터는 마샬링되어 다시 로컬 에이전트로 반환된다. 그리고 프록시 스텁으로부터 제어권을 최초로 호출한 곳으로 돌려준다.

DWR이 RPC가 아닌 이유

Posted by zeide
,

[자료] text/plain

자료 2009. 7. 30. 15:49
response.setContentType("text/plain"); 에서 text/plain은 무엇인가?

In computing, plain text is a term used for an ordinary "unformatted" sequential file readable as textual material without much processing.

The encoding has traditionally been either ASCII, one of its many derivatives such as ISO/IEC 646 etc., or sometimes EBCDIC. No other encodings are used in plain text files which neither contain any (character-based) structural tags such as heading marks, nor any typographic markers like bold face, italics, etc.

Unicode is today gradually replacing the older ASCII derivatives limited to 7 or 8 bit codes. It will probably serve much the same purposes, but this time permitting almost any human language as well as important punctuation and symbols such as mathematical relations (≠ ≤ ≥ ≈), multiplication (× •), etc, which are not included in the more restricted ASCII set.

unformatted text를 지칭하는 용어.

default ContentType.

Posted by zeide
,

[Ant] 기본

자료 2009. 7. 9. 17:29
<project name="project_name" default="all" basedir=".">
 <target name="all" depends="complie, dist, clean">
 
 </target>
 <target name="complie">
 
 </target>
 <target name="dist" depends="complie">
 
 </target>
 <target name="clean">
 
 </target>
</project>

property - 속성 지정
mkdir - 새로운 디렉터리 생성
copy - 파일, 디렉터리 복사
javac - 컴파일
jar - jar 파일 생성
javadoc - javadoc 생성
delete - 파일, 디렉터리 삭제
Posted by zeide
,

[Eclipse] 테스트

자료 2009. 7. 7. 15:13
단위 테스트(unit test)
프로그램의 기본 단위가 내부 설계 명세에 맞게 제대로 동작하는지를 테스트하는 것이다. Java에서는 기본 단위가 클래스이므로 각 클래스에 포함된 메서드가 제대로 동작하는지를 테스트하면 된다. 따라서 단위 테스트는 범위가 매우 한정된다.

기능 테스트(functional test)
소프트웨어 전체가 제대로 동작하는지를 확인하는 테스트다. 전체 소프트웨어 시스템을 하나의 블랙박스로 보고 사용자의 입장에서 각 기능이 제대로 동작하는지를 테스트하는 것이다. 기능 테스트는 보통 별도의 테스트 팀이 수행하며, 개발할 때와는 다른 도구와 기술을 사용한다.
Posted by zeide
,
500 Error Internal Server Error

Introduction

The Web server (running the Web Site) encountered an unexpected condition that prevented it from fulfilling the request by the client (e.g. your Web browser or our CheckUpDown robot) for access to the requested URL.

This is a 'catch-all' error generated by the Web server. Basically something has gone wrong, but the server can not be more specific about the error condition in its response to the client. In addition to the 500 error notified back to the client, the Web server should generate some kind of internal error log which gives more details of what went wrong. It is up to the operators of the Web server site to locate and analyse these logs.

500 errors in the HTTP cycle

Any client (e.g. your Web browser or our CheckUpDown robot) goes through the following cycle when it communicates with the Web server:

  • Obtain an IP address from the IP name of the site (the site URL without the leading 'http://'). This lookup (conversion of IP name to IP address) is provided by domain name servers (DNSs).
  • Open an IP socket connection to that IP address.
  • Write an HTTP data stream through that socket.
  • Receive an HTTP data stream back from the Web server in response. This data stream contains status codes whose values are determined by the HTTP protocol. Parse this data stream for status codes and other useful information.

This error occurs in the final step above when the client receives an HTTP status code that it recognises as '500'.


from google
Posted by zeide
,

HTTP Error 408 - Request timeout

Introduction

Your Web server thinks that there has been too long an interval of time between 1) the establishment of an IP connection (socket) between the client (e.g. your Web browser or our CheckUpDown robot) and the server and 2) the receipt of any data on that socket, so the server has dropped the connection. The socket connection has actually been lost - your Web server has 'timed out' on that particular socket connection. The request from the client must be repeated - in a timely manner.

408 errors in the HTTP cycle

Any client (e.g. your Web browser or our CheckUpDown robot) goes through the following cycle:

  • Obtain an IP address from the IP name of your site (your site URL without the leading 'http://'). This lookup (conversion of IP name to IP address) is provided by domain name servers (DNSs).
  • Open an IP socket connection to that IP address.
  • Write an HTTP data stream through that socket.
  • Receive an HTTP data stream back from your Web server in response. This data stream contains status codes whose values are determined by the HTTP protocol. Parse this data stream for status codes and other useful information.

This error occurs in the final step above when the client receives an HTTP status code that it recognises as '408'.

Fixing 408 errors - general

408 errors are often difficult to resolve. They typically involve one-off variations in system workload or operations.

If you see persistent 408 errors, the first thing to consider is the workload on your Web server - particularly around the time the 408 errors were generated. If this is light, then you also need to consider workload on the client system. If the computer systems on both ends of the socket connection seem to be running normally, then temporary Internet surges may be to blame.

Fixing 408 errors - CheckUpDown

This error is highly unlikely to occur on your CheckUpDown account, because there is usually only a tiny interval of time (milliseconds) between our 1) opening of the socket and 2) writing the HTTP data stream through that socket. In exceptional circumstances, this interval may increase because of some operations on our computer systems e.g. we temporarily suspend an executing process and this happens immediately after the socket was created. Or the two steps may follow quickly on our systems, but the second step encounters an unreasonable delay on the Internet. The acceptable interval between the two steps could also be set very low on your Web server e.g. your server is very busy, and has become a bit 'impatient' with attempted connections it views as a bit slow.

Any of these conditions may generate an 408 error. But they are all fairly unlikely to occur. In normal IP communications, the time interval between the two steps should be much less than 10 seconds, which should be completely acceptable to your Web server. Please contact us (email preferred) if you see persistent 408 errors, so that we can agree the best way to resolve them.

from google
Posted by zeide
,

[자료] SOAP

자료 2009. 4. 8. 00:10

SOAP(Simple Object Access protocol)
- 일반적으로 널리 알려진 HTTP,HTTPS,SMTP등을 사용하여 XML기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 형태의 프로토콜.

SOAP, originally defined as Simple Object Access Protocol, is a protocol specification for exchanging structured information in the implementation of Web Services in computer networks. It relies on Extensible Markup Language (XML) as its message format, and usually relies on other Application Layer protocols (most notably Remote Procedure Call (RPC) and HTTP) for message negotiation and transmission. SOAP can form the foundation layer of a web services protocol stack, providing a basic messaging framework upon which web services can be built.

As a layman's example of how SOAP procedures can be used, a SOAP message could be sent to a web service enabled web site (for example, a house price database) with the parameters needed for a search. The site would then return an XML-formatted document with the resulting data (prices, location, features, etc). Because the data is returned in a standardized machine-parseable format, it could then be integrated directly into a third-party site.

The SOAP architecture consists of several layers of specifications for message format, message exchange patterns (MEP), underlying transport protocol bindings, message processing models, and protocol extensibility. SOAP is the successor of XML-RPC, though it borrows its transport and interaction neutrality and the envelope/header/body from elsewhere (probably from WDDX).

from wikipedia

Posted by zeide
,

[자료] SOA

자료 2009. 4. 7. 23:56
SOA(Service-Oriented Architecture)
- 서비스 지향 아키텍처(서비스 기반 아키텍처)

A service-oriented architecture (SOA) is a group of services that communicate with each other. The process of communication involves either simple data-passing between a service provider and service consumers, or a more complicated system of two or more service providers. Intercommunication implies the need for some means of connecting two or more services to each other.

SOAs build applications out of software services. Services comprise intrinsically unassociated, loosely coupled units of functionality that have no calls to each other embedded in them. Each service implements one action, such as filling out an online application for an account, viewing an online bank-statement, or placing an online booking or airline ticket order. Instead of services embedding calls to each other in their source code, they use defined protocols that describe how one or more services can "talk" to each other.

A software developer, software engineer, or business process expert associates individual SOA objects by using orchestration. In the process of orchestration, a software engineer or process engineer associates relatively large chunks of software functionality (services) in a non-hierarchical arrangement (in contrast to a class hierarchy) by using a special software tool that contains an exhaustive list of all of the services, their characteristics, and a means to record the designer's choices that the designer can manage and the software system can consume and use at run-time.

SOA may be used for business applications, or in government and the military.

Underlying and enabling all of this requires metadata in sufficient detail to describe not only the characteristics of these services, but also the data that drives them. Programmers have made extensive use of XML in SOA to structure data that they wrap in a nearly exhaustive description-container. Analogously, WSDL typically describe the services themselves, while SOAP describes the communications protocols. Whether these description languages are the best possible for the job, and whether they will remain the favorites in the future, remains an open question. In the meantime SOA depends on data and services that are described using some implementation of metadata that should meet the following two criteria:

  1. the metadata should come in a form that software systems can use to configure dynamically by discovery and incorporation of defined services, and also to maintain coherence and integrity
  2. the metadata should come in a form that system designers can understand and manage with a reasonable expenditure of cost and effort

SOA's goal is to allow users to string together fairly large chunks of functionality to form ad hoc applications that are built almost entirely from existing software services. The larger the chunks, the fewer the interface points required to implement any given set of functionality; however, very large chunks of functionality may not prove sufficiently granular for easy reuse. Each interface brings with it some amount of processing overhead, so there is a performance consideration in choosing the granularity of services. The great promise of SOA suggests that the marginal cost of creating the n-th application is low, as all of the software required already exists to satisfy the requirements of other applications. Ideally, one requires only orchestration to produce a new application.

For this to operate, no interactions must exist between the chunks specified or within the chunks themselves. Instead, the interaction of services (all of them unassociated peers) is specified by humans in a relatively ad hoc way with the intent driven by newly emergent requirements. Thus the need for services as much larger units of functionality than traditional functions or classes, lest the sheer complexity of thousands of such granular objects overwhelm the application designer. Programmers develop the services themselves using traditional languages like Java, C#, C, C++ or COBOL.

SOA services feature loose coupling, in contrast to the functions that a linker binds together to form an executable, to a dynamically linked library or to an assembly. SOA services also run in "safe" wrappers such as Java or .NET, and other programming languages that manage memory allocation and reclamation, allow ad hoc and late binding, and provide some degree of indeterminate data typing.

As of 2008, increasing numbers of third-party software companies offer software services for a fee. In the future, SOA systems may consist of such third-party services combined with others created in-house. This has the potential to spread costs over many customers and customer uses, and promotes standardization both in and across industries. In particular, the travel industry now has a well-defined and documented set of both services and data, sufficient to allow any reasonably competent software engineer to create travel-agency software using entirely off-the-shelf software services. Other industries, such as the finance industry, have also started making significant progress in this direction.

SOA as an architecture relies on service-orientation as its fundamental design principle. If a service presents a simple interface that abstracts away its underlying complexity, users can access independent services without knowledge of the service's platform implementation.

SOA relies on services exposing their functionality via interfaces that other applications and services can read to understand how to utilize those services.

Relative to typical practices of earlier attempts to promote software reuse via modularity of functions or by use of predefined groups of functions known as classes, SOA's atomic-level objects often end up 100 to 1,000 times larger

from wikipedia

Posted by zeide
,

[자료] 웹2.0

자료 2009. 4. 6. 23:54
모든 자료는 구글링(주로 위키)을 통한 결과.

웹2.0
- 단순한 웹 사이트의 집합체를 웹1.0으로 보고 웹 애플리케이션을 제공하는 하나의 플랫폼으로서의 발전을 지칭, 현재 인터넷 업계의 신기술이 지향하는 경향을 일컫는 말.
Tim O'Reilly와 John Battelle가 정리한 요소로는
플랫폼으로서의 웹
원동력이 되는 데이터
참여 구조에 의한 네트워크 효과
여러 시공간에 흩어져 있는 독립적인 개발자들이 공통으로 참여해(오픈소스) 혁신하는 시스템이나 사이트
콘텐츠와 서비스 신디케이션을 통한 가벼운 비지니스 모델
기존의 소프트웨어 개발 사이클과 다른 영원한 베타
롱테일의 힘을 극대화시키는 소프트웨어

웹2.0기술을 사용하여 작성되었다고 볼 수 있는 웹 사이트의 기준은
- 기술적
웹 표준,CSS, 의미적으로 유효한 XHTML 마크업, 마이크로포맷
AJAX와 같은 비동기식 웹 애플리케이션 기법
RSS/Atom 형태의 데이터 신디케이션
RSS/Atom 데이터 수집
간결하고 의미있는 URL
웹로그 글쓰기 지원
REST 혹은 XML, SOAP 형태의 웹 서비스
사회적 네트워크의 요소
- 일반 
콘텐츠 접근에 많은 제약이 따르는 (회원 가입제)사이트와 같은 '울타리 친 정원'(walled garden)이 되어서는 안 된다. 사이트의 비회원을 포함하여 누구라도 공개적으로 쉽게 자료를 얻을 수 있어야 한다.
사용자는 사이트에서 주체로서 자신의 데이터를 직접 소유할 수 있어야 한다.
순수 웹 기반 (표준화) - 대부분의 웹 2.0 사이트는 브라우저만으로 모든 이용이 가능해야 한다.

온톨로지Ontology
시맨틱 웹 기술과 함께 주목받음(자연어 검색).
- 사전적으로 철학의 존재론에 해당.
- 사람들이 사물에 대해 생각하는 바를 추상화하고 공유한 모델로, 정형화되어 있고 개념의 타입이나 사용상의 제약 조건들이 명시적으로 정의된 기술, 온톨로지는 일단 합의된 지식을 나타내므로 어느 개인에게 국한되는 것이 아니라 그룹 구성원이 모두 동의하는 개념이다. 그리고 프로그램이 이해할 수 있어야 하므로 여러 가지 정형화가 존재한다. 이는 전산학과 정보 과학에서 특정한 영역을 표현하는 데이터 모델로서 특정한 영역에 속하는 개념과 개념 사이의 관계를 기술하는 정형어휘의 집합으로 정의된다. 예를 들어 "종-속-과-목-강-문-계"로 분류되는 생물과 생물 사이의 종의 관계, 영어 단어 사이의 관계 같은 것을 정형 어휘로 기술하면 각각 온톨로지라고 할 수 있다. 정형 언어(Formal Language)로 기술된 어휘의 집합인 온톨로지는 추론(Reasoning, Inference)을 하는 데에 사용된다. 웹의 등장은 전통적인 정보검색을 비롯하여 지식관리와 일반 상거래 등 사회 전 분야의 변혁을 초래하였다. 특히 웹 정보 검색은 소장 자료를 대상으로 하는 제한된 검색에서 웹을 통해 접근할 수 있는 전자자원을 대상으로 하는 검색을 가능하게 하였다. 웹의 급속한 발달로 인해 검색 대상 범위의 확대는 보다 정교한 검색을 필요로 하게 되었으며, 지능화된 정보 검색 시스템 개발을 촉진하는 계기가 되었다. 이런 계기를 바탕으로 웹자원을 효과적으로 관리할 수 있는 정보 검색의 새로운 도구의 필요성이 대두되었다. 온톨로지는 시맨틱 웹을 구현할 수 있는 도구로써 지식개념을 의미적으로 연결할 수 있는 도구이다
- 컴퓨터에서도 사람이 갖고 있는 개념과 같은 것을 일종의 데이터베이스 형태로 만드는 기술을 온톨로지 기술이라고 부른다.

시맨틱 웹
- 현재의 인터넷과 같은 분산환경에서 리소스(웹 문서, 각종 파일, 서비스 등)에 대한 정보와 자원 사이의 관계-의미정보(Semanteme)를 기계(컴퓨터)가 처리할 수 있는 온톨로지 형태로 표현하고 이를 자동화된 기계(컴퓨터)가 처리하도록 하는 프레임워크이자 기술이다.
시맨틱 웹은 XML에 기반한 시맨틱 마크업 언어를 기반으로 한다. 가장 단순한 형태인 RDF는 <Subject, Predicate, Object>의 트리플 형태로 개념을 표현한다. Subject, Predicate, Object는 XML의 URI 형태로 표현되며 시맨틱 웹은 이러한 트리플 구조에 기반하여 그래프 형태로 의미정보인 온톨로지를 표현한다. 시맨틱 웹의 목적은 자동화된 기계가 해석할 수 있는 일종의 표준 의미정보 교환의 수단이 되는 것에 있다. 대중적으로 가장 널리 알려진 시맨틱 웹의 활용 예는 RSS이다.

토픽 맵
- 분산환경하에서 지식구조를 정의하고 정의된 구조와 지식자원을 연계하는데 쓰이는 기술표준이며, 정보자원의 구성, 추출, 네비게이션에 관련한 새로운web 3.0의 패러다임.
- 시맨틱 웹(Semantic Web)의 지식표현 방법론으로, 차세대 웹환경(웹 3.0)에 대한 해결방안으로 많은 분야에서 인정받고 있는 기술.
시멘틱 웹 구현을 위한 지식표현 기술 및 방법론
국제표준화 기구인 ISO/IEC 13250 기술표준
정보를 상호 연관성에 따라 연결하고 조직하여 지식 구조를 맵(Map)형태로 표현
의미론적 연관관계 검색에 탁월한 기술
비구조화되고 분산되어 있는 정보를 효율적으로 통합
정보의 연관성을 지도와 같이 표현하여 대용량의 정보를 분류하고 연관관계에 따라 검색하는데 사용할 수 있게하는 기술을 말한다. 토픽맵은 지식층과 정보층의 이중 구조로 구성된다. 지식층은 기존의 정보 리소스 위에 구축하는 지식의 구조로서 특정 주제를 나타내는 Topic과 주제들간의 연관관계를 나타내는 Association으로 구성된다. 정보층은 정보 리소스를 나타내며, 지식층과 정보층은 Occurrence를 통해 상호 연결되어 지식의 위치정보를 표현한다. 따라서 기존의 홈페이지나 데이터의 변경 없이 토픽간의 연관정보를 이용하여 원하는 정보로의 경로를 보다 빠르고 정확하게 안내할 수 있다.

Posted by zeide
,

일단 db테이블

CREATE TABLE MEMBER_BOARD
(
 ID     VARCHAR2 (20) NOT NULL,
 PASS   VARCHAR2 (20) NOT NULL,
 MAIL   VARCHAR2 (40) NOT NULL
);

ALTER TABLE MEMBER_BOARD ADD(
 PRIMARY KEY (ID));

ALTER TABLE MEMBER_BOARD ADD(
 UNIQUE (MAIL));

(스크립트 긁어왔음...원래는 한 작업;)


플렉스

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" height="302" width="440" backgroundColor="#ffffff">
<mx:Script>
 <![CDATA[
  import mx.controls.Alert;
  public function chkpass():void{
   var pass3:String=pass.currentState;
   var pass4:String=pass2.currentState;
   if(!pass3==pass4){
    Alert.show("패스워드를 확인해주세요","잠깐");
   }
  }
 ]]>
</mx:Script>
 <mx:Form x="54" y="17" width="323" height="268" backgroundColor="#bc8f8f" cornerRadius="10">
  <mx:FormHeading label="회원가입" fontSize="14" fontWeight="bold"/>
  <mx:FormItem label="아이디" fontSize="12">
   <mx:TextInput id="myid"/>
  </mx:FormItem>
  <mx:FormItem>
   <mx:Button label="중복확인" fontSize="12" themeColor="#FFFFFF"/>
  </mx:FormItem>
  <mx:FormItem label="패스워드" fontSize="12">
   <mx:TextInput displayAsPassword="true" id="pass"/>
  </mx:FormItem>
  <mx:FormItem label="패스워드 확인" fontSize="12">
   <mx:TextInput displayAsPassword="true" id="pass2" />
  </mx:FormItem>
  <mx:FormItem label="이메일" fontSize="12">
   <mx:TextInput id="email"/>
  </mx:FormItem>
  <mx:FormItem>
   <mx:Button label="중복확인" fontSize="12" themeColor="#FFFFFF"/>
  </mx:FormItem>
  <mx:FormItem>
   <mx:Button label="계정만들기" fontSize="12" themeColor="#FFFFFF" click="chkpass()"/>
  </mx:FormItem>
 </mx:Form>
</mx:Application>

Posted by zeide
,

http://kwon37xi.egloos.com/3666564

글을 읽어봅니다.
도움이 되는 글이라고 생각합니다.

Posted by zeide
,
protected ModelAndView onSubmit(HttpServletRequest request,
            HttpServletResponse response, Object command, BindException errors)
            throws Exception {
        ModelAndView m = new ModelAndView();
       
        response.setContentType("text/plain");
       
        if(!(request instanceof MultipartHttpServletRequest)){
            //요청이 해당 request 가 아닐 때
            response.sendError(HttpServletResponse.SC_BAD_REQUEST,"잘못된 요청입니다.");
            return null;
        }
       
        //file 정보
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest)request;
        MultipartFile file = multipartRequest.getFile("file");
        String file_name = file.getOriginalFilename();
        File file_path = File.createTempFile("file", file_name, path);//파일의 저장될 경로
        long size = file.getSize();
       
        FileCopyUtils.copy(file.getInputStream(), new FileOutputStream(file_path));//copy
       
        FileUploadBean bean = (FileUploadBean)command;
        bean.setFile(file);
        bean.setFile_name(file_name);
        bean.setFile_path(file_path);
        bean.setSize(size);
       
        boardService.insertFile(bean);
       
        m.setViewName("/fileuploadSuccess.do");
       
        return m;
    }
Posted by zeide
,

[Flex] 변수 작성법

자료 2009. 3. 6. 17:00

- 변수 작성법
지역변수
var 변수명 : 데이터 = 값; 

- 메서드(함수)
접근 지정자 function 메서드명(인자...) : 반환형 { }
overriding 지원
overloading 지원안함(호출의 명확성을 위해)

- 데이터형
표현은 자바와 동일하며 다른 형도 있다.

- 표현 예

<mx:Script>
 <![CDATA[
        // 기술부분//
 ]]>
 </mx:Script>

열림 태그와 닫힘 태그에 유의하며 작성한다.
조건문은 자바와 동일하게 사용(if, for, while)

 public function usefor() : void {
   for(var i:int=0;i<10;i++){
    Alert.show("i="+i,"for i");
   }
  }

- 배열
Array 메서드 지원, 추가 작업 및 삭제까지 가능.
ArrayCollection 생성자에 인자로 넣어서 사용.
var 배열명 : Array=new Array();
var 배열명 : Array=["값","값","값",...];

- 값 넣기
dataProvider={"값"} 을 넣어서 값을 받아올 수 있다.
Posted by zeide
,