코딩

Day 01 - 40살 아재도 배우는 Java 자바란?

Ledlaputa 2019. 11. 21. 11:39

4차산업 시대에 코딩은 이제 초등학생은 물론 연령을 막론하고 배워야 할 중요한 기술이 되고있다. 

어느때 보다 다양한 언어가 제공되고 있는 이때 어떤 언어를 배워야 할까 고민이 많을 수 밖에 없다. 

나 또한 게임 개발 필드에서 20여년 가까이 일을 하다보니 (분야는 기획과 관리직) 자연스럽게 프로그래밍 언어에 관심을 가질수 밖에 없었다. 

자투리 시간을 쪼개어 C언어 학원과 다양한 교재 그리고 온라인 강의를 듣기도 했고, 배우기 쉽다는 파이썬과 같은 언어도 접해 보았다. 

사람마다 습득의 차이는 있겠지만 나와 같은 문과/예체능 전공자에게는 프로그래밍을 배운다는 것은 녹녹치 않은 일이다. 

 

각기 여러가지 이유로 코딩/프로그래밍에 관심을 가지고 접근할 것이다. 

어떤 사람은 단순한 취미로, 혹은 게임을 만들고 싶어서, 또는 자신만의 비즈니스를 하기 위해서 등 접근 이유는 다양하나 배울수 있는 언어는 비교적 정해져 있는것 같다. 

 

 

어떤 언어로 시작할까? 

  • HTML/CSS자바스크립트
  • 파이썬
  • 자바
  • C/C++ 

 

아마 코딩 초급자들이 처음 고민하는 언어의 종류가 위의 5개 정도일 듯하다. (나도 그랬었다) 

 

 

C/C++

프로그래밍 언어의 대표인 C/C++은 열정적인 초급자들이라면 누구나 한번쯤 시도해 봤을것이다. 

나도 몇년에 걸쳐 몇번의 시도를 했으나, 실제 책이나 강의를 듣고 이해하는 것과 실제 코딩을 하는것에는 차이가 분명 있었다. 

 

HTML/CSS

웹 언어인 HTML/CSS는 배우기가 다른 언어에 비해 상당히 쉽다.

하지만 프로그래밍 언어라기 보다는 웹 디자인 정도에 적합한 언어로 프로그램의 개념을 파악하기는 다소 부족함이 있다. 

하지만 웹개발을 위해서는 반드시 알아두어야 할테니 본격적인 프로그래밍 언어 공부 전에 워밍업으로는 딱 좋다고 할수 있다. 

 

자바스크립트 

스크립트 언어이지만 활용성이 매우 높고 프로그래밍 언어의 기능을 충분히 해주고 있어 배우기 좋은 언어이다. 

웹쪽에서의 활용이 매우 높고 이외에도 다양한 분야에서 활용성이 좋다. 

하지만 단순히 스크립트 언어라고 우습게 볼수는 없다. 깊이 들어가면 배워야 할 양이 상당하다. 

웹 공부를 하면서 공부를 조금 했지만 특히 프론트엔드 웹 개발에서는 필수이다. 

 

파이썬 

파이썬은 초보자가 배우기 쉬운언어이다. 영어 문법과 비슷한 고급언어로 만들어져 전문적인 언어로는 배우기가 쉽다. 

머신러닝과 서버쪽에서 활용도가 높은 언어로 책을 통해서 빠르게 배워볼수 있으나, 서버쪽에 특화된 언어인지라 클라이언트나 프로트엔드 쪽에서 보여지는 측면이 다소 약하다. 

초보자 서적을 보면 간단한 게임을 만드는 예제도 있어 재미를 느낄수 있다. 

 

자바 

자바는 본격적인 객체지향언어이다. HTML/CSS/JS와는 달리 C와 같은 본격적인 프로그래밍 언어에 속한다. 

그만큼 배워야할 내용이나 깊이가 다르다고 할 수 있다. 

C언어에서 항상 어려웠던 포인터가 자바에서는 사라지면서 메모리 관리에 개발자가 관여하는 부분이 줄어들었다. 

또한 본격적인 객체 지향의 개념이 적용되어 이후 나타나는 C#과 같은 언어와 거의 같은 문법적 구조를 지니고 있다. 

물론 이공계 프로그래머 입장에서는 자바도 쉬운 언어이기는 하나 나와 같은 문과/예체능 출신에게는 자바는 그리 쉬운 언어라 하기는 부담이 된다. 하지만 충분히 도전하고 배워볼 만한 언어라고 생각한다. 

 

