퇴근5분전

 이클립스 전부터 설치만 하고 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를 떠올리면 됨. )

 

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

 

 

이번 자바 작업중에 유니코드를 다루는게 있어서...

VS Express 설치해서 변환툴을 만들때 사용한 코드임!

 


## 한글 -> 유니코드
            string txt = UniCodeText.Text;
            string resultUniCode = "";
           
            foreach (char s in txt.ToCharArray())
            {
                if (char.IsLetter("" + s, 0))
                {
                    resultUniCode += "\\u";
                    byte[] bts = UnicodeEncoding.Unicode.GetBytes("" + s);
                    for (int loop = bts.Length - 1; loop >= 0; loop--)
                    {
                        resultUniCode += bts[loop].ToString("x2");
                    }
                }
                else
                {
                    resultUniCode += s;
                }
            } 
            UniCode.Text = resultUniCode;


## 유니코드 -> 한글!

            string Dir = Application.StartupPath + "\\UnicodeConvert\\";

            try
            {
                //unicode된 파일을 변환!!
                using (OpenFileDialog dlg = new OpenFileDialog())
                {
                    dlg.InitialDirectory = HomeDirectory.Text;
                    dlg.FileName = "";
                    if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK && dlg.FileName != "" &&

                        File.Exists(dlg.FileName))
                    {
                        string readFile = File.ReadAllText(dlg.FileName);

                        string writeFileContent = "";

                        char[] uniarray = readFile.ToCharArray();

                        for (int loop = 0; loop < uniarray.Length; )
                        {
                            char c = uniarray[loop];
                            char u = '\0';
                            if (loop + 1 < uniarray.Length) u = uniarray[loop + 1];
                            if (c == '\\' || u == 'u')
                            {
                                try
                                {
                                    byte unibyte00 = Convert.ToByte("" + uniarray[loop + 4] + uniarray[loop + 5], 16);
                                    byte unibyte01 = Convert.ToByte("" + uniarray[loop + 2] + uniarray[loop + 3], 16);
                                    writeFileContent += UnicodeEncoding.Unicode.GetString(new byte[] { unibyte00, unibyte01 });
                                }
                                catch
                                {
                                }
                                finally
                                {
                                    loop += "\\uaaaa".Length;
                                }
                            }
                            else
                            {
                                writeFileContent += c;
                                loop++;
                            }
                        }

                        if (!Directory.Exists(Dir))
                        {
                            Directory.CreateDirectory(Dir);
                        }

                        File.WriteAllText(Dir + Path.GetFileName(dlg.FileName), writeFileContent, UnicodeEncoding.Unicode);

                        UnicodeFilePath.Text = ( Dir + Path.GetFileName(dlg.FileName) ).Replace(HomeDirectory.Text, "")

                                                                                                                  .Replace("\\", "/");
                        if(MessageBox.Show("메모장에서 보시겠습니까?", "확인", 

                                               MessageBoxButtons.OKCancel) == System.Windows.Forms.DialogResult.OK )
                            System.Diagnostics.Process.Start("notepad.exe", Dir + Path.GetFileName(dlg.FileName));
                    }
                }
            }
            catch( Exception ex ){
                MessageBox.Show(ex.Message);
            }

웹브라우져 Extended .NET 2.0 WebBrowser Control

http://www.codeproject.com/Articles/13598/Extended-NET-2-0-WebBrowser-Control

 

 

HTML Editor The most complete C# Webbrowser wrapper control

http://www.codeproject.com/Articles/18935/The-most-complete-C-Webbrowser-wrapper-control

 

Zeta HTML Edit Control

http://www.codeproject.com/Articles/43954/ZetaplusHTMLplusEditplusControl 

 

A Professional HTML Renderer You Will Use

http://www.codeproject.com/Articles/32376/A-Professional-HTML-Renderer-You-Will-Use

'-- CodeProject Link' 카테고리의 다른 글

SSMS ADDIN 관련 LINK  (0) 2016.10.07
어셈블리버젼 자동증가?  (0) 2013.09.24
익스플로어 탐색기 메뉴추가/삭제  (0) 2013.09.24
CodePlex] Odyssey WPF Controls  (0) 2013.09.06
codeproject] Some Cool Tips for .NET  (0) 2013.09.06

 

 또 하나의 플젝이 끝나고 집에서 또 쉰다.

 

