퇴근5분전

 

  오늘도 하루를 고스란히 날렸네... 

 작업한거 아침에 파일 비교 후에 모두 커밋하고, 다른 분들 작업한걸 받으려고 이클립스에서 update 받았다. 

 

빌드하고 띄울땐 잘 떴는데...  데이타 입력하고 보니 데이타가 한글이 깨져버렸다... 오잉? 

겁나 웃긴게 다른던 멀쩡한데 이름만 깨져서 나온다?... 특정 필드만?.... 왜?? DB업데이트를 해도.. 화면은 여전히 깨진다..

 찾다가 이유를 모르니... svn을 통째로 다시 내려받았다. 일단은 캐시가 구현되어 있는데 이것 때문인것 같다는 추측만... 

 

svn을 통째려 다시 받으면서 부터 또... 톰캣이 말썽이네... 

로딩이 되면서 갑자기 에러가 발생하더니... 건너뛰고 서버가 실행!...

특정 화면들이 오류가 나서 해볼수가 없네... 에러 로그로 구글링을 했지만... 해결이 안되어 

지우고 다시 받고, 프로젝트 클린, 톰캣클린등을 했지만.. 안되었다. 

 

 5시에 결국엔 몽땅 삭제! 처음부터 재 구축... 20분 정도 걸려서 다시 뜨는 것도 확인. 아~ 씨박~ 

뭐가 문제일까? ..... 

 

 이번 프로젝트가 완전히 새로만드는 si가 아니고 있는거 수정하고 신규화면 만드는거라서 더욱 짜증나네. 

코드는 별로 칠것도 없는데... 다른데 시간이 다 날아간다네... 아우 머리아파...... 

 이러다가 야근하게 생겼네... 짜증나네 java..... 

 한달동안 몇차례 본 에런데... 대응이 안되네...... 

 

 

 

오늘부터 드디어 자바로 된 프로젝트에 코딩을 시작했다. 

3주간 소스코드 분석하면서 내 프로젝트 툴 관련 소스들 정비하면서도... 

9년만에? 하는 자바프로젝트라 걱정이 되긴 했는데... 

막상 시작하고 삽질로 시작해서 희망이 보였다. 

 

 이클립스에서 톰캣 디버깅 모드에서 수정하고 자동빌드모드로 두니까 좀 기다리니 재배포를 기다리면 알아서 되더랑.. 

VS처럼 빠르진 않지만.. 느릿 느릿... 해도 되는게 어디냥...  어제까지만 해도 안되는것 같아서 포기했는데... 

그래서 소스 수정하면 톰캣 다시 올리곤 했는데... 오늘 몇가지 설정 바꾸니 되더랑 ㅠㅠ;

 

 그간 말썽 부리던 로그 남기는 것도... 추가한 로그도 잘 쌓이고 보이면서... 위에 설명하듯이 톰캣에 자동빌드되어 배포되니까... 느릿 느릿해도... 귀찮은 짓은 안해도 될 것 같았다. 

 

 퇴근전에 확인하다가 걸리는게 하나... 

db 로그를 보다가 하나 실행하려니까 파라미터가 20여개? 즘 되는 쿼리...가 돌았는데...

로그가 가관이었음 ㅠㅠ;

 

쿼리 ~~~~~~~~~~~~ 엄청 길고... 중간 중간 파라미터로 '?' 로 위치 박혀있고... 

별도로 아래라인에 파라미터가 [ x, xx, xxx, ... ] 이렇게 있는 거 보고.. 헉...... 

 일단 순차적으로 손으로 일일이 바꿔서 보고... 쿼리를 돌려서 결과 확인을 했다. 

안그래도 문서도 없는 깜깜이 플젝인데... 쿼리도 쉽게 못돌리면... ?

 

오라클은 프로파일러 거는게... ms같지 않으니... 포기하고... 문자열 치환하자!!!

/////////////////////////////////// 변환 소스 ////////////////////////////////////////

string qry = @"
    -- ?가 박혀있는 로그에 기록된 쿼리 문장.
