12345

AJAX를 사용할때는 XMLHttpRequest 객체를 만들어서 사용해야 하는데, 페이지마다 항상 반복적인
코드가 필요하기 떄문에 자바스크립트 파일로 따로 분리해주도록 한다~


 function getXMLHttpRequest() {
    if (window.ActiveXObject) {
      try {
          return new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch(e) {
          try {
            return new ActiveXObject("Microsoft.XMLHTTP");
          }
          catch(e1) { return null; }
   else if(window.XMLHttpRequest) {
           return new XMLHttpRequest();
   }
   else { return null; }

  var httpRequest = null;

  function sendRequest(url, params, callback, method) {
     httpRequest = getXMLHttpRequest();
     var httpMethod = method ? method : 'GET';
     if(httpMethod != 'GET' && httpMethod != 'POST') {
           httpMethod = 'GET';
     }
     var httpParams = (params == null || params == '') ? null : params;
     var httpUrl = url;
     if(httpMethod == 'GET' && httpParams != null) {
         httpUrl = httpUrl + "?" + httpParams;
     }
     httpRequest.open(httpMethod, httpUrl, true);
     httpRequest.setRequestHeader('Content-Type','appliaction/x-www-form-urlencoded');
     httpRequest.onreadystatechange = callback;
     httpRequest.send(httpMethod == 'POST' ? httpParams : null);
}

TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/174 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :
출처 :  http://blog.eloitcube.co.kr/41


근래들어 웹 개발 커뮤니티에서 가장 많이 사용하는 용어 중 하나가 REST(Representational State Transfer)일 것입니다. REST는 많은 웹2.0 회사들이 자신이 개발한 서비스를 외부에 공개하기 위한 오픈 API의 구현 방법으로 많이 사용되고 있습니다. 실제 구글, 플리커, 아마존 등의 오픈API가 REST 방식으로 구현되어 공개되면서 급속히 확산되었습니다. 이러한 오픈 API뿐만 아니라 REST는 서비스의 서버 플랫폼 구축에 있어 필수적인 아키텍처입니다.
 
아키텍처(Architecture)
일반적으로 소프트웨어 분야에서 아키텍쳐라 하면 컴포넌트와 데이터 그리고 이들 간의 인터페이스 등  S/W를 구성하는 요소들의 적절히 구성하고 배치하여 원하는 목적을 이뤄내는 것을 말합니다. 원하는 목적에는 기능 , 성능 , 확장성 등 다양한 이슈들이 포함될 수 있습니다.

REST 아키텍쳐(Architecture)

REST는 Roy Fielding 에 의해서 처음 사용된 용어로서 웹의 특성을 활용한 서비스 호출 Architecture를 말합니다. 좀 더 자세히 살펴보면, 웹상의 모든 것들은 URL로  표현(Representation)합니다. 이렇게 표현된 URL을 클릭하는 순간 다른 URL로 이동하게 됩니다. 이 과정을 달리 표현하면 해당 URL이 표현하고 있는 상태(State)에서 다른 URL의 상태로 이동(Transfer)하는 것입니다. 이렇게 잘 정의된 URL을 통해 웹 애플릿케이션을 구동시키고 그 결과(상태)를 전달(Transfer)받아 처리하는 것이 바로 REST 방식입니다.

REST는 실제 표준은 아니지만 HTTP/URL/MIME Type같은 웹 표준을 사용한다. 따라서 실제 표준 기술이기도 합니다. 최근 Sun에서는 JRS311, Java API for RESTful Web services을 발표하기도 했습니다.

REST에 대해 좀 더 실제 예를 들어 이해해보도록 하겠습니다.

가령, 아래 URL은 직원들의 명단을 조회하는 서비스입니다. 이 서비스를 통해 직원 명단을 받는 클라이언트는 서버측의 구현이 어떻게 되어 있는지 상관할 필요가 없습니다.

http://wisefree.com/employee

클라이언트가 이 서비스를 요청하면 다음과 같은 결과를 받게 됩니다.

<?xml version="1.0"?>
<p:Employee  xmlns:p="http://wisefree.com" xmlns:xlink="http://www.w3.org/1999/xlink">
<Employee id="603045"  xlink:href="http://wisefree.com/employee/603045"/>
<Employee id="741146" xlink:href="http://wisefree.com/employee/741146"/>
</p:Employee>

또한 클라이언트는 전달받은 직원 명단 중 603545번의 자세한 내용을 받기 위해 다음과 같이 REST 서비스를 호출합니다.

http://wisefree.com/employee/603045 

클라이언트는 다음과 같이 보다 자세한 결과를 받게 됩니다.

<?xml version="1.0"?>
<p:Employee xmlns:p="http://wisefree.com" xmlns:xlink="http://www.w3.org/1999/xlink">
<Employee-ID>741146</Employee-ID>
<Name>jisu park</Name>
<Resume xlink:href="http://wisefree.com/employee/741146/resume/"/>
</p:Employee>

이처럼 REST 방식은 "서버 주소 + 서비스 이름 + 자원" 으로 이루어진 URL을 호출하고 이에 대한 자원을 전달받으면서 서비스를 수행하는 구조입니다. 이러한 REST 방식으로 시스템을 디자인할 때는 다음의 사항을 주의해야 합니다.

- 제공하고자 하는 모든 conceptual 리소스(엔티티)들을 서비스로 제공합니다.
- 각 리소스들에 대한 URL을 설계합니다. 이 때, 주의할 점은 URL은 명사로 설계하며 서버 주소 + 서비스 이름 + 자원 방식으로 설계합니다.

http://wisefree.com/employee/getEmployee?id=603045 우울한 설계
http://wisefree.com/employee/603045 , 멋진 설계

- 이 때, URL을 통해 필요한 자원을 계속해서 추적하여 얻어(HTTP GET) 가거나 삽입(HTTP PUT), 삭제(HTTP DELETE)할 수 있게 분류 설계합니다. 결코 한번에 모든 정보를 제공해서는 안됩니다.

http://wisefree.com/employee 전체 직원 명단을 얻어 온다.
http://wisefree.com/employee/603045 특정 직원의 자세한 정보를 얻어 온다.(HTTP GET)
http://wisefree.com/employee/603045 특정 직원의 해당 정보를 갱신 온다.(HTTP PUT)

- HTTP GET을 통해 제공되는 모든 자원은 있는 그 상태의 정보를 제공하는 것이지 자원의 상태를 변경하고 그에 대한 결과를 제공하는 것은 아닙니다.
- 제공되는 결과는 Ajax등 RIA 기술을 사용할 경우 반드시 XML 포맷을 사용한다. 그 외의 경우에는 응용 프로그램의 상태에 따라 적절히 결정합니다.

자! 간략하지만 아주 중요한 사항들입니다. 개발자와 아키텍쳐 분들은 반드시 유의해 주길 바랍니다.

tagged with  rest
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/173 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :

리눅스 가상서버에 대한 기본적인 개념을 담아놓은 사이트 초반에 많은 도움이 되었기에 추천

http://wiki.kldp.org/Translations/html/Virtual_Server-KLDP/whatis.html

http://wiki.kldp.org/Translations/html/Virtual_Server-KLDP/why.html

http://wiki.kldp.org/Translations/html/Virtual_Server-KLDP/how.html

http://wiki.kldp.org/Translations/html/Virtual_Server-KLDP/scheduling.html

tagged with  lvs
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/172 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :



지난주 목요일(6/25) 부터 jQuery 스터디를 시작하였습니다.

objectworld의 UML4 팀(?)에 소속되어 스터디를 시작하였구요..

스터디에는 저빼고는 다 직장인이셔서 약간 뻘줌했었구요..;;

스크립트 언어는 처음 접해보는거라서 이리저리 헤메고 있습니다..

일단 처음 접해본 느낌이로는 jQuery를 사용함으로써 보다 코드가 간결해지는 느낌을 받아서 좋았구요..

이전 보다 간단한 문법으로 우와소리나오는 효과가 나오는게 신기했었습니다..^^

무엇보다 파이어버그 사용하는것도 신기했었구요..=_=

하지만 아직은 갈길이 먼거 같아요..우선 DOM의 개념도 정확히 잡기가 힘드네요..

차근차근 하면서 다음주 발표준비도 열심히 해야겠습니다~

jQuery가 익숙해지는 그날까지 !


tagged with  jQuery
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/170 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :
1. 일반 자바 빈즈의 엔터프라이즈 자바 빈즈의 차이점
자바빈이란 용어는 재사용이 가능한 컴포넌트를 뜻합니다. 줄여서 빈이라고 부르기도 해요.
기존의 엔터프라이즈 빈이 아닌 일반 빈은 개발도구에서 쓰일수 있는 명명 관행을 따르는
재사용이 가능한 컴포넌트를 뜻합니다.

자바빈 가운데 가장 대표적인 것으로 스윙 버튼이나 텍스트 필드와 같은 GUI 컴포넌트를 들 수
있습니다. 거의 모든 자바 IDE는 자바빈 호환 기능을 갖추고 있기 때문에 비쥬얼 레이아웃 툴에서
작업을 할때는 버튼만 클릭하면 색, 크기, 폰트 등을 설정할수 있는 속성창이 자동으로 뜹니다.

빈은 게터와 세터에 대한 어떤 관행을 따르기 때문에 그런 툴에서 해당 빈이 가지고 있는 속성을
파악할수 있습니다.

하지만 일반 자바빈이 GUI 컴포넌트에서만 쓰이는 것은 아닙니다. 지니나 서블릿과 같은 다른
자바 기술에서도 자바빈 기능을 사용할 수 있습니다.

엔터프라이즈 자바빈은 재사용이 가능한 컴포넌트라는 점을 제외하면 일반 자바빈과 비슷한 점이
없다고 할수 있습니다. 일반 자바빈의 빈으로써의 특징은 대부분 개발과정에서 한 빈의 이벤트를
다른 빈의 메소드에 연결한다거나 속성값(대부분의 경우에 인스턴스 변수값)을 설정하는 과정을
쉽게 또는 빠르게 하기 위한 용도로 쓰입니다. 그리고 일반 빈은 보통 자바 클래스와 마찬가지로
JVM에서 실행이 되요. 하지만 엔터프라이즈 빈의 빈으로서써의 특징은 실행 시에 발휘되며
엔터프라이즈 빈은 반드시 EJB 컨테이너의 관리 하에 실해되어야 합니다.


2. POJO(Plain Old Java Object)
순수 자바 클래스들을 이르는말, POJO(Plain Old Java Object, 보통의 기존 자바 오프젝트라는 뜻으로, EJB와 같은 거창한 컴포넌트가 아닌 일반적인 자바 클래스를 가리킵니다. 영화 ‘오스틴 파워스’에 등장하는 모조(Mojo)의 패러디처럼 들리기도 하지요)의 활용과 비동기 호출의 지원입니다.

간단하게 말하면 자바 SDK에 있는 순수 자바 클래스들을 프로그래밍 하는것.




3. 객체와 인스턴스의 차이점
인스턴는 클래스를 근거로 생성된 인스턴스의 관점, 즉 생성된 인스턴스를 초점을 맞추어 이야기 할때 많이 사용.  하지만 객체는 이렇게 하나의 클래스로 만들어진 객체들을 전체적인 집합적인 의미로
객체를 가리킬때 사용되곤 한다. 이런 개념도 논란이 많은거 같고. 자세히는 잘 이해가 안간다..


4. 추상클래스와 인터페이스의 차이점
둘다 스스로 객체 생성은 불가능하다. 두개 전부를 미완성 설계도로 이해하면 편할듯 하다.
미완성 설계도로 제품을 만들수 없듯이 :)
하지만 추상클래스와 인터페이스를 쓰는 이유는 각기 다른 TV가 공통된 기능을 가진 설계도를
가질수 있듯이 공통된 부분만을 그린 미완성 설계도를 만들어 놓고  설계도를 이용하여 각각의
설계도를 완성하는것이 훨씬 효율적~

추상클래스가 미완성 설계도라면 인터페이스는 기본설계도
인터페이스로 다중상속과 같은 효과를 낼수도 있음.

tagged with  java
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/168 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :

http://www.gotapi.com/html

출처는 okjsp.pe.kr 인가 kenu님의 블로그인가 가물가물합니다..^^

여하튼 발견하고 가장 많이 사용하는 사이트 인것 같습니다.

언어별로 api를 쉽게 검색할수 있도록 통합적으로 제공해주고 있어서, 쉽게 검색이 가능합니다.

검색도 빠르고, 따로 api 찾으러 사이트 돌아다닐 필요도 없고 좋은것 같습니다.. =)


tagged with  API, 프로그래밍
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/166 관련글 쓰기
wrote at 2009/04/11 23:57
싸이트 정보 감사합니다.:)
wrote at 2009/04/12 02:09
방문 감사합니다 :)
이름 :
비밀번호 :
홈사이트 :
비밀글 :

