컴퓨터/컴퓨터 팁

자바 클래스, 프로젝트, 객체지향이란?

라이트트윈스 2014. 4. 27. 02:12

개인공부용을 위해 여기저기 긁어온것이므로 틀린내용이거나 누락된내용등이 있을수있습니다.

 

[CLASS (클래스)]

 

-클래스의 기본 구성-

자바는 클래스로 구성되어 있습니다
클래스는 다음과같이 4가지로 구성되어 있습니다.

 

             =CALSS=
Nested class / Method
            Field / Construct


1. nested class
말 그대로 클래스 안에 또 다른 클래스가 들어 있는 것입니다.
C로 말하면 구조체 안에 구조체가 정의되어 있는 것과 같습니다.

 

2. method
c 언어의 함수와 비슷한 기능을 합니다.
특정 기능을 수행하는 역할입니다.

 

3. Field
c에서는 변수라고 부르는 것으로 데이터를 저장하는 공간입니다.

 

4. construct
클래스는 기본적으로 무조건 1개의 생성자가 필요합니다.
생성자를 따로 생성하지 않으면 자바 내부에서 default 값으로 아무것도 하지 않는 생성자가 호출됩니다.
생성자의 역할은 Feild 값들을 초기화해주는 역할입니다.

 


-클래스의 개념-

c를 빗대어 설명하면 편합니다.
c에서는 원하는 자료형들의 집합을 struct로 모아 놓았습니다.
자바에서도 이런 기능을 지원하는 것이 클래스입니다. 다만, 기능적으로 좀 더 확장을 했습니다.
특정 자료를 모아놓고 그것에 필요한 기능까지 첨가한 것입니다.
즉, struct + function입니다.

 

가장 흔한 예가 String클래스입니다. String 이라는 자료형은 문자열에 대한 데이터 저장 공간 뿐만 아니라 특정 기능도 제공합니다.
예를들어
String st;
st.equals(arg0);
st라는 String 저장 공간에 데이터를 저장하고
st.equals()라는 메서드(함수)의 기능을 사용합니다.

 

다시 말하지만 원하는 자료형과 그에 관련된 기능을 합친것이 클래스입니다.

 

 

-클래스의 사용-

클래스를 사용하기 위해서는 객체를 통한 접근 방식이 있습니다.
C에서 구조체를 사용하기 위해서 구조체형 자료를 선언하듯이 자바에서도 클래스를 사용하기 위해서는 해당 클래스의 객체를 선언하여 접근합니다.
접근하는 방법은  . 연산자를 통해서 입니다.
그러나 굳이 이렇게 클래스 객체를 따로 선언하지 않고도 접근할 수 있는 경우가 있는데 이것이 바로 static 입니다.
static은 자바가 실행시에 바이트코드로 이미 그 정보가 저장되어 있기 때문에 따로 클래스 객체를 선언하지 않고도 사용가능합니다.
대표적인 예가 System.out.println();입니다.
out이라는 것이 static으로 선언되어 있기 때문에 해당 클래스의 이름만 가지고도 접근이 가능한 것입니다.


출처 : http://blog.naver.com/zkd1750?Redirect=Log&logNo=90193241859
기타 참조 : http://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D

 

----------------------------------------------------------------------------------------------------------


[프로젝트]


프로젝트란 다음의 네 가지 의미를 내포하는 것이 보통이다.

 

첫 번째로 프로젝트는 명확한 목표가 존재한다.
특히 대형 프로젝트에 들어가면 사무실 내에 큰 현수막에다가 ‘Go Live D-100(100일 후에 시스템 가동)’이나 ‘에러율 0% 시스템 완성’ 등의 구호를 걸어놓은 경우가 많다고 한다.
또한 프로젝트를 진행할 때 발생되는(작성해야 하는) 각종 산출물로 프로젝트의 범위와 목표를 명확히 한다.
그래서 프로젝트에 투입되는 처음 며칠 또는 몇 주는 프로젝트에서 팀원들이 공유 파일 서버에 있는 각 단계별 산출물을 파악함으로써 프로젝트의 목표와 범위 외에 그 동안의 이력과 향후 계획을 파악한다.

 

두 번째로는 그 목표를 어떻게 추진해나갈 것인가의 기술적,관리적 해결 방법이 있어야 한다.
이는 프로젝트를 발주하는 측에서 해당 프로젝트에 입찰하는 업체를 선정하기 위한 기준으로 우선적으로 검토하는 사항이다.
그래서 신규 프로젝트에 대한 입찰공고가 나면 해당 프로젝트에 대한 기술 및 추진력을 가진 업체에서는 그 프로젝트를 어떻게 기술적, 관리적으로 해결해나갈 것인지를 제안서에 상세히 기술한다.

 