";

            // 이건 파라미터... n개~
            string strPrms = "AAAA, BBBB, CCCC, DDD, EEEEE, FFFFF, GGGGG";
            string[] prms = strPrms.Split(',');             
            string result = qry;             

            // 생각나는 ? 주변에 있어도 될 문자들..
            string[] validString = new string[] { "", ",", " ", "\n", "\r", "(", ")" }; 

            int index = 0;
            for (int loop = 0; loop < prms.Length; loop++)
            {
                string x = prms[loop];
                int idx = -1;
                do
                {
                    idx = result.IndexOf('?', index );
                    if (0 < idx && idx < result.Length)
                    {
                        if (result[idx] == '?')
                        {
                            //앞, 뒤 체크
                            string pre = $"{result[idx - 1]}";
                            string next = "";
                            if (idx < (result.Length - 1))
                            {
                                next = $"{result[idx + 1]}";
                            }

                            if (validString.Contains(pre) && validString.Contains(next))
                            {
                                result = result.Remove(idx, "?".Length);
                                result = result.Insert(idx, x);
                                index += x.Length;
                                break;
                            }
                        }
                        index = idx + 1;
                    }
                    else
                    {
                        break;
                    }
                }
                while (0 < idx && idx < result.Length);
            }

 

최종적으로 result는 ?와 파라미터가 치환된 쿼리!!!

특별한 예외 없이 잘 된다. 내일 쿼리 스냅샷 프로젝트에 변환 툴로 넣어놔야겠다.

 

-------------- 추가 -------------

로그 검색 프로그램쪽으로 별도 팝업으로 만들어놨다. 

 

쿼리를 돌리면 문자열에 홀따옴표가 없는 채로 들어가니까 에러가 날때가 있는데 

우선은 그때 찾아서 홀따옴표 넣어주는걸로 생각하면서 사용하면 된다. 

 

 

음... 오늘 퇴근전 3시간정도 생쑈하면서 끝내 안되었던게...

 

집에서 검색하다보니 2013년에 내 블로그에 있네?  9년만에 똑같은 일로 또 이러고 있었다뉘... 

 

그래도 그땐 저걸 풀었네? 와~~ 

 

https://aseuka.tistory.com/entry/%EB%B3%80%ED%99%98-Unicode-%ED%95%9C%EA%B8%80

 

변환] Unicode <--> 한글

이번 자바 작업중에 유니코드를 다루는게 있어서... VS Express 설치해서 변환툴을 만들때 사용한 코드임! ## 한글 -> 유니코드 string txt = UniCodeText.Text; string resultUniCode = ""; foreach (char s in txt.ToCharArray(

aseuka.tistory.com

 

이거 자바 할때니까... 똑같은 문제로 개고생하고 있었네 ㅠㅠ; 

이번이 자바 프로젝트가 두번째라는 것!

 

자바의 .properties를 쉽게 찾아서 쓰려고 사전처럼 만들어 검색을 하려고 .net으로 읽어들였더니... 변화도 안되고 

 

이클립스에서 읽은걸 복사해서 써도 되긴한데... 소스에서 변경하면 일일이 붙여줘야 하니까... 

그냥 소스파일을 그대로 읽어서 검색을 만들려 했더니... 

 c#으로 읽어들였더니 한글이 \\uacb0 이런 코드로 보이다니... 인코딩을 별짓을 다 해봐도 안되고... 

 

-- 진짜 황당한 일은... 

str은 파일에서 읽은 것이다. ttt는 직접 박았더니 저렇게 나와서...  갑자기 머리속이 생각을 멈췄다! ...

 

내일은 또 업무파악해야지... 쉽지 않은 프로젝트가 될것 같은데? 

 

추가.. 

사전 처럼 만들었다. 그리고 코드조각 만드는것도 ... 

   <fmt:message var="${}"  Key="xxxx" />

   <spring:message code="xxxx" /> 

이런 식이었는데... 

 

 

 인텔리 제이!! 음.. 좋앙..

 