1. WEB 2.0

기존의 웹(여기서는 웹 1.0으로 부르겠다)의 개념은 생산자가 이따금 갱신하는 정적 HTML 페이지들의 집합일 뿐이었다. 이보다 좀 더 동적인 웹(종종 '웹 1.5'로 불리는)의 출현은 닷컴 분야의 성공을 이끌어냈다. 이러한 동적인 웹은 콘텐츠 데이터베이스의 변화를 즉시 반영해 생성한 동적 HTML 페이지를 콘텐츠 관리 시스템이 제공함으로써 만들어졌다. 흥미를 불러 일으키는 것이 웹 경험에서 본질적인 요소로 간주되었으며, 페이지 조회와 미적인 시각 요소가 중요한 부분으로 자리 잡았다. 또한 대부분의 웹은 콘텐츠를 만들어 내는 생산자와 이를 단순히 이용하는 소비자로 구분되었다.

웹 2.0의 주창자들은 블로그트랙백이나 위키와 같이 각 주체가 생산자이면서 동시에 소비자가 되는 상호 작용을 통해 콘텐츠를 재생산하며 사회적 네트워크를 형성해 나가는 것에 주목했다.

최초의 웹 2.0 콘퍼런스에서 Tim O'Reilly와 John Battelle는 웹 2.0의 특징을 다음의 핵심 요소들로 정리했다.

  • 플랫폼으로서의 웹.
  • 원동력이 되는 데이터.
  • 참여 구조(architecture of participation)에 의한 네트워크 효과
  • (오픈 소스 개발과 같이) 여러 시공간에 흩어져 있는 독립적인 개발자들이 공동으로 참여해 혁신하는 시스템이나 사이트
  • 콘텐츠와 서비스 신디케이션을 통한 가벼운 비지니스 모델(lightweight business model)
  • 기존의 소프트웨어 개발 사이클과는 다른 "영원한 베타(the perpetual beta)"
  • 롱테일의 힘을 극대화 시키는 소프트웨어 (하나의 장치에서만 동작한다는 기존의 소프트웨어 관념을 뛰어 넘어 여러 이기종(異機種) 장치에서 하나의 소프트웨어로서 구동됨

** reference : http://www.likejazz.com/doc/web2.html


2. Hibernate

자바 프레임워크 종류중 하나.
스트러츠 어느정도 숙달되면 한번 해볼계획 :)