이번 프로젝트는 일보다는 출퇴근이 너무 힘든 플젝이었다. 버스로 1시간 20분정도를 앉아서 출근 또는 서서 퇴근, 하든가 아니면 지하철을 연계해서 다니는데 또 걸어서... 버스와 비교해서 딱 10분차이정도 빠르다.  그리고 버스를 타면 대방역 전에 병무청? 이란 정류장... 똥냄시가 그렇게 나는지... 거기 아파트도 많던데 사람들은 어떻게 사는거야...

 

프로젝트는 기존에 했던 굿센소속으로 갔기에 소스코딩은 쉬웠다. 3년간 업데이트 해온 소스변환프로그램의 디자이너를 테스트 해보기에도 딱 좋은 프로젝트! 

현재 소스 디자이너는 xaml이나 html에 사용하기 좋다.

 

결과는 너무 좋다.

 

기본적인 Select SP만 가진 조회성 페이지는 소스의 80%는 10분내에 만들어서 프로젝트화 할 수 있다.

 

나머지는 어차피 유효성 체크라던가 sp에 들어가는 파라미터, 각 컨트롤마다 추가/삭제되는 이벤트 처리등을 조정하면

 

대략 체크해본바 1~2시간에 페이지를 만들어내고 테스트를 완료 할 수 있다.

 

다음 insert, update, delete 까지 있는 경우 1시간~2시간정도 더 추가가 소요된다.

 

직접 해본 결과로는 점심 먹고 시작해서 6시 퇴근전에 끝이 난다.

 

기존 만들어진 소스를 읽어들이는 부분도 구현 및 테스트는 되었으나 직접적으로 사용하진 않았다.

 

그리고 또 하나 일정이력을 관리하는 프로그램을 테스트하기도 딱 좋았고 추가할 사항들을 기록해 왔다.

 

하루 쉬고 나니 다음 일자리는 좀 걱정이 된다.

 

 

 

'--- 취미 > 생각하기' 카테고리의 다른 글

티브로드. 한빛넷... 해킹차단 서비스?  (0) 2015.09.19
메르스 좀 사라져라...  (0) 2015.07.01
GUI Design Studio  (0) 2013.09.06
휴식] 멘붕? ...  (0) 2013.06.10
IQ테스트?  (0) 2012.11.05

 

이미지를 클립보드에서 복사해서 붙여넣기를 하면...

 

썸네일 화면과 큰이미지 화면으로 분리되어서 볼수 있음.

 

썸네일을 클릭시 해당 화면까지 순차적으로 이동! 

 

 

 

 

> 넘어가는것을 찍었는데 스샷이 이렇게 됨.

 

http://www.codeproject.com/Articles/31236/How-To-Update-Assembly-Version-Number-Automaticall

 

어셈블리 정보를 수정하는 방법에 대해 나옴.

 

자동증가인지는 모르겠눼

 

 

옆에 관련 아티클 중

 

http://www.codeproject.com/Articles/10566/Version-Control-Tool

 

요런것도 있네?

'-- CodeProject Link' 카테고리의 다른 글

SSMS ADDIN 관련 LINK  (0) 2016.10.07
Code Project] 웹 브라우져  (0) 2013.10.15
익스플로어 탐색기 메뉴추가/삭제  (0) 2013.09.24
CodePlex] Odyssey WPF Controls  (0) 2013.09.06
codeproject] Some Cool Tips for .NET  (0) 2013.09.06

http://www.codeproject.com/Articles/10104/Add-a-context-menu-to-the-Windows-Explorer

 

탐색기에 아이템 선택 시 ContextMenu를 추가/ 삭제하는 방법이 있음.

 

 

'-- CodeProject Link' 카테고리의 다른 글

Code Project] 웹 브라우져  (0) 2013.10.15
어셈블리버젼 자동증가?  (0) 2013.09.24
CodePlex] Odyssey WPF Controls  (0) 2013.09.06
codeproject] Some Cool Tips for .NET  (0) 2013.09.06
codeproject] 파일 브라우져  (0) 2013.09.06

 

테마를 바꾸면 지정된 색상으로 변경하는 것을 만들어봄.

 

상용컨트롤 보면 각 색상스타일 값에 따라 화면 스타일이 바뀌는 것 처럼 구성해서 만들어봄.

 

각 컨트롤별 스타일 객체를 생성가능.

테마별 폴더 관리.