본문 바로가기
진행중인 학습/자바의 정석_학습

자바의 정석_기초편 CHAPTER 1 (230721)

by 트레비봄 2023. 7. 21.
728x90

- 자바란? 

96년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어이다.

컴퓨터 프로그램(어플리케이션)을 만드는데 사용되며 실행환경(JRE) + 개발도구(JDK) + 라이브러리(API)를 제공한다.

중요한 특징으로는 운영체제(플랫폼)에 독립적이란 것이다.

 

- 자바가 쓰이는 곳

PC 애플리케이션 (EX. 인텔리제이, 이클립스)

웹 애플리케이션 (EX. 웹 사이트) // 이럴 때 사용하는 것이 스프링 프레임워크(Spring FrameWork)

모바일 어플리케이션 (안드로이드)

빅 데이터 (hadoop 이란 플랫폼이 자바로 구성되어있음.)

그 외로 게임(마인 크래프트), 과학 분야, 소형기기 분야가 있다.

 

Programming Language RANKING (23. july[7월])

자바를 배웠다가 다른 언어를 배울 때 자바의 지식이 도움이 많이 되기 때문에 프로그래밍 언어를 배우는데 있어서 추천한다 (강사 曰)

 

- 왜 자바를 배우는가?

다양한 분야에서 활발히 사용되며, 난이도가 높지 않으며 학습자료가 풍부하다. 

모던 프로그래밍 언어이다 (객체지향 + 함수형)

취업에 유리한 편이다. (실무에서 제일 많이 사용되는 언어), 국내 기업들이 JAVA를 많이 사용중이다.

 

자바의 역사

96년 1월에 정식버전 발표 이후 꾸준한 업데이트를 진행 중이다.

2004년에 J2SE 5.0 발표, 2014년 Java SE 8이 발표되었는데 이 순간에 많은 업데이트를 하였다. 그 사이에도 꾸준한 업데이트를 지속하였지만 가장 크게 업데이트 된 순간들 이다.

이후 6개월마다 최신버전으로 업데이트 중이다.

 

- 자바의 특징, 자바 가상 머신 (JVM)

배우기 쉬운 객체지향 언어 = 프로그래밍 언어 + 객체지향 개념을 도입한 케이스.

예로 C++, Python, JS 가 있다.

자동 메모리 관리 기능이 있다.

예전에는 사람이 직접 관리하였지만 자바는 가비지 컬렉터(GC) 가 메모리를 자동으로 정리해서 관리해주기 때문에 프로그래밍하기에 적절하다.

멀티 쓰레드를 지원한다.

멀티 쓰레드는 하나의 프로그램에서 동시에 여러 작업을 해줄 수 있게 해준다.

예를 들어 채팅프로그램으로 채팅을 하면서 파일을 오고가며 하는 것이 멀티 쓰레드로 프로그램이 작성 되어 있기 때문에 가능한 것이다. 대부분 멀티 쓰레드로 작성된다.

풍부한 라이브러리로 쉽게 개발 가능하다.

운영체제에 독립적이다. 리눅스 체제에서도 실행가능하다는 점이 큰 장점이다.

 

- 자바 가상 머신 (JVM)

자바 프로그램이 실행되는 가상 컴퓨터(VM : virtual machine), 한번 작성하면 어디서든 실행가능하다.

Java 어플리케이션
JVM (Windows용 // OSX용 // Linux용)
OS (Windows // Macintosh // Linux)
컴퓨터 (하드웨어)

- 이클립스 단축키

public class Hello {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// ctrl+shift+L : 단축기 전체 목록 보기
		// ctrl+ +, - : 폰트 크기 조절
		// ctrl+D : 한 줄 삭제
		// ctrl+alt+down 행단위 복사
		// alt+shift+A 멀티 컬럽 편집.
		// alt+up, down 행 단위 이동
		// ctrl + i 자동으로 들여쓰기 조정.
		// ctrl + / 주석 달기(한 번 누르면 주석o 두 번 누르면 주석 취소)
		/* 여러개의 줄 주석 달기 */
		// 단, 따옴표 안에는 주석처리해도 주석 인식이 안됨.
		// ctrl + space  자동완성.
		// ex) sysout 에 컨트롤 스페이스 누르면 System.out.println() 이 나온다.
		
		System.out.println("Hello World!");
	}

}

여기서 자주 쓰는 것들만 강사님께서 말씀하셨다.

ctrl + shift + L 단축키 전체 목록 보기
ctrl + +, - 폰트 크기 조절
ctrl + D 한 줄 삭제
ctrl + alt + down / up 행단위 복사 기능, 위 아래 모두 가능.
alt + shift + A 멀티 컬럽 편집
alt + up, down 행 단위 이동
ctrl + i 자동 들여쓰기 조정.
ctrl + / 주석 달기(한 번 누르면 주석이 달리고 두 번 누르면 주석 해제)
ctrl + space 자동완성 기능 -- 설정에서 .(온점)에서 알파벳 하나씩 자동완성 가능하도록 설정이 가능하다.

 

- 주석 (Comment)

 주석을 사용하는 이유

- "내가 왜 이렇게 작성했는가?" , " 강사님께서 부연설명 해주셨는데 어디다 적지? "

라는 고민을 덜어준다.

코드 이해하기에 부연설명을 덧붙이는데 이만한 기능이 없다.

 

주석을 작성하는 방법은 다음과 같이 두 가지 방법이 있다.

' /* ' 와 ' // ' 이다.

 

1) /* 은 범위 주석이다.

- /* ~~~~ */ 이렇게 작성.

