공부/java2014. 6. 8. 08:50

자바 언어의 주요 특징을 알아 보고자 합니다.

이미 자바의 역사는 오래 되었고, 인터넷에 많은 정보들이 널려 있지만 나름의 생각을 가지고 정리 해보고자 합니다.


자바하면 가장 대표적으로 떠오르는게 Write once, run anywhere 입니다.

자바의 철학이라고 할 수 있을 꺼 같습니다.


개인적으로 저 문장을 좋아 합니다.


어떠한 알 수 없는 이유로 선택 할 수 있는 것들이 제한이 된다면, 그건 매우 잘못 되었다고 생각합니다.


마치 자유를 억압 받는 듯한 느낌마져 듭니다.


이렇게 우리가 충분히 인지 하지 않으면 사람으로써 당연한 기본 권리인 자유를 매우 많은 곳에서 억압 받고 있다고 생각합니다. 우리 주변에는 그러한 것들이 너무 너무 많아서 가끔은 짜증이 날 때도 있지만, 이미 그러한 환경이 만들어진건 어쩔 수 없고 앞으로 나올 많은것들은 그러한 제한이 사라졌으면 하는 바램입니다.


그래서 저는 이러한 문제를 적극적으로 해결하고자 노력한 자바의 철학을 무척이나 좋아 합니다.


웹이라는 개념도 그러한 관점에서 매우 좋아하고요.


이 글을 읽고 계실 여러분들의 생각은 어떠하신지요?


사설이 길었습니다. 그럼 자바의 주요 특징을 간단하게 정리 및 개인적인 의견을 적어 보겠습니다.


영문 위키피디아에는 자바의 페러다임으로 아래와 같이 나열했습니다.

multi-paradigm, object-oriented, structured, imperative, functional, generic, reflective, concurrent


그리고 이러한 글도 보이는군요

출처 : 점프 투 자바

Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language


자바는 심플하다.

그 당시의 언어들에 비해 상대적이었겠죠. 하지만 요즘은 자바가 심플하다고 말하기 힘들지 않나 생각합니다. 많은 수의 함수형 언어들이 등장하고, 사용도 많이 하게 되면서 자바는 좀 복잡한 언어가 되어버렸다고 생각합니다.


자바는 객체 지향 언어 이다.

자바가 철저한 객체 지향언어라고 하지만, 100% 객체 지향 언어는 아니라고 생각합니다. 거의 100%에 가까운 언어라고 보는게 맞을꺼 같습니다.

이러한 이야기를 할때에 주로 예를 드는건 자바의 대표적인 primitive 타입에 대한 것입니다. 이 타입들은 객체지향하고 거리가 멀다고 생각합니다. 객체 하면 떠올리는 속성과 동작이 없기 때문이죠. 그리고 자바의 객체라면 당연한 Object 를 상속하지도 않습니다. null 도 포함되겠군요.

그래서 전 이렇게 이야가 하고 싶습니다. 자바는 거의 객체 지향 언어 이다.


자바는 플랫폼 독립적이다.

JVM 을 빼놓고 이야기 한다면 플랫폼 독립적이라고 할 수 있습니다.

어차피 JVM 은 플랫폼 독립적이 될 수 없기 때문에 JVM 을 빼고 이야기 해야 한다고 생각합니다.


자바는 안전하다.

자바는 안전했었던거 같다. 라고 하는게 더 맞지 않나 생각됩니다. 안전하다는 자바도 어차피 인간이 만드는것이라 헛점들이 많이 생길 가능성은 얼마든지 있고, 자바의 보안에 문제가 되는 경우도 있었으며, mutable 과 immutable 에 대해서도 느슨한 부분이 있다고 생각됩니다. 단, 자바는 정적인 언어이기 때문에 동적인 언어보다는 안전 할 수 있겠습니다.


자바는 멀티 쓰레드(동시성) 를 지원한다.

뭐.. 제대로 쓰기 시작하면 엄청나게 어렵다는게 함정이지만, 지원하는건 지원하는거니까요.


자바는 동적인 언어이다.

음.. 저는 자바는 정적인 언어인 걸로 알고 있었는데 어찌 된 영문일까요?