** reference : http://wiki.javajigi.net/display/FRAMEWORK/Hibernate
                    http://blog.naver.com/jdkim528.do


3. indexOf()  / charAt()

예전에 봤던 내용인데 혼동했던 두개의 메소드의 차이;;
indexOf() : 해당문자가 들어있는 위치(왼쪽에서 첫번째), 오른쪽에서 첫번째는 lastindexof()
charAt() : 인수위치에 들어이는 문자를 반환


4. query : connect by / siblings by


5. 오라클 관련 정보 사이트
   
http://www.oracleclub.com/main.action
     http://www.sqler.pe.kr/


6. SAS는 SOA랑 AOP 이해하고 다음에;;


7. RAD(Rational Application Developer)

IBM Webspare 서버에서 좀더 쉽고 자동화된 개발하기 하기 위한 툴,
이클립스에 plugin을 첨가한 제품으로 상용으로 IBM에서 판매중이라고 한다.
Webspare 서버 설치할 필요도 없이 내부적으로 서버 모듈을 가지고 있어서 개발이나 배포등을
손쉽게 할수 있는데 가격이 비싸다고 하다.. IBM 홈페이지에서 가격정보를 찾을려고 하는데 못찾겠다;;


tagged with  java, 스터디
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/161 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :

1. SOA(Service Oriented Architecture)

 
< 일반적 개념의 SOA란 무엇인가?  >