- ~~~ 의 내용들은 주석으로 간주된다.

 

2) // 은 한 줄 주석이다.

- ' // ' 부터 라인 끝까지의 내용은 주석으로 간주된다.

- 그래서 난 강의 들을 때 마다 // 를 쓴다.

- 단축키는 ' Ctrl + / ' 이다.

 

- 자주 발생하는 에러, 그에 대한 해결 방법

아래 부분부턴 인강에서 나오지 않기 때문에 책의 내용을 바탕으로 서술한다.

 

자주 발생하는 기본적인 에러와 해결방법.

- 책에서 소개되는 에러는 총 6개다. 그 외 여러가지가 있다.

- 소개되지 않는 에러들은 인터넷에서 검색해서 찾아보면 해결책을 얻기 좋을 것이다.

- 왜냐하면 나 말고도 이런 에러를 겪는 사람이 수백 ~ 수천은 될 것이기 때문이다.

 

1. cannot find symbol 또는 cannot resolve symbol

- 지정된 변수나 메서드를 찾을 수 없다 는 뜻.

- 선언되지 않은 변수나 메소드를 사용하거나, 변수 또는 메소드의 이름을 잘못 사용한 경우 발생.

- 자바는 대소문자를 구분, 철자 뿐만 아니라 대소문자의 일치 여부를 꼼꼼히 확인해야한다.

 

2. ' ; ' expected

- 세미콜론이 없다는 뜻. 

- 자바에선 모든 문장의 끝에 세미콜론을 붙여주어야한다.

 

3. Exception in thread "main" java.lang.NoSuchMethodError: main

- 'main메서드 찾을 수 없다' 는 뜻.

- 실제 클래스 내 main메소드가 비 존재하거나 메서드의 선언부 'public static void main(String[] args)' 에 오타 존재 경우 발생한다.

- 해결방법 : main 메소드가 클래스에 정의되어 있는지 확인, 있다면 오타 여부를 확인.

** args는 매개변수의 이름이므로 args 대신 argv나 arg와 같이 다른 이름을 사용 가능.

 

4. Exception in thread "main" Java.lang.NoClassDefFoundError: Hello

- 'Hello라는 클래스를 찾을 수 없다는 뜻'

- 철자 확인, 이상 없을 시 클래스파일 생성여부 확인.

 

5. illegal start of expression

- 직역하면 문장(또는 수식, expression) 의 앞부분이 문법에 맞지 않다는 의미.

- 쉽게 말해 문법적 오류가 있다는 뜻.

- 괄호를 제대로 닫았는지, 수식이나 if문, for문 등에서 문법 오류가 있을 때, public이나 static 과 같은 키워드를 잘못 사용한 경우에도 발생.

 

6. class, interface, or enum expected

- 키워드(class) 나 interface 또는 enum 이 없다라는 뜻.

- 보통은 괄호 { } 의 개수가 서로 일치 하지 않는 경우 발생한다.

- 강사님이 알려주신 에러 메세지가 발생했을 때, 어떻게 해결한 것인가에 대한 방법

 

1. 에러 메세지를 잘 읽고 해당 부분의 코드를 살펴본다. 이상 없으면 해당 코드의 주위(위, 아래 줄)를 함께 살펴본다.

2. 그래도 멀쩡하면 에러 메세지보단 기본적인 부분을 확인한다. 대부분의 에러는 사소한 것들이기에.

3. 의심이 가는 부분을 주석처리 또는 따로 떼서 테스트를 해본다.

 

끝으로 강사님 마지막 3줄.

에러 메세지가 실제 에러와는 관계없는 내용일 때도 있지만, 대부분의 경우 에러 메세지만 잘 이해해도 문제가 해결되는 경우가 많으므로 에러 해결을 위해서 제일 먼저 해야 할 일은 에러 메세지를 잘 읽는 것임을 명심하자!!!

728x90