가장 맘에 들었던건 단축키를 Visual Studio로 맞출 수 있는데... 몇몇 키들은 아니더랑... 오히려 더 헷갈려서 다시

이클립스로 맞춰서 쓰고 있다.

 

 이클립스에서 사용하던 프로젝트를 import 해서 바로 땡기니 설정이 모두 맞춰진 상태였다.

SVN설정까지 맞춰지더만..

 

Ant 기능이 좋던뎅... Ant 목록을 관리할수 있게 만들어져있넹...

 

플러그인이 없는건지...  weblogic plugin찾아도 안보이넹... (디버그 해보겠다고 열심히 찾아봄.. )

 

 

또 좋은점은... 이클립스는 뭐했다하면 백그라운드에서 뭔가 오래 오래 돌면서 작업이 멈춘다!

 

인텔리 제이는 그런게 거의 없네... 똑같은 프로젝트인데!

 

 

# File > Settings ( Alt + F7 )

탭사이즈 변경

Code Style > General

: 탭사이즈정보랑 들여쓰기정보 변경가능

: 각 언어별로 별도 수정이 가능함. html, java...

컴파일러 설정 java sdk버젼 설정

Compiler > Java Compiler

인코딩정보

File Encodings

: 파일 관련 인코딩 정보가 있는데

: 하단에 보면 properties 파일에 대한 인코드정보가 별도로 있음.

 직접 properties 를 열어보면 유니코드(/uXXXX)로 보이는게 한글로 보이며, 실제 저장시엔 유니코드로 저장된다.

SVN

Version Control > SubVersion

: 제외 파일을 추가 할수 있는데 Version Control > Ignored Files 에 확장자(mask), 파일등으로 등록가능함.

Font 변경

Editor > Color & Font > Font

: 폰트를 변경할때는 Save As.. 를 눌러서 이름을 정한다.

다음 Editor Font의 Show only monospaced fonts 체크를 해제하면

다른 폰트들이 나타난다. 폰트를 선택(오른쪽으로 이동)하고 apply하면 저장됨.

키보드 단축키 변경

KeyMap

: 이클립스보다 많은 단축키가 보이는데... Visual Studio 가 있어서 반가운 마음에 선택...

사용하다 다시 이클립스 사용한다. 엄청 헷갈린다.

플러그인

plugins

: 기본적으로 깔리는 것과 다운받을수 있는것으로 구분되는데 실제로 웹에서 목록을 가져오는지

 로컬에서 가져온건지 모르겠음.

 

 

 

 

 

 

 

 

 

 

 

Weblogic 에 디버그...

 

음 소스 실행을 이클립스에서 하는 거라면 바로 브레이크 포인트 잡으면 되지만...

 

Weblogic 서버를 로컬에서 돌리고, 이클립스는 코딩만, Ant를 이용해서 배포하기 때문에

 

디버깅 방법을 못찾고 있었다. 내부 인력들은 모르쇠이고 log 스크립트 보면서 하면 된다는데...

 

이게 빌드하는데 15분이니 말다했지...

 

 그래서 Visual Studio의 프로세스 디버그 처럼 뭔가 있지 않을까 하고 이클립스와 Intellij로 여기저기 뒤져보던 중

 

리포트 디버깅에 관련된 내용이 검색이 되었는데... 당췌 설정을 몰라서 하루 꼬박 삽질에 삽질을 하면서 설정을 완료했다.

 

1. weblogic 서버가 Debug모드이어야 한다.

웹로직 설치된 폴더에 user_properties\mydomain\myserver\startWebLogic.cmd ( 철자가 맞나? )

저 파일에 디버그 모드를 추가한다.

 

set debugFlag = true; // 이거 넣는데 하루 걸렸다. 영어는 짧지.. 한글 문서는 없지..

 

JVM에 디버그 모드와 함께 포트를 설정한다.

 

set JAVA_OPTION=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y suspend=y

 

제법 간단하지? 웹로직 실행선언을 보면... 

 

...\java %JAVA_OPTION% weblogic.~

 

