본문 바로가기
개발/자바 웹 개발

[자바 웹 개발] '자바'란? '자바'의 특징

by 쏠프로 2023. 11. 19.

자바 Jaba 특징
자바 Java 특징 (배경: 이젠아카데미컴퓨터학원 종로캠퍼스)

본 포스팅은 '이젠아카데미컴퓨터학원 종로캠퍼스'에서 진행한 윤대명 선생님의 강의를 듣고 공부한 내용을 정리한 것입니다.

*참고 자료: 신용권, 『이것이 자바다』, 한빛미디어(주), 2015.

자바 Java 기본서 사러 가기

 

이것이 자바다

COUPANG

www.coupang.com

목차


    1. '자바'란?

    • 1995년에 '썬마이크로시스템즈(Sun Microsystems)'에서 만들었습니다.
    • 1991년에 가전제품에 사용할 목적인 '오크(Oak)'로부터 시작이 됐습니다. 90년대에 인공지능 세탁기가 나왔습니다. 이전에 세탁기는 온도, 탈수 등을 다 다이얼로 조종하는 아날로그였습니다. 버튼 하나만 누르면, 담겨있는 빨래의 양을 보고 알아서 물의 양, 탈수 시간, 헹굼 시간 등 자동으로 작동하는 세탁기를 프로그램하기 위해 '오크'를 만들었습니다. 이후 1995년에 개발 키트가 나오고 프로그램 언어가 나왔습니다. (1995년에 우리나라엔 486 컴퓨터가 있었고, PC 통신을 겨우 하던 때였습니다.)
    • '자바'로 이름이 바뀐 이유는 뭘까요? '자바'라는 랭귀지의 목표는 웹 프로그래밍입니다. 처음부터 끝까지 웹 프로그램을 위해서 만든 언어 중에 하나입니다.
    • 2010년 '오라클(Oracle)'에서 인수해서 관리하고 있고, 개발할 수 있는 개발 팁 같은 것을 무료로 배포해 주고 있습니다. '오라클'이라는 회사는 '자바'라는 언어도 갖고 있고, 데이터베이스 시스템도 만들고, 폴라리스라는 유닉스 운영 체계도 가지고 있고, 웹로직이라는 웹 애플리케이션 서버도 가지고 있습니다. (삼성보다 훨씬 큰, 굉장히 큰 회사입니다.)

    2. 자바의 특징

    1. 이식성이 높은 언어
    2. 객체 지향 언어
    3. 함수적 스타일 코딩 지원
    4. 메모리를 자동으로 관리 (자바의 가장 큰 특징)
    5. 멀티 스레드(Multi-Thread) 쉽게 구현 가능
    6. 동적 로딩(Dynamic Loading) 지원
    7. 막강한 오픈 소스 라이브러리 풍부

    2-1. 이식성이 높은 언어

    • 프로그램을 한 번 해 놓으면, 어떤 운영체제에서도 프로그램이 다 돕니다. 획기적이죠! 자바라는 랭귀지는 프로그램을 한 번만 하면 어디서든(ex. 윈도우 10, 윈도우 11, 윈도우 7, 리눅스 등) 다 쓸 수 있습니다. 2002년 전에는 자바를 거의 안 썼던 우리나라는 2002년 벤처 붐이 쭉 가라앉으면서부터 전체적으로 자바로 다 바뀌었습니다. 하나의 프로그램을 만들어 놓고 윈도우, 리눅스, 맥 등 세상 모든 운영체제에서 다 돌아가는 프로그램이 완성됩니다.

    컴파일 강의 교안
    신용권, 『이것이 자바다』 강의 교안 (출처: 한빛미디어)

    • 자바는 Open API이기 때문에 무료입니다. (교육용의 경우에만 해당합니다.) 단, 회사에서 영리 추구로 자바 랭귀지를 가져다 쓰는 경우는 라이선스 비용을 청구합니다.

    2-2. 객체 지향 언어

    • 객체 지향 언어는 영문으로 OOP(Object Oriented Programming/객체 지향 프로그래밍의 약자)입니다.
    • 어떤 프로그램을 할 때, 첫 번째 줄부터 천 번째 줄까지를 한 개의 파일에 쭉 프로그램을 했다 가정합시다.
      - 구조적인 언어: 프로그램이 진행되다가 어떤 결과가 나오면, 밑에서 결과 가져다 쓰고, 하면서 전체적으로 천 줄이 진행되면서 결과가 나옵니다. 대표적인 게 C입니다.
      - 객체 지향 언어: 자동차처럼, 2만 개에서 3만 개의 부품이 결합해서 만듭니다. 천 줄짜리에 들어가는 코드를 여러 개의 객체라고 하는 부분으로 쪼개서 조립을 시키는 것입니다. 자동차가 펑크가 나면, 타이어만 바꾸면 됩니다. 자바 랭귀지는 객체 지향 언어입니다.
    • 자바 랭귀지는 객체라는 개념을 도입을 하면서 프로그램을 손쉽게 하도록 만들어 주었습니다. 부품 객체를 먼저 만들고, 이것들을 조립해서 전체 프로그램을 완성하는 기법입니다.

    자바 객체 강의 교안
    신용권, 『이것이 자바다』 강의 교안 (출처: 한빛미디어)

    • 자바는 처음부터 OOP 개발용 언어로 설계가 됐고, 캡슐화, 상속, 다형성 등을 완벽하게 지원합니다. 부품 객체를 무지하게 만들어놓고 얘네를 조립해서 결론은 하나의 프로그램이 완성될 수 있습니다.

    2-3. 함수적 스타일 코딩 지원

    • 함수적 스타일 코딩 방식인 람다식(Lambda Expressions)을 지원해서 쓸 수 있습니다. '파이썬'식의 프로그램 할 수 있는 방법을 제공해 줍니다.

    2-4. 메모리를 자동으로 관리

    • 자바의 가장 큰 특징입니다.
    • 자바 랭귀지는 메모리를 자동으로 관리해 줍니다. 그래서 굉장히 편하고 다양한 애플리케이션 개발이 가능합니다. (C언어가 어려웠던 이유는 메모리를 직접 관리하기 때문입니다.)

    2-5. 멀티 스레드(Multi-Thread) 쉽게 구현 가능

    • 프로그램을 만들 때 내 프로그램 안에서 작업 단위를 다 나누는 것을 말합니다. 동시에 작업이 되도록 만들 수 있습니다.
    • 예를 들어, 게임을 실행시키면 프로세스 하나로 돕니다. 게임을 로딩해서 하기 시작하면, BGM이 나오고, 누군가는 공격을 하고 있고, 누군가는 유닛을 생성하고 있는 등 동시에 동작을 합니다. 그럴 때 이 스레드라는 게 없으면, 하나하나의 동작이 다 프로세스 단위로 돕니다. 이런 식으로 작업을 하려면 컴퓨터 사양이 정말 좋아야 합니다.
      ⇒ 하나의 프로그램 안에서 하나하나의 작업 단위를 나눠서 동시에 동작이 되게끔 하기 위해서 스레드를 이용합니다.

    관련 글 더 보기

    ▼'프로그래밍 언어'란?

     

    [프로그래밍 언어_자바] '프로그래밍 언어'란?

    본 포스팅은 '이젠아카데미컴퓨터학원 종로캠퍼스'에서 진행한 윤대명 선생님의 강의를 듣고 공부한 내용을 정리한 것입니다. *참고 자료: 신용권, 『이것이 자바다』, 한빛미디어(주), 2015. 자

    ssolely-it.tistory.com

    ▼프로그래밍 언어의 종류와 분류

     

    [프로그래밍 언어] 프로그래밍 언어의 종류와 분류

    목차 1. 프로그래밍 언어의 종류 프로그래밍 언어의 종류는 다양합니다. 프로그래밍 언어의 선택은 프로젝트의 목적과 요구 사항에 따라 달라질 수 있습니다. 주요한 몇 가지 언어는 다음과 같

    ssolely-it.tistory.com


    쿠팡 파트너스
    쿠팡 파트너스