JAVA

자바의 기초

bysnow 2021. 3. 13. 13:42
728x90
반응형
SMALL

교재 : 이것이 자바다(신용권, 한빛미디어)

첫날에는 Oracle에 접속해서 자바를 설치하는 것부터 수업이 진행되었다.

지금까지 코딩 강의를 들을 때면 늘 프로그래밍 언어나 편집기의 저장 경로를 대충 또는 잘못 설정하여 나중에 귀찮은 경우가 많았다. 따라서 컴퓨터에 깔려있던 자바jdk와 이클립스, atom등의 프로그램들을 모두 지운 후 강사님을 따라 처음부터 다시 설치하였다.

프로그래밍 언어란?

우리가 일상에서 사용하는 언어는 컴퓨터가 사용하는 언어와는 너무나도 다르다. 기계어는 0과 1로만 이루어진 이진 코드이기 때문에 사람이 이를 이해하기란 불가능하다. 사람의 언어를 컴퓨터가 이해하는 것 또한 불가능하다. 그렇기 때문에 사람과 컴퓨터가 대화하기 위해서는 두 언어 사이를 이어주는 역할을 하는 프로그래밍 언어가 필요하다.

프로그래밍 언어는 고급 언어와 저급 언어로 구분된다. 고급 언어란 컴퓨터와 대화할 수 있도록 만든 언어 중에서 사람이 쉽게 이해할 수 있는 언어를 말한다. 그러나 고급 언어로 작성된 소스 코드라도 컴퓨터가 바로 이해할 수는 없기 때문에 컴파일(compile)이라는 과정을 거쳐야만 한다. 즉, 소스(source)는 컴파일러에 의해 기계어로 변환된 후에야 컴퓨터에서 실행가능한 상태가 된다. 우리가 흔히 말하는 프로그램이란 컴퓨터에서 특정 목적을 수행하기 위해 프로그래밍 언어로 작성된 소스를 기계어로 번역한 것을 말한다.

자바의 특징

자바는 이식성이 높은 언어이다. 이식성이란 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것을 말한다. 예로 윈도우 운영체제에서 실행하는 프로그램을 리눅스 또는 유닉스에서 실행할 수 있다면 그 프로그램은 이식성이 높다고 말할 수 있다. 자바 언어로 개발된 프로그램은 소스 파일을 수정하지 않아도 자바 실행 환경(JRE, Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능하다.

자바는 객체 지향 언어이다. 객체 지향 프로그래밍 기법은 프로그램의 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 또는 연결해서 전체 프로그램을 완성하는 방식이다. 자바는 100%객체 지향 언어이다. 객체를 만들기 위해 설계도인 클래스를 작성해야 하고, 객체와 객체를 연결하여 목적에 맞는 프로그램을 만들어 낸다. 자바는 아무리 작은 프로그램이라도 객체를 만들어 사용한다. 이를 위해 캡슐화, 상속, 다향성 등의 기능을 완벽하게 지원하고 있다. 교재에 삽입된 그림은 객체 지향 프로그래밍 기법을 이해하는데 도움이 되었다.

자바는 함수적 스타일의 코딩을 지원한다. 최근 들어 대용량 데이터의 병렬 처리 그리고 이벤트 지향 프로그래밍에 적합한 함수적 프로그래밍이 부각되고 있다. 자바는 함수적 프로그래밍을 위해 람다식(Lambda Expressions)를 자바 8부터 지원하고 있다. 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집계 처리하는데 쉬워지고, 코드가 매우 간결해진다.

자바는 메모리를 자동으로 관리한다. C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 별도로 코드를 작성해야 한다. 이 작업을 게을리한다면 프로그램은 불완전해지고 갑자기 다운되는 현상을 겪기도 한다. 그러나 자바는 메모리를 직접 관리한다. 객체 생성 시 자동적으로 메모리 영역을 찾아서 할당하고, 사용이 완료되면 자동으로 Garbage Collector를 실행시켜 사용하지 않는 객체를 제거한다. 따라서 개발자는 메모리 관리의 수고스러움을 덜고, 핵심 기능 코드 작성에 집중할 수 있따.

자바는 다양한 애플리케이션의 개발에 매우 유용하다. 다양한 운영체제에서 실행되는 프로그램을 개발할 수 있기 때문이다. 자바는 다양한 운영체제에서 사용할 수 있는 개발 도구와 API를 묶어 에디션의 형태로 정의한다.

이 외에도 멀티 스레드를 쉽게 구현할 수 있으며, 동적 로딩을 지원하고, 오픈소스가 넘쳐난다는 장점이 있다.

-출처 : 이것이 자바다(신용권, 한빛미디어)-

운영체제란 내 기계에서 프로그램이 돌아가기 위해 구축된 환경이다. 그리고 자바는 운영체제 위에 자바 가상 머신을 설치한다. 자바 가상 머신(JVM, Java Virtual Machine)은 JRE를 포함하고 있다. 우리가 자바 코드를 작성하고 저장하면 loader에 의해서 .class 파일이 JVM으로 올라간다. 그리고 인터프리터에 의해 해당 .class파일이 해석된다.

즉 소스코드가 인터프리터에 의해 한번, 그리고 컴파일러에 의해 한번 해석되어야 하기 때문에 c언어보다 속도가 느리다.

코딩을 할때 주석을 사용하는 것은 매우 중요하다. 개발은 대부분의 경우 협업의 형태로 이루어지기 때문에 자신이 작성한 코드를 동료들이 최대한 쉽게 이해할 수 있도록 주석을 작성해야 한다.

*자바 프로그래밍은 대부분 클래스를 만드는 것이다*

*변수

변수란 하나의 값을 저장할 수 있는 메모리 공간을 의미한다. 즉 기억공간의 이름이다. 변수를 선언할 때는 우선 해당 변수가 저장할 데이터의 형태를 데이터 타입을 통해 지정한다.

int number =10;

위는 number라는 이름을 가진 정수형 변수를 선언하고, 해당 변수에 10이라는 값을 할당한 코드이다.

변수 이름의 첫번째 글자는 문자이거나 '$', 혹은 '_'여야 하며 숫자로 시작할 수 없다.

함수(메소드)내에서 선언된 변수는 무조건 지역변수이다.

*패키지

패키지는 임무 별로 따로 만들어서 관리한다. 패키지의 이름은 중복되면 안되기 때문에 일반적으로 회사의 URL을 뒤집어서 사용한다. 패키지 내의 클래스 이름은 대문자로 시작하는 것이 관례이다. 패키지 이름에는 대문자를 사용하지 않는 것이 권고사항이다.

한 클래스 내에서 public 클래스는 하나만 존재한다.

(클래스와 패키지에 대해서는 공부할 것이 너무나도 많다.)

 

728x90
반응형
LIST