검색결과 리스트
JAVABEANS에 해당되는 글 1건
- 2013.02.16 [Java] 자바란?
글
[Java] 자바란?
벌써 4년전입니다. 2009년도에 비트 자바고급반을 수강하면서 학습한 내용을 Springnote에 꾸준히
정리했습니다. Springnote 서비스가 종료되고, 그 때 백업해 두었던 글들을 하나씩 티스토리로 옮기고
있는데... 열정과 흥미를 가지고 재미있게 공부했었던 그때 기억이 나네요.
2. 자바란?
자바 언어의 개발사인 썬은 spac 이란 서버제품군을 제작하는 회사였습니다.
낮은 H/W 마진을 개선하고자, 자사의 H/W 위에 마진이 높은 S/W(유닉스 등)를 얹혀서 팔려했는데
하드웨어마다 소프트웨어를 재작성해야 하는 문제가 있었습니다. 즉 다양한 머신 위에서
한번작성하면 동일하게 동작하는 S/W를 만들려는 노력해서 Java가 탄생하게 되었습니다
위키: http://en.wikipedia.org/wiki/Java_language
3. 자바의 장점
객체지향적, 플랫폼 독립적, 동적이고 배포하기 쉬우며... 견고하고 보안에 강하다!
하지만 객체지향적이고, 보안에 강하다는 특성을 살리는 것은 소프트웨어를 작성하는 개발자에 전적으로
달려있답니다. (무서운 강사님의 말씀...)
4. 플랫폼 독립적?
c언어는 컴파일러가 머신에 의존적인 기계어 코드(실행파일)를 생성합니다. 유닉스, 리눅스, 윈도우, 맥에서
실행하기 위해서는 소스 수준에서 재컴파일이 필요합니다.
자바는 OS와 소스코드 중간에 JVM(Java Virtual Machine)이라는 중간계층을 두어 이를 해결했습니다.
소스코드를 가산머신이 인식할 수 있는 중간언어인 바이트 코드로 컴파일해서 배포합니다. 그러면 각 OS에
설치되어 있는 JVM이 바이트 코드를 기계어로 번역하여 실행합니다.
(단, 각 OS 마다 각 머신에 맞는 JVM이 설치되어 있어야 합니다. 한번만 설치하면 되니까 매번 소스를
재컴파일해야 하는 것보다는 훨씬 유연성이 있죠)
5. 기업 인터넷 환경에서의 Java
유연성을 위해 3-Tier(프레젠테이션 계층-비지니스 계층-데이터(DB) 계층)의 형태로 구성됩니다.
현재는 더욱 확장된 N-Tier로 구성된다고 하네요.
PS. Three Tier를 삼-Tier로 읽는 센스 ㅋ
6. JVM 의 동작방식
클래스 로더가 소스코드를 스캔하여 모든 필요한 클래스를 로드합니다. 필요한 클래스 위치는 CLASSPATH
환경변수를 참조하게 찾게됩니다. JVM Verifier 가 오작동 될 수 있는 코드(무한루프와 같은...)를 검사해서
사전에 차단합니다. 이어서 바이트 코드를 실행하게 되는데, 이때 JIT(Just-In-Time) 컴파일러가 동작합니다.
즉 소스코드와 (컴파일된 .class)클래스 파일의 수정일자를 비교해서, 소스코드가 더 나중에 수정됐을 경우에만
재컴파일하게 됩니다.
(PS. JIT를 도입해서 자바의 느린 성능을 어느정도 극복했고, 버전업 될때마다 크게 향상되고 있습니다.
또 가비지 컬렉터라는 메모리 관리자가 더이상 사용되지 않는 객체를 수시로 검사하여 자동으로 메모리를
반환해줍니다)
7. 자바환경에서 보안 구현
언어차원과 컴파일러, 클래스 로더, 바이트코드 검증기(Verifier) 등 계층적으로 위해한 코드를 차단해줍니다.
8. 자바 애플리케이션의 배포방식
.zip 또는 .jar로 압축해서 배포합니다. .jar은 단순히 소스만 압축할 수도 있고, 클래스파일까지 함께 압축해서
실행가능한 형태로 만들 수 있습니다. 웹에서는 .war 형태로 압축해서 배포됩니다.
9. JDK(Java Development Kit)
통상 J2SE를 지칭합니다.컴파일러, 코어클래스 라이브러리, 디버거, JVM, JAR(Java ARchive utility) 등으로
구성됩니다. Java 1.2버전 이후부터 대폭 내부구조가 개선되었는데 이를 표현하기 위해 1.2버전 이후부터는
JAVA2라고 부릅니다. (웹2.0 처럼 큰 변화가 있었다는 의미이지요).
JAVA2에는 J2SE, J2ME, J2EE 이렇게 3가지가 있습니다.
J2ME는 모바일 환경의 S/W 작성을 위해 필요한 클래스만 추려낸 버전이고, J2EE는 기업환겨에 맞게 병렬실행
등을 강화한 버전입니다.
10. 자바빈즈(JavaBeans)
Beans는 땅콩을 의미하는 땅콩은 알맹이를 껍데이가 감싸는 형태로 되어있죠.
클래스가 속성과 메소드를 깜싸고 있는 모습이 흡사 땅콩과 같다해서 자바빈즈라고 부릅니다.
보통 프레임워크에서 데이터 속성과 표준화된 getter, setter를 갖는 클래스를 빈즈라고 합니다.
11. 기본형 데이터 타입
기본형 |
크기 |
Wrapper 클래스 |
비고 |
boolean |
16비트 |
Boolean |
true, false |
char |
8비트 |
Character |
유니코드 사용 |
byte |
8비트 |
Byte |
|
short |
16비트 |
Short |
|
int |
32비트 |
Integer |
|
long |
64비트 |
Long |
|
float |
32비트 |
Float |
|
double |
64비트 |
Double |
|
'언어로그 > Java' 카테고리의 다른 글
| [java] 글 목록 (0) | 2015.09.03 |
|---|---|
| [Java] 자바란? (0) | 2013.02.16 |
| [java] 라이프 게임 (life game) (1) | 2013.02.03 |
| [java] 제13회 한국자바개발자 컨퍼런스 (0) | 2013.01.30 |
| Inner Class(내부 클래스) (0) | 2011.04.12 |
| 컬렉션(Collection) (0) | 2011.04.11 |