아무거나 개발공부/JAVA 기초다지기

JAVA 기초다지기 (1) - Java Overview

코드 살인마 2022. 7. 5. 22:23
728x90

개요

사실 학부 때는 C++과 파이썬만 배우고 사용하였다. 졸업 후 SSAFY를 하면서 자바라는 언어를 처음 접했고, 대강 배워 프로젝트를 진행하였다.

 

C++ 짬밥이 있기 때문에 사용하는데 어렵지는 않았지만 C++과는 다른 점이 많았기에 회사에서 개발을 하면서 스스로 부족한 점을 느꼈다

 

마침 사내 교육사이트가 개편되어 다양한 플랫폼에서 강의를 들을 수 있게 되었고, 그 중 러닝스푼즈의 20년차 개발자의 실무 개발 노하우를 담은 JAVA 기초 라는 말에 끌려 바로 신청하게 되었다.

 

총 18강 열심히 달려볼 예정이고, 중요하다고 생각되는 내용을 블로그에 정리할 예정!

JAVA 언어의 특징

JAVA 설명은 생략한다...

JAVA 개발 도구

  • JDK(Java Development Kit) : 자바 개발 도구로 JVM, API, Compiler 등이 포함됨
  • JRE(Java Runtime Envvironment) : 자바 실행 환경으로 자바 애플리케이션 실행되기 위한 최소 환경 (.class파일이 동작할 수 있는 환경)
  • JVM(Java Virtual Machine) : 자바 애플리케이션을 해석하고, 로드하여 실행하는 가상머신

JAVA 특징

  • 플랫폼 독립적 : OS마다 별도의 실행환경을 제공함
  • 기존 언어는 OS에 맞게 컴파일 된 프로그램이 다른 O/S로 변경되면 기존 컴파일 된 것을 재사용 할 수 없음
  • JAVA는 애플리케이션이 JVM을 통해서만 통신을 하며 JVM이 OS와 통신하는 구조이고, OS 별로 JVM이 존재하여 설치되기 때문에 한번 개발된 JAVA 애플리케이션은 OS와 관계 없이 실행 가능함

일반 언어 vs JAVA

  • 객체지향 언어 (OPP, 상속, 다형성, 캡슐화 등등)
  • 멀티쓰레드를 지원
    • 타 언어에서 OS마다 구현방법 상이
    • JAVA는 OS와 관계없이 구현 가능하도록 API를 제공
  • 네트워크 분산처리 지원
    • 풍부하고 다양한 API 지원
    • 네트워크를 통해 객체 전송
  • 동적 클래스 로딩(Dynamic Class Loading) 지원
    • Runtime에 모든 프로그램(클래스) 로딩되지 않고, 필요한 시점에 로드하여 사용할 수 있음
    • 일부 프로그램이 변경되어도 전체 프로그램을 컴파일 하지 않아도 됨
  • 자동 메모리 관리(GC - Garbage Collection)
    • 시스템 레벨에서 Garbage Collector Thread가 자동적으로 더 이상 사용하지 않는 데이터를 메모리로 반환 하는 메모리 관리를 해주기 때문에 별도의 코드 필요 X
    • 자동으로 메모리 관리를 해주기 때문에 개발자는 비즈니스 코드에 집중할 수 있다.
    • GC지원으로 메모리로 인한 System이 crash 되는 일이 많이 줄었다.

참조