세 번째로는 그 목표를 추진해서 실현해나갈 사람들의 구성, 즉 팀이 있어야 한다.
이것 또한 프로젝트 제안서에 어떤 기술력을 가진 인력들을 어떻게 투입해 관리할 것인지를 명시하고 있다.
 그리고 대체로 관련 프로젝트에 대한 경험이 있는 사람들이나 업체를 중심으로 프로젝트 팀원을 구성하는 경우가 많다.

 

네 번째로는 프로젝트에는 목표 시스템을 구성하기 위한 하드웨어 및 소프트웨어가 있다.
규모가 큰 프로젝트일수록 고급 서버가 도입되고, 이를 논리적, 물리적으로 구성하는 방안도 복잡해진다.
 이를 구성하는 사람을 ‘시스템 아키텍처러’라 하고 프로젝트 초반에 주로 굵직한 골격을 만들어 줌으로써 향후 개발시에 무리가 없도록 시스템을 구축한다.
앞에서 말한 4가지 사항을 종합하면 프로젝트는 다음과 같은 정의를 내릴 수 있겠다.

 

◆ 프로젝트의 정의 : 어떤 목표를 위해서 여러 사람이 팀을 이루어 소프트웨어 및 하드웨어로써 정해진 기간에 그 목표를 달성하는 일련의 과정

 

‘자바 프로젝트’는 기술 관점에서 자바 기술이 핵심 비즈니스 로직을 구성하는 경우이다.
실제로 회사에서 수행하는 프로젝트 이름을 얘기할 때는 ‘자바 프로젝트’라고 말하지는 않는다.

 

출처 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039130260&type=det
[자바 프로젝트 성공 노하우] ① 프로세스 탐험기 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039130260&type=det
[자바 프로젝트 성공 노하우] ② 성패를 가르는 핵심 요인 : http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039131142

 

----------------------------------------------------------------------------------------------------------


[객체지향]

 

객체의 사용을 지원하는 시스템이나 언어에 적용되는 용어.
객체 지향 프로그래밍(OOP) 언어로서의 요건을 구비하고 있음을 나타내는 용어.
이 요건은 데이터의 추상화, 정보의 캡슐화, 객체 간의 메시지 교환, 동적 구속, 계승의 5개 항목이다.

 

객체 지향 프로그래밍이란(OOP)

실세계의 현상을 컴퓨터상에 객체로 실현(모델화)함으로써, 컴퓨터를 자연스러운 형태로 사용하여 다양한 문제를 해결하기 위한 프로그램 기법. 여기에서 객체는 실체(데이터)와 그 실체와 관련되는 동작(절차, 방법, 기능)을 모두 포함한다. 기차역에서 승차권 발매의 예를 들면, 실체인 ‘손님’과 절차인 ‘승차권 주문’은 하나의 객체이고, 실체인 ‘역무원’과 절차인 ‘승차권 발매’도 하나의 객체이다. 어떤 과제를 처리하기 위해 객체 간에는 메시지(지시)를 주고받는다. 메시지를 받은 객체는 동작(절차)을 실행한다. 코볼 L이나 베이식과 같은 기존 프로그램에서는 동작과 절차를 중심으로 하고 실체는 종속적으로 취급했으나, 객체 지향 프로그램에서는 실체와 동작을 객체로 정의하고 객체 간의 메시지 교환에 주안점을 두어 정보를 처리한다. 즉, 객체 지향은 과정을 중시하는 절차 중심의 설계가 아니고, 실체를 중시하는 설계이다. 객체 지향 프로그램의 또 하나의 중요한 특징은 공통의 성질을 갖는 객체는 객체 등급으로 정의한다는 점인데, 같은 등급에 속하는 객체들은 그들이 받는 메시지에 대하여 비슷하게 반응한다. 객체 등급은 계층화할 수 있으며, 하위 계층의 객체 등급은 상위 등급의 성질과 기능을 계승한다. 따라서 객체 지향은 시스템의 모듈화, 캡슐화를 촉진하여 복잡화, 거대화되는 소프트웨어를 사용하기 쉽고, 작성하기 쉬우며, 유지 보수하기 쉬운 방향으로 재구축하는 새로운 기법으로 각광받고 있다. 객체 지향 프로그램은 스몰토크와 같은 객체 지향 언어로 작성된다.

 

출처 : http://terms.naver.com/entry.nhn?docId=1599603&cid=2955&categoryId=2955
기타 참조 : http://ko.wikipedia.org/wiki/%EA%B0%9D%EC%B2%B4_%EC%A7%80%ED%96%A5_%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D