먼저 SOA(서비스지향아키텍처)에서 이야기 하는 '서비스'를 이해할 필요가 있습니다.. SOA에서 이야기하는 서비스는 IT적인 개념이 아니고 비즈니스적인 용어로서 '특정한 기능을 하는 단위'를 서비스라고 합니다.
예를 들어, '항공권 예약' '호텔 예약' '고객 정보 조회' '예금' 같은 것을 서비스라고 할 수 있습니다. 즉 기업의 업무를 기능단위로 나눈 것을 '서비스'라고 합니다. 이러한 기능 단위는 크게 나누거나 보다 자세하게 나눌 수 있는데, '항공권 예약' 이라는 것도 사실 '항공 좌석 조회', '회원정보 조회', '좌석 배정' 같은 더 작은 서비스로 구성되어 있습니다. 그래서 기업 업무의 어떤 기능을 서비스화 할 것인지, 이러한 서비스 단위를 얼마나 작은 단위로 쪼갤 것인지 같은 것이 SOA의 핵심적인 사항이라 할 수 있겠습니다.
이야기가 길었습니다만, SOA라는 것은 이렇게 정의된 서비스를 배열하여 기업의 업무를 구현하는 방식을 말합니다. 그래서 SOA라는 것은 기업의 어떤 업무에서도 적용할 수 있는 일종의 IT 아키텍처의 사상이면서 아키텍처를 만드는 스타일을 말하는 것입니다. 그래서 SOA 기반 BPM, SOA 기반 CRM등이 모두 가능한 것입니다.