저런 옵션을 첨에 넣어도 안되기에 JVM이란걸 알아보는데 오래 오래 걸렸던 것이다.

 

Java 실행옵션을 보면 ( java -help )

    java.exe -option class args

 

이클립스 원격 디버그 셋업 link

 

2. 이클립스 설정.

Debug 설정 창에서 Remote Application Configurations 에서 포트8000에 맞춰주면 된다.

 

3. 그래도 안되면... 방화벽

방화벽의 예외 사항으로 이클립스를 등록해주자.

 

그래도 안되면? ... 다른 방법이 있으려나?

 

 

 

 

 

 

 

'# 10) Java' 카테고리의 다른 글

Java의 properties 읽어들이기...?  (0) 2022.11.23
도구] Intellij File >setting  (0) 2013.11.01
도구] 이클립스 Snippets  (0) 2013.10.31
도구] 이클립스 Project > Properties  (0) 2013.10.31
도구] 이클립스 window > preference  (0) 2013.10.31

 

Visual studio에도 있지만...

 

eclipse는 등록이 간단했음.

 

마우스로 소스를 쭉 끌어서 우측버튼 누르면... Add Snippets 라고 뜸.

 

이름을 지정하고 등록해놓으면...

 

아래 탭으로 Snippets 가 있고

 

등록된 이름이 보임..

 

그럼 사용할때 끌어다가 에디터에 붙이면 들어감!!!

 

오! 문화적인 충격이돠...

 

Visual Studio는 Snippet 파일 하나 까서 수정해서 저장해두면

 

사용할수 있는데... 그래서 이 과정을 쉽게 하도록 프로그래밍을 할까 고민했는데...

 

요거 따라해보면 되겠다.

 

 

 

추가를 div_s1에 div_temp로 추가했더니 아래 snippets 탭에 보면..

등록된 것이 보인다!

 

 

 나를 괴롭히던...

 

소스를 받고 기본적으로 먼저와있던 개발자들이 설정해주었는데, 안되는게 너무 많았어!

   ( 정의로 이동, 인텔리센스, comment보기 등...  )

 

그래서 자바경력이 있는 사람이 일부 맞춰줬으나... 설정환경이 바뀔때마다

뭔가 틀어져서 안됨. ( 이 플젝에서 소스를 몇번이나 바꾸면서 기존 소스를 버리니 다시 잡아야 했던... )

 

 나중에 개발문서를 찾고 뒤져서 맞췄더니 그제서야 제대로 셋팅이 되었다.

 ( 5번은 바뀐것 같은데... 바뀔때마다 한나절 또는 반나절을 고생했다. 이것 때문에 열받아서

 플젝에서 나간다고 엄포도 놨었다. 개발 환경에 대한 문서가 없다고 자바 개발하던 사람들이

제대로 셋팅을 못하지? 이해불가... )

 

# Project > Properties ( 프로젝트 속성정보 )

- 리소스 인코딩 기본 정보

Resource

인코드 정보가 MS949로 되어있음.

- 자바 jar참조 셋팅

Java Build Path > tab : source

source 폴더들 ( 이거 설정되면 소스 내에 객체 참조가 되어 정의가기및 다른 기능이 된다 )

. Default output folder

: .net의 bin/debug 폴더 같은 곳.

- Jsp Fragment

이건 뭐지? 문서타입및 언어를 선택할수 있게 되있는데???

- Project Facets

프로젝트에 관련된 설정들인듯 함.

런타임시 서버로 돌지 말지, 자바 버젼등 설정가능.

- 웹컨텐츠 설정이 있네?

Web Content Settings

이거 지정하면 jsp 구식 코딩이 된거에 html tag가 색이 돌아올려나?

css profile을 설정하면 tag색이 보이려나...

!지정해보니 우선... jsp생성시 Doctype Page지정자가 나온다!

 

다른 내용은 window 속성에 있던거랑 비슷한데... 모르는게 많음.

 

 이클립스 전부터 설치만 하고 hello 만 띠워보고 말았던 IDE.

 