그렇다면 자바란 어떤 언어이고 어떻게 배워야 할지 하나씩 같이 배워가 보자 

나이 40중반에 시작한 프로그래밍이지만 늦은밤 공부하는 재미를 주는 도전할 만한 프로그래밍 언어라고 생각한다. 

 


왜 자바(Java)인가 ? 

자바(JAVA) 개요

Sun Microsystems에서 1995년 제임스 고슬링을 중심으로 개발된 객체 지향 프로그래밍 언어이다. 현재는 오라클이 Sun을 인수하여 Java의 라이센스는 오라클이 소유중이다. 

개발 통합 환경으로  : Eclipse가 있다. 

 

C언어와 자바의 비교

우리가 언어하면 떠오르는 C언어와 자바의 개발 단계를 비교해 보자 

 

C언어 개발 단계

  • 작성도구 : visual studio
  • 코드 예시 
printf("%d\n",100);

 

자바 언어 개발 단계 

  • 작성도구 : Eclipse 
  • 코드 예시 
main {
System.out.println("자바 언어 배우기");
}
 
 
위의 C언어와 자바언어를 비교하면 C언어는 해당 OS에서 컴파일해 바인딩까지 해서 실행되는 반면, 자바는 Just in time compile에서 내가 사용하는 OS에 맞게 처리가 된다. 
(자바와 유사한 C#의 경우는  Just in time compile 이 윈도우 OS에서만 가능하다) 
 
자바는 개발환경과 실행환경이 달라도 되는 하이브리드한 구조를 지닌 장점을 가지고 있다. 
일반적으로 개발은 JDK(Java Development Kit )실행은 JRE(Java Runtime Environment )에서 구동된다. 
 
JDK와 JRE
JDK( Java Development Kit )는 자바 개발도구로 자바 프로그래밍을 할 때 필요한 컴파일러 등이 들어 있습니다.
JDK 를 설치했다면 아래의 JRE도 같이 설치된다. 

JRE (Java Runtime Environment)는 컴파일된 자바 프로그램을 실행시킬 수 있는 자바 환경을 만드는 것으로 자바 프로그램을 실행시키려면 JRE 를 반드시 설치해야 한다. 


자바의 특징 (장점) 

1. 메모리 관리를 수월하게 할수 있는 장점 (포인터 제거, 자동 가비지 컬랙터) 
2. 언어에 컬렉션(Collection 데이터의 집합, 그룹 ) 추가 
3. 본격적인 객체지향 언어 
 
 
초보자가 배우기에 자바는 위의 특징만으로 무엇이 더 장점인지를 파악하기는 쉽지 않으나 C언어를 한번이라도 공부해본 사람에게는 자바는 도전해볼 만한 상대로 비쳐질 수도 있다. 
본격적인 프로그래밍 언어로 자바는 활용면에서나 언어적으로나 많은 장점이 있다고 본다. 특히 웹개발쪽과 사물인터넷 등에서는 자바의 활용성이 높다. 또한 안드로이드가 자바가 기반임은 모두다 알고 있을 것이다. (안드로이드 개발 환경인 안드로이드 스튜디오에서는 자바 언어를 사용한다) 
 
C언어와 같이 하드웨어에 밀접하고 고성능의 효율을 요구하는 개발이 아니라면 자바는 충분히 사용하기 좋은 언어임에는 틀림없다. 
 
구글 트랜드로 주용 프로그래밍 언어를 살펴 보아도 자바의 인기를 알수 있다. 
 
 
 
자바와 관련해서 아직도 배우고 있는 40대 비전공자이지만, 다시 한번 배운다는 생각으로 지금까지 정리한 자바 관련 내용을 같이 공유할 생각이다. 
 
프로그래밍을 하고 싶고 배우고 싶은데 비전공자라, 혹은 나이때문에 못하고 있는 사람이 있다면 한번 도전해 보는 것은 어떨까 생각한다. 
 
다음 시간에는 본격적으로 자바 프로그래밍을 하기 위한 준비와 간단한 자바 실습을 해볼까 한다. 
첫 블로그 포스팅이랑 생각보다 시간도 많이 걸리고 다소 산만한 것 같았지만 꿋꿋하게 앞으로 계속 써볼까 생각이다. ^^