< 기업에서 왜 SOA가 필요한가? >

기업에서 SOA를 이야기하는 것은 '비즈니스 유연성' 혹은 '비즈니스 민첩성' 때문입니다. 한가지 예를 들어 A라는 은행이 새로운 상품 Y를 새로 출시하여 선풍적인 인기를 끌렀다고 한다면, 경쟁 은행인 B, C, D가 유사한 상품을 내놓으려고 합니다. 이때 SOA를 적용하지 않은 기존 시스템에서 새로운 상품을 개발한다면 시간이 많이 걸리게 됩니다. 먼저 현업에서 상품을 디자인하여 IT 기획에 넘기면 IT 기획에서는 이를 가능하게 하려고 기존 애플리케이션을 바꾸려고 합니다. 그 과정은 설계를 하고 설계에 맞추어 코딩을 하고 테스트 한 후 운영계로 옮겨 실제로 상품을 시장에 팔 수 있게 합니다. 이러한 과정이 3개월에서 4개월 걸리게 되는데, 그 3~4개월 동안 먼저 상품을 출시한 A은행이 시장을 석권하게 되는 것이지요. 시장에서는 항상 1등만을 기억하게 됩니다. 이러한 경우를 보게 되면 IT 시스템이 오히려 발목을 잡게 되는 것이지요. 만약 B은행이 A은행이 상품을 출시한 지 1~2주 만에 비슷한 상품을 내놓을 수 있으면 어떻게 될까요? 시장은 A와 B은행이 양분 하게 될 것입니다. 이렇듯 SOA는 기업들이 변화하는 시장 환경에 빠르게 대응할 수 있게 해 주기 때문에 기업의 '비즈니스 유연성' 또는 '비즈니스 민첩성'을 높여줍니다. 이것은 곧 기업의 경쟁력을 높여주어서 생존하고 성장할 수 있는 기반이 됩니다. 어떻게 이러한 것이 가능하느냐 하면, SOA는 미리 '서비스'들을 만들어서 저장소에 넣어놓았다가 현업 사용자가 저장된 서비스 들을 검색하여 필요한 서비스들을 골라 그 서비스들을 순서대로 작동하도록 배치하기 때문입니다. 그러한 과정은 현업 사용자가 툴을 사용하여 그림 그리듯이 쉽게 할 수 있습니다. 그렇게만 하면 바로 사용 가능한 애플리케이션을 만들어 내는 것입니다. 그렇기 위해서 개발자들은 필요한 모든 애플리케이션 컴포넌트를 미리 만들어 놓아야 합니다. 그래서 기존의 IT 시스템을 재활용하여 개발 속도를 빠르게 하기도 합니다. 