Visual Studio 만큼 사용하려면 많은 플러그인을 붙여야 된다고 들었지만...

 

자바 프로젝트를 하면서 그게 무슨의미인지 알 것 같음.

 

 최초 이클립스만 딸랑 있을 때, 손으로 모두 작업해야되던 것을 플러그 인을 붙이면

 

조금 수월하게 작업을 한다든가 없는 기능을 추가한다든가...

 

 

실행하면 최초 workspace 지정하는 팝업이 뜬다.

.net의 project 디렉토리 같은 곳인데, .net은 별도로 뜨지는 않음.

 

# window > preference ( 이클립스 설정 )

- 폰트변경

General > Appearance > Colors and Fonts

: Basic > Text Font  에서 바꿈!

- 문서의 Encoding 설정

General > Content Types

: 문서타입별로 보면 됨.

- 탭 사이즈 변경

General > Editor > Text Editor

: 기본 4

- 단축키 설정

General > Keys

: 단축키를 바꿀수 있음.

. 찾기                      Ctrl + F ( 문서내에서 Ctrl + K 로 계속 찾음 ( = vs F3 기능) )

. 전체 찾기                Ctrl + H ( 탭에 따라 검색범위가 다름 )

. 정의로 이동             F3

. Backword History     Alt + Left ( ← )

. 전체빌드                 Ctrl + B

. Collapes                 Ctrl + * ( number_pad )

. Expand                   Ctrl + / ( number_pad )

. Collapes All             Ctrl + Shift + / ( number_pad )

. Expand All               Ctrl + Shift + * ( number_pad )

. Content Assist         Ctrl + space ( VS과 같음. 인텔리센스 )

. 컨텐츠 정보 보기      Ctrl + O(en)   객체의 멤버 모두 표시됨.

. 디버그                    Ctrl + Alt + D ( = F11 안써봤음.)

. 선택된 행 전체 이동  선택 후 Alt + 화살표( 위, 아래 )

. 커서멤버별 이동       Ctrl + Shift + 화살표( 위, 아래 ) : 멤버선언부로 이동.( 오! 좋은 기능 )

. Ctrl + F3 은 다이얼로그로 클래스 멤버 트리가 나온다... 검색도 되는것 같음..

. 한줄 주석 설정/해제  Ctrl + F7

. 여러줄 주석 설정/해제 Ctrl + Shift + / ( 슬레쉬 (나누기 아님) )

. 소스 선택 후 Shift + Alt + S 하면 여러가지 Context Menu가 뜸

한줄주석등의 기능

. 소스 선택 후 Shift + Alt + Z 하면 VS의 코드 자동생성 같은 기능 ( if 탭탭 )

. override 생성 기능은 Source 메뉴에 Override/Implement Methods 메뉴를 누르면 뜬다.

. Open Type             Ctrl + Shift + T 하면 타입으로 검색이 된다... ( 오!!! )

 

... 그외 많은데... VS와 달라서 쩝... 익숙해지려면 시간이 필요해!

- Startup and Shutdown 설정

General > Startup and Shutdown

: workspace 를 바꿀 수 있고, 시작시 같이 활성화 될 plugin 설정

- 웹 브라우져 설정

General > Web Browser

- 플러그인 추가 또는 업데이트

Install/ Update > Automatic Update

: 자동업데이트 설정.

Install/ Update > Available Software Site

: 플러그인 사이트들을 관리할 수 있음.

. Name / Location으로 플러그인 도구 홈페이지에 보면 이클립스 url 이 별도로 있음.

!이클립스 설치 폴더에 plugin 폴더에 직접 넣어도 됨.

- DB관련 관리도구

Data Management

! 써봐야지.. DB연결해서...

- Java 설정

Java > Compiler

: 사용하는 JDK 버젼 설정.

Java > Compiler > Task Tags

: TODO같은 작업목록 태그를 관리가능 ( 내가 작업할 위치를 미리 태그로 관리 가능! )

Java > Intalled JREs

: jre 버젼

Java > JUnit

: TDD 테스트 도구