아마도 자바의 다양성 때문인것 같습니다. 자바는 인터페이스를 활용하면 인터페이스를 구현한 클래스에 대해서는 동적으로 사용이 될 수 있으니까 아마도 동적인 언어라고 표현하는것 같습니다. 추상 클래스도 한몫 하겠군요.


자바는 강력하다.

자바는 설계가 자연스럽다.

자바는 높은 성능을 보여준다.

자바는 분산 환경을 지원한다.

자바는 portable 하다.

자바는 imperative 하다.

자바는 generic 하다.

자바는 reflective 하다.


쓰다보니 왠지 안티 자바가 된것 같습니다만, 자바는 좋은 언어 입니다. 단지 자바의 특징이라고 하는게 제가 생각하는것들하고 맞지 않는것 뿐이지요.

그리고 최근 폴리그랏 프로그래밍 이라는 책을 읽어 보니 일부 지역은 자바가 서서히 사용이 적어지고 있나봅니다.

뭐, 크게 걱정할 부분은 아닌것 같습니다. 우리나라는 자바 천국 이니까요.


잘못된 내용 및 제가 잘못 이해하고 있는 부분에 대한 지적은 언제든 환영입니다.

'공부 > java' 카테고리의 다른 글

Java List 를 배열로 변환 하는 예제  (0) 2014.09.05
Java FileWriter 예제  (0) 2014.09.05
RejectedExecutionException 해결 방법 알아보기  (0) 2014.09.03
예외  (0) 2014.06.20
POJO  (0) 2014.06.10
Posted by #HanaLee
공부/GIS2014. 6. 7. 03:43

GIS 에 대한 정의를 한번 살펴 보고자 합니다.


우선 한글 wikipedia 에 있는 정의 입니다.

지리 정보 시스템(Geographic information system, 줄여서 GIS)은 지리공간적으로 참조가능한 모든 형태의 정보를 효과적으로 수집, 저장, 갱신, 조정, 분석, 표현할 수 있도록 설계된 컴퓨터의 하드웨어와 소프트웨어 및 지리적 자료, 인적자원의 통합체이다.

출처 : wikipedia


다음은 텀즈에 정의된 내용입니다.

GIS[지아이에스]는 데이터의 지리학적 형상을 마음속에 그릴 수 있게 해주는 시스템이다. 원래 GIS는 관계형 데이터베이스의 질의나 분석을 통해 어떤 종류의 지도의 형태로 결과를 받아볼 수 있게 한다. 많은 종류의 데이터들이 중요한 지리적 형상을 가지고 있기 때문에, GIS는 일기예보, 판매분석, 인구예측 및 토지이용계획 등 다양한 분야에 쓰인다.

출처 : 텀즈


영문 wikipedia 에는 좀 더 자세한 설명이 되어 있습니다.

A geographic information system (GIS) is a computer system designed to capture, store, manipulate, analyze, manage, and present all types of geographical data. The acronym GIS is sometimes used for geographical information science or geospatial information studies to refer to the academic discipline or career of working with geographic information systems and is a large domain within the broader academic discipline of Geoinformatics.


GIS can be thought of as a system that provides spatial data entry, management, retrieval, analysis, and visualization functions. The implementation of a GIS is often driven by jurisdictional (such as a city), purpose, or application requirements. Generally, a GIS implementation may be custom-designed for an organization. Hence, a GIS deployment developed for an application, jurisdiction, enterprise, or purpose may not be necessarily interoperable or compatible with a GIS that has been developed for some other application, jurisdiction, enterprise, or purpose. What goes beyond a GIS is a spatial data infrastructure, a concept that has no such restrictive boundaries.


In a general sense, the term describes any information system that integrates, stores, edits, analyzes, shares, and displays geographic information for informing decision making. GIS applications are tools that allow users to create interactive queries (user-created searches), analyze spatial information, edit data in maps, and present the results of all these operations. Geographic information science is the science underlying geographic concepts, applications, and systems.


The first known use of the term "Geographic Information System" was by Roger Tomlinson in the year 1968 in his paper "A Geographic Information System for Regional Planning". Tomlinson is also acknowledged as the "father of GIS".