- 지디넷 코리아 : 정해영 부장(한국 IBM)


<  참고 사이트  >
http://blog.naver.com/image07/60023998658
http://blog.naver.com/iojazz?Redirect=Log&logNo=140013106892
http://www.codeway.co.kr/board/bbs/board.php?bo_table=ETC_Lecture&wr_id=79&page=7
http://cooljohn.egloos.com/4491965
http://younghoe.info/attachment/49682ce933adaCF.pdf
http://kwangshin.pe.kr/blog/?no=78

tagged with  SOA, 소프트웨어 공학
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/159 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :
요즘 SOA라는걸 보고 있는데, 정말 SOA라는거 이것을 봐서는 뭐가 뭔지 감도 안잡히는거 같습니다 =_=

그래서 원천적으로 SOA를 하기전에 OOP의 단점이 무엇일지 생각해 보았습니다.
생각해보니 절차지향 언어로부터 이어져와서 OOP는 LANGUAGE라는 플랫폼에 강결합(tightly-coupled)
라는 생각이 들었습니다. 정확히는 컴파일러 라고 해야할까요?

예를들면 자바에서 OOP을 이용하여 코딩을 하다가 C++에서 만든 클래스를 패키지와 해서
가져다가 그냥 쓸수 있을까요?
같이 OOP 이지만, 자바와 C++은 서로 직접적으로는 호환이 안되겠지요. 서로 문법이 미묘하게 틀리니까요
물론 C#과 JAVA도 그럴거 같구요.

결론적으로 플랫폼에 종속적인것이 OOP의 단점인것 같습니다.

음 그래서, 이제는 언어라는 플랫폼에 약결합(loosely-coupled)으로 하여 언어에 구애받지 않고, 자바와
닷넷, C++ 이라는 언어로 만들어진 객체들을 넘어 컴포넌트들을 언어에 구애받지 않고, 쓸수 있을수는
없을까요?

음 그래서 생각해 보건데, XML을 이용하면 될거 같아요. 서로 컴포넌트들간에 정보 교환을 할때,
XML을 이용한 공통된 형식을 만들어서, 독립적으로 만들어진 컴포넌트들간에 통신을 할수 있을거예요
그럼 XML을 이용해서 주고받고 할수 있겠지요.

따라서 플랫폼이 다른 컴포넌트라도 재사용이 가능할거 같습니다.

음 하지만 여기에서 다시 떠오르는게 일반 어플리케이션에서는 저런것이 힘들거 같기도 하네요.
예를들어 C++에서 만든 .EXE 어플리케이션을 실행하는데 JAVA로 만든 컴포넌트를 활용하기 위해
JVM을 이용한 .CLASS를 동시에 실행하고, 이러면 정작 프로그램을 사용하는 입장에서는 무언가
이상해 지겠죠? 