- Java EE

XDoclet

: 오! 소스 생성 도구가 여기있네??? 사용법을 익혀야 될듯...

- JavaScript

음.. 자바스크립트랑 관련된 도구도 포함되있는것 같다.

- Mylyn

Task 또는 application lifecycle management (ALP)  이렇다는데...

어느 개발자의 평 : 철저히 개발자 중심이다. 버그 트래킹하고, 이슈 관리하고, 진척상황 체크하고, 소스 관리하고, 보고자료 작성하고... 등등 이 모든 것들을 개발도구(이클립스) 안에서 처리한다.

( http://valley.egloos.com/viewer/?url=http://swguru.egloos.com/1711595 )

올!!! 이것도 한번...

 

- Plug-in Development

eclipse에 프로젝트중에 plugin Project 와 관련있는 것 같음.

- 웹서버 ( J2EE인가로 이클립스를 설치하면 Server가 나온다. 웹개발에 필요함 )

Server > Runtime Environments 

: 서버로 구동될 서버정보임. ( 서버에 등록된 웹서버 플러그인으로 디버그 가능 )

- 형상관리 ( SVN )

Team 에 보면 SVN, CVS, Git 등등... 보임

- Web

웹관련 정보들 CSS, HTML, JSP등등.. 코드 스타일, 색상, 문법 정보들이 있음.

 자바의 생소한 용어들...

 

# java : C#같은 프로그래밍 언어. oak라는 이름에서 java(커피콩)로 바꿨다는 글봤음.

 

# ANT ( 빌드도구 ) : 문법이 간단하며 쉽게 배울 수 있음.

 

# Maven ( 빌드도구 ) : ANT의 진화형이라고 함.

 jar파일을 일일이 프로젝트에 포함시키는 수고를 덜 수 있음.(?)

 ? 얼핏 글을 보기엔 설정값들을 복제해서 팀원들간에 공유해서 동일한 환경을 만들 수 있다고 봄.

 

# eclipse ( IDE ) : 설명이 필요할려낭..

# intellij ( IDE ) : eclipse처럼 IDE인데 상우 말대로 좋드라...

# iBatis ( DAO같은? ) : DB 쿼리를 처리하기 위한 도구.

작업된걸 보면 쿼리파일이 별도로 xml로 있는데 여기에 각 객체 타입을 파라미터로 지정이 가능하고

이 객체의 프로퍼티가 쿼리에 사용되는 파라미터값들로 대체되도록 짜넣는것 같다.

xml이라서 조건들을 주어서 동적쿼리도 만들어 내는 것이 가능해보인다.

- sql mapper

a. java 개체를 실제 SQL에 맵핑

b. 개발자가 기술

c. 맵핑은 DB엔티티에 독립적임.

d. 모든 임베디드 SQL은 sql mapper 임.

ex) iBatis sql maps, oracle sqw, Forte 4GL Embeded SQL, Pro*C Embeded...

e. xml에 임베디드된 sql( 자바코드 sql xml 분리 됨 )

 

# JVM ( 닷넷 프레임웍 같은?? ) : 자바프로그램이 돌아가는 가상머신

이게 있어서 os에 관계없이 자바 프로그램이 돌기때문에 이식성이 좋다고??

그런데 닷넷 프레임웍은 windows에만 사용가능하니... ( mono가 있지만 ... )

"java언어는 hw/sw 독립적이다" 에서 동작의 독립성일뿐 성능의 독립성이 아니므로

각 pc에서 자바프로그램에 옵션을 주어 성능에 대한 최적화가 가능한듯 함.

 

- JVM 옵션

이게 나를 힘들게 함... 개발환경을 최적화 하기위해 인터넷만 찾았다 하면

옵션을 준다는데 당췌... 어디에 어떻게 넣으라는 건지는 설명이 없어.

보통 이클립스의 ini에 넣거나 빌드 돌릴때 arguments 에 넣는다던가 하는 옵션임.

 

-Xoption : Non-Standard Option

-XXoption : -Xoption보다 더 세밀한 제어가 가능하다.

