한 눈에 끝내는 자바 기초
    • 01
      시작하기에 앞서
    • 강의의 방향
      프로그래밍이란?
      자바란?
      실습 환경 구축 - 구름IDE
      자바 맛보기 - 반복문
      자바 맛보기 - 조건문
    • 02
      자바 프로그래밍 시작하기
    • 학습 목표
      JVM과 SDT
      Garbage Collector
      POP/OOP
      콘솔 출력
      구름IDE로 복습하기
      정리
    • 03
      메모리와 자료형
    • 학습 목표
      메모리란?
      변수? 상수?
      자료형 - 숫자 기본형
      자료형 - 그 외 기본형
      자료형 - 참조형
      형변환
      정리
    • 04
      연산자
    • 학습 목표
      연산자(Operator)
      대입연산자(=)
      산술연산자
      복합대입연산자
      비교연산자
      전위/후위 연산자
      논리연산자
      비트/시프트 연산자
      연산자 우선순위
      심화: 오버플로와 언더플로
      정리
    • 05
      조건문/선택문
    • 학습 목표
      if 문
      else 문
      else if 문
      switch 문
      정리
    • 06
      반복문
    • 학습 목표
      for 문
      이중 for 문
      while 문
      do while 문
      break / continue 문
      정리
    • 07
      메소드
    • 학습 목표
      메소드의 기본
      main 메소드
      메소드 사용하기
      오버로딩
      심화: Call by Value
      정리
    • 08
      배열 기초
    • 학습 목표
      배열의 선언
      배열 사용하기
      배열과 반복문
      정리
    • 09
      String
    • 학습 목표
      배열과 String
      Char 심화 이론: ASCII 코드
      String 심화 이론
      클래스와 String
      정리
    • 10
      클래스와 객체
    • 학습 목표
      클래스와 객체
      멤버(Member)
      생성자(Constructor)
      접근제한자
      static에 대하여
      정리
    • 11
      데이터 입출력
    • 학습 목표
      키보드 데이터 입력받기1
      키보드 데이터 입력받기2
      데이터를 파일로 출력하기
      데이터를 파일에서 입력받기
      String 활용하기
      정리
    • 12
      배열 심화
    • 학습 목표
      2차원 배열
      클래스 배열
      정리
    • 13
      상속
    • 학습 목표
      상속, 부모클래스와 자식클래스
      오버라이딩
      추상화 & 추상클래스
      interface
      정리
    • 14
      다형성
    • 학습 목표
      다형성이란?
      상속과 다형성
      정리
    • 15
      Exception
    • 학습 목표
      try-catch문
      Exception
      정리
    • 16
      테스트 프로젝트
    • 시작하기 전에
      책 관리 프로그램1
      책 관리 프로그램2
      책 관리 프로그램3
      해설 - NewBook
      해설 - PrintBook / SearchBook
      해설 - DeleteBook
      맺는 말
    자바란?
    01 시작하기에 앞서
    자바란?
    default

    자바(Java)는 1995년 미국의 '썬마이크로시스템즈'라는 회사에서 개발한 객체지향 언어입니다. 현재는 '썬마이크로시스템즈'가 엔터프라이즈용 DB로 유명한 회사 '오라클'에 인수가 되었고, 그 이후 자바는 '오라클' 사에 의해 배포되고 있습니다.

    아래 표는 티오베에서 프로그래밍 언어 순위입니다. 티오베 지수라고도 불리며 꽤 공신력 있는 프로그래밍 언어 순위를 보여줍니다. 보시다시피 2019년 6월 기준 1위, 2020년 6월 기준 2위를 차지한 것을 볼 수 있습니다. 20년 이상된 언어임에도 놀라운 인기를 자랑하는 언어가 바로 자바입니다.

    default

    Java? JDK? J2SE?


    일반적으로 자바라 하면 프로그래밍 언어로 많이 알려져 있으나 개발 플랫폼에 더욱 가깝습니다. 실제로 자바 홈페이지에 접속해보면  J2SE(Java 2 Standard Edition), J2EE(Java 2 Enterprise Edition), JRE(Java Runtime Environment), JDK(Java Development Kit) 등 여러가지의 용어가 혼재되어 있는 것을 볼 수 있죠. 위에서 언급한 용어들은 모두 자바 플랫폼**을 사용한 개발 혹은 실행을 위한 API**라고 말할 수 있습니다. 따라서 자바를 활용하여 개발을 하기 위해서는 본인이 어떤 종류의 개발을 할 것인지 잘 판단하여 적절한 API를 사용하는 것이 필요하겠습니다.

    본 강의에서는 가장 보편적으로 사용하는 J2SE를 기준으로 사용하므로, 앞으로 진행될 강의에서 "자바"라고 말하는 내용은 전부 J2SE라고 생각하시면 되겠습니다.

    **플랫폼: 특정 소프트웨어를 구동할 수 있는 갖추어진 공간
    **API: 프로그램 작성을 위한 도구의 모음(함수, 라이브러리** 등)
    **라이브러리: 소프트웨어를 개발할 때 유용하게 사용할 수 있는 변수, 함수 등의 모음

    자바의 특징


    1. 쉬운 난이도
      : 자바는 기본적으로는 C와 C++의 문법을 차용한 언어입니다. 그러나 C와 C++에서 가장 이해하기 어려운 수준인 포인터, 다중 상속 등의 개념을 없애 문법적인 난이도를 매우 낮췄습니다. 따라서 C 혹은 C++을 사용해본 프로그래머라면 자바에 매우 쉽게 적응할 수 있을겁니다. 
    2. Garbage Collector
      : 컴퓨터는 메모리라는 어떤 저장 공간을 가지고 있습니다. 현실에서도 저장할 공간은 다양한 물건이 오고 가며 지저분해지기에 어느 순간 정리를 해야 하는 것처럼, 프로그래밍을 할 때 역시 메모리에 다양한 데이터 값을 넣고 삭제하는 작업을 하면서 메모리가 지저분해지는 경우가 발생합니다. 이런 경우, 자바에서는 Garbage Collector 라는 자동 메모리 정리 기능을 사용합니다.  Garbage Collector는 프로그램이 실행 중에 사용하지 않는 메모리를 자동 해제합니다. 이 기능 덕분에 자바 개발자는 메모리  관리를 염두에 두지 않고 프로그램을 개발할 수 있습니다.
    3. JVM(Java Virtual Machine)
      : Linux 운영체제에서 개발한 C 프로그램은 Windows 운영체제에서 실행했을 때 실행되지 않습니다. 반대의 경우도 마찬가지입니다. 이는 코드로 작성된 프로그래밍 언어를 해석하는데 사용되는 도구의 차이에서 발생합니다. 소스코드에서 프로그램으로 만들어지는 과정 중 컴파일링(Compiling)이라는 과정을 거치게 되는데, 이는 사람에 친화적인 컴퓨터 언어를 운영체제(Linux, Windows 등)가 이해할 수 있는 기계어로 번역되는 과정을 지칭합니다. 즉, 컴파일링을 거쳤을 때 Linux용 C 프로그램 소스코드는 Linux 기계어로, Windows용 C 프로그램 소스코드는 Windows 기계어로 번역되기 때문에 서로 다른 운영체제에서는 사용할 수 없습니다. (이런 소스코드의 언어를 Native Language라고 합니다. 대표적인 예로 C언어가 있습니다.)
      하지만 자바는 다릅니다. 자바는 JVM이 중간 다리 역할을 합니다. 운영체제와 프로그램 사이에서 프로그램이 동작하고 있는 운영체제가 무엇인지 판단한 뒤 해당 운영체제의 기계어로 다시 번역해주기 때문에 운영체제와 상관없이 프로그램을 실행할 수 있습니다. 
    질문하기