음 하지만 웹에서는 그냥 수월하게 할수 있을거 같아요.
PHP와 JSP로 만든 컴포넌트들이 존재할때, 각각 서버를 한대씩 만들어놓고 사용자가 하나의
처리를 요청하면 각자의 PHP와 JSP와의 메세지 교환을 통하여 처리후에 그걸 사용자에게
VIEW로 그냥 보여주기만 하면 되지 않을까요.

음 따라서, 이런 Object Oriented라는 관점의 중요성이 점차 줄어들고 서비스중심, 관점중심의 프로그램인
SOA, AOP라는게 나오지 않았나 생각이 되네요.

정말 초짜가 말하는거라, 틀린거나 조언해주실거 있으시는 분이 있으시면 괜찮을것 같습니다.
정말 어려워요 ㅠㅠ 정말 소프트웨어 공학이 어려워요 ㅠㅠ


tagged with  OOP, 소프트웨어 공학
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/160 관련글 쓰기
^^ 
wrote at 2009/07/29 10:06
oop<->soa 는 대립되는 개념이 아닙니다. 동일 비교 대상의 개념이 아니구요. oop는 오히려 아키텍처라기 보다는 그런 아키텍처가 가능하도록 하는 언어의 성격에 해당하겠지요. 그리고 님이 말하는 것이 Web Service란 개념입니다.
SOA도 여기에서 출발하구요.
wrote at 2009/07/29 12:46
아직도 고민고민하는 내용인데, 답변 감사드립니다..^^
제가 쓰고서도 제가 무슨소리를 하는지도 모르겠네요 =_=
이름 :
비밀번호 :
홈사이트 :
비밀글 :

Outer 클래스의 멤버 변수를 Inner 클래스에서 접근할시에는 서로 static 과 instance의 차이가 아닌 한,
에러가 발생하지 않습니다.

하지만 Outer 클래스의 멤버변수를 Inner 클래스에서 변경을 시도할 경우에는 아래와 같은 에러가
발생하는군요. ( x변수에 대한 값 변경 시도시 : 대입연산자 )

Syntax error on token "x", VariableDeclaratorId expected after this token

내부클래스에서 외부클래스에 대한 멤버변수가 참조는 되지만 변경은 되지 않는다 라는건 새로운 사실
같습니다. 원리에 대해서는 조금 더 찾아봐야 할거 같네요 =_=

다음으로 자바의 소멸자에 대한 내용입니다.
C++ 에서는 ~으로 시작하는 클래스의 이름과 같은 메소드를 소멸자로 정의하는데요.
자바에서는 ~이 비트전환 연산자 일뿐 메소드에 ~ 붙이면 소멸자로 인식하지 않습니다;;

딱히 자바를 사용하면서 소멸자에 대한 것을 써본적이 없어서 한번 검색해보았는데요.
자바에서도 소멸자가 존재하였습니다. Object 클래스의 finalize() 메소드 입니다.

JAVA API를 검색해본결과 아래와 같은 내용이 나오네요.

Called by the garbage collector on an object when garbage collection determines that there are no more references to the object.

자바에서 버려진 객체에 대한 메모리 회수를 해주는 가비지 컬렉터가 해주는 가비지 컬렉션을 수행한다고
언급되어 있는것 같네요.

따라서 자동으로 JVM에서는 위의 object 클래스의 finalize() 메소드를 통하여 가비지 컬렉션을 수행하는것
같습니다.  물론 유저가 finalize()을 임의로 사용도 가능합니다.

finalize()에 대한 내용은 아래의 블로그에서 이해가 쉽게(!) 언급되어 있네요 :)

[java.lang.Object 메쏘드 분석 5 - finalize]


tagged with  java, 소멸자
TRACKBACK ADDRESS : http://josuae.tistory.com/trackback/158 관련글 쓰기
이름 :
비밀번호 :
홈사이트 :
비밀글 :
*1  *2 
ㅠㅠ
알립니다
episode
activity
blog
everyday
programming
portfolio
seminar
thinking
nonclassified
secret scrap
ipod touch
count total 68,923, today 7, yesterday 17