출처 : wikipedia



지리 정보 시스템은 캡쳐, 저장, 조작, 분석, 관리 및 모든 유형의 지리 데이터를 제공하도록 설계된 컴퓨터 시스템이다. GIS 약어는 때때로 학문 또는 지리정보 시스템으로 작업한 이력을 참조 하는 지리정보과학 또는 지리정보연구로 사용되며 폭넓은 지리정보공학 학문 내에서 대규모 도메인 입니다.


GIS는 공간데이터 입력, 관리, 검색, 분석 및 시각화 기능을 제공하는 시스템으로 생각 할 수 있다. GIS의 구현은 종종 관할(예컨대 도시), 용도, 또는 어플리케이션 요구에 의해 달라진다. 일반적으로, GIS 구현은 조직을 위한 맞춤 설계가 가능하다. 따라서, 어플리케이션, 관할구역, 기업 또는 목적을 위해 개발되어 배포되는 GIS 는 또 다른 어플리케이션, 관할구역, 기업, 또는 목적을 위해 개발된 GIS 와 호환이 되지 않을 수 있습니다. 그 이상으로 GIS는 공간 데이터 인프라이며 경계의 제약이 없는 개념이다.


일반적인 의미에서, 이 용어는 통합, 저장, 편집, 분석, 공유, 및 의사 결정을 위한 정보인 지리 정보 표시를 하는 정보 시스템을 설명합니다. GIS 어플리케이션은 사용자가 만들수 있는 대화형 쿼리들 (사용자가 만든 검색), 공간 정보 분석, 지도 수정, 그리고 모든 작업의 결과를 제공 할 수 있는 도구 입니다. 지리 정보 과학은 지리 개념들, 어플리케이션들 그리고 시스템들의 기초 과학 이다.


"지리 정보 시스템" 용어는 1968년 로저 톰린슨의 논문 "지역 계획을 위한 지리 정보 시스템" 에서 처음 사용된 것으로 알려져있다. 톰린슨은 "GIS의 아버지"로 인정 받고 있습니다.


휴.. 영어 번역은 너무 힘드네요

Posted by #HanaLee
일상2014. 6. 7. 01:32



사실 제주에 들어 온 지는 꽤나 오래 됐지만 기록을 남길 겸 글을 써본다.


처음 제주로 옮길 생각을 하게 된 건 순전히 Daum 의 영향이 컸다.


또 다른 이유로는 서울의 복잡함과 소음, 공해 등등 여러가지로 편리한 도시이지만 육체적인 건강과, 정신적인 건강 모두 피폐해져 가는게 싫었던 것도 한몫 했다.


평범하게 대도시에서 사는 대부분의 내 또래 사람들은 제주라는 섬이자 외딴 곳으로 가는 것에 대한 우려가 있을 것이다.


하지만 난 거부한다. 제주도 사람이 사는 곳이니까. 그리고 그곳은 매우 아름답고 깨끗한 곳이라 생각하기 때문이기도 하다.


그렇게 제주에 새로운 거처를 마련하게 되었다.


그리고 목표로 하고 있는 Daum 에 합류하기 위해 오늘도 난 발버둥을 치는데...


아직은 직장이 서울이라 제주에 있는 나의 거처에는 한달에 한 두어번 방문을 한다.


그때마다 제주 구석구석을 여행한다.


여행을 하면서 느끼는것은 유명한 관광지가 아니면 사람이 아예 없거나, 거의 없다는 것이다.


제주에는 거의 모든 곳이 아름답고 의미가 있는 곳인데, 그러한 것들이 알려지지 않고 있다는건 좀 의아한 부분이다.


이유야 알 수 없지만, 언젠가 이런곳들도 사람들이 넘쳐나고 제주에 대해 제대로 알고 갈 수 있기를 바라는 마음이다.


현재 제주에 대해 가장 기억에 남는것은


이어도와 관련된 전설, 4.3사건, 516도로, 선문대, 산방산 등등


제주는 매력적이며 역사적으로도 흥미로운 곳이다.


제주 에서의 삶은 매우 유익한 경험이 될 것이다.

Posted by #HanaLee