JVM마다 옵션이 다르다고 써있음.

 

1. 단일값 : -client

2. 크기 : -Xmx1024m 크기 지정

3. 숫자 : -XX:뭐어쩌고저쩌고=10

4. 문자열 : -agent:string=string=string 문자열값

5. boolean : -XX:+Print, -XX:-Print ( + : on , - : off )

 

# tomcat ( 웹 서버도구 ) : 톰캣은 닷넷할때도 iis랑 연계시켜봤음.

# weblogic ( 웹 서버도구 ) : 웹서버가 여러가지가 자바에서는 존재한다.

# WAS : 웹 어플리케이션 서버 (web application server,약자 was )

 

# XDoclet : 코드 생성 엔진으로 ANT build.xml 만들때 사용하는 도구인듯 하다.

ANT를 찾다가 알게된 도구인데... 사용은 못해봤음.

 

... 그 외는 추후에..

 

 

 

 

 

 

 

 

'# 10) Java' 카테고리의 다른 글

도구] 이클립스 Remote Debug  (0) 2013.11.01
도구] 이클립스 Snippets  (0) 2013.10.31
도구] 이클립스 Project > Properties  (0) 2013.10.31
도구] 이클립스 window > preference  (0) 2013.10.31
자바에 대한 첫인상!  (0) 2013.10.31

 

 자바에 대해 첫 느낌! 뭐이래~~↑? 랄까?? 개발 환경을 셋팅하다가 프로젝트에 나오려고 시도(?) 했었다.

 

우선 자바 플젝은 처음이라 기대가 컸으며, 시스템은 [ EJB + ANT + WebLogic ]라고 설명들었다.

 

EJB는 오래되서 거의 안쓰는 거라고 한다. 금융권쪽에 남아있다고 들었으며,

 

ANT는 빌드 시스템이라고 하고, Weblogic은 웹 서버 톰캣 같은거라고 ...

 

 

 처음 자바프로젝트를 하기 때문에 열심히 해야지 했는데 완전 좌절을 맛봤다.( ~ 이런 ... ) 

 

EJB 개념은 책을 통해 충분히 이해했고 WebLogic 아니 웹 개발(jsp, Servlet)에 대해 이해도 충분히 했다.

 

책은 "알기쉽게 풀어쓴 웹로직과 EJB" 라는 책으로 공부했으며, 출퇴근시간에 열심히 봐서 3번정도 보았는데

 

닷넷 여러 개념들과 비교해서 공부하니 이해가 훨씬 수월했다. 다만, 가끔 너무 앞서 생각해서 디테일 부분을

 

놓친것들이 있는데 다음부턴 주의 해야겠네...

 

jsp = aspx , servlet = page, EJB 는 웹참조형태의 서비스객체를 디자인 할 수 있는 방법론?

 

bean = 서비스 객체, home = bean객체를 생성하는 인터페이스, remote = bean의 인터페이스

 

닷넷처럼 직접적으로 인터페이스 상속을 거쳐 구현되는 것이 아니고, 해당 규약정도로 보면 된다.

 

bean.Hello(); 이런식으로 구현이 되어 있다면 remote에는 Hello()가 정의 되있을수도 있고 없을수도 있고.

 

다만 이용하는 원격지에서는 remote에 구현이 되어있어야 서비스를 받을 수 있다고 생각하면 된다.

 

 이런 객체와 인터페이스 목록을 별도로 관리하는데 그게 JNDI, 실제 소스에는 local, localhome이 더 구현됨.

 

jsp도 asp.net 처럼 클라이언트에서 요청이 오면 해당 요청에 맞는 servlet( page ) 객체가 생성되고

 

해당 객체에서 상황에 따라 db처리를 마치고 jsp( aspx )와 함께 랜더링( html화 )되어

 

클라이언트 요청에 대한 응답을 한다. ( MVC를 떠올리면 됨. )

 

딱히 코드 자체는 어렵게 느껴지 않아 편안하다.. 문제는 개발환경, 팀원들...