01. 자바 프로그래밍


강의 내용 정리

자바 학습 챕터

  1. 자바 기초 : 문법

  2. 객체 지향 입문 

  3. 객체 지향 핵심 

  4. 자바의 유용한 클래스들

  5. 자바와 자료구조

  6. 자바의 다양한 기능들

  7. 자바를 활용한 알고리즘 문제

 

※ 챕터 설명

4. 자주 사용하는 기능들이 사용하기 쉽게 미리 만들저 있는 CLASS를 학습해요.

 

5. 자바에서는 자료구조가 클래스(이미 만들어진 기능)에 의해 구현이 되도록 유도 되고 있어요.

프로그램의 퀄리티를 높일수 있는 자료구조가 내부적으로 어떻게 구현되어있는지 훈련 합니다.

 

7. 알고리즘 학습으로 기본 실력을 갗출수 있도록 학습 

 ※ 많은 전문가들이 알고리즘 감각을 훈련하는것으로 통해 버그가 발행 했을 경우 찾는 속도가 높아진다고 하네요.

 

 

※ 자바란 무엇인가요?

자바의 특징

 1. 자바는 엄청 안정적인 언어를 목표로 태어난것이 아닐까 싶을정도로 안정적입니다.

 

 2. 플렛폼에 영향을 받지 않습니다. 다른 언어의 경우에는 컴파일(OS, HW와 직접적으로 대화하는 언어화) 되어있는 실행코드가 OS에 따라서 다르기 때문에 코드를 각각 OS에서 컴파일을 따로 진행해야 하지만. 자바의 경우에는 바이트코드(컴파일된 코드)가 가상머신 위에서 작동 되고 가상머신이 OS에 따라서 다른 실행 코드를 갖고 있게 중계 역활을 하도록 제작되었기 때문에 다양한 플렛폼에서 작동 됩니다.

 

 3. 객체 지향언어 입니다.

   절차지향언어(대표적으로C) 는 시간의 흐름의 순서대로 작동됩니다.

   객체 지향언어는 회원 > 상품 > 주문 > 배송 간의 자료가 서로의 방향으로 이동 하면서 비 순차적으로 작동 됩니다.

 연동되어있는 다른 훌륭한 프레임워크를 사용할수 있습니다.

 

  단어 JRE를 설치하면 JVM이 설치 되어있고. JDK에는 개발에 유용한 도구들이 많이 포함 되어 있습니다.

 

자바의 탄생 원인

C와 C++에서  포인터로 메모리관리가 쉽지 않아. 다운될 확률이 높았기 때문에 메모리가 자동으로 관리되는 기능이 탄생함. 모호한 부분도 전부 배제함. 플랫폼마다 소스 코드가 동일하게 돌아가지 못하는 결과로 파편화되어 관리가 부실해지는것을 방지.

 

자바에 대한 오해

과거에는 성능에 대한 이슈가 있었지만. 현제에는 속도에 대한 이슈는 사라졌다. 

 

 

Write once, run anywhere (WORA)

자바가 어떤 장비에서도 개발될 수 있고, 표준 바이트코드로 컴파일되고, 어떤 JVM에도 실행될 수 있음을 의미한다. HW적으로도 JVM칩, 인터프린터는 표준화 되어 있다

 

자바의 활용

웹서버 구현

안드로이드 프로그래망

게임 프로그래밍

 


 

강의 내용 교차 검증

1. 자바가 작동될수 있는 환경 : JRE 라고 합니다.

  웹 페이지(JSP) - > jre의 도움을 받아서 자바 문법으로 변환되어실행 됩니다.

  임베디스 or 마이크로 프로세서 - > 32bit로 작동할수 있지만. 실시간 으로 동작하는 시스템에서는 메모리 효율이 좋지 않습니다.

2. 객체 지향 언어의 종류

  Ruby , Python , C++ , objective-C , C#, java, javascript

 


02. 자바와 이클립스


강의 내용 정리

1. 자바 이클립스의 설치

  ! 이클립스를 설치하기 전에 자바가 설치가 되어 있어야 이클립스가 자바를 인식해서 오류가 나지 않아요.

  ! 코드를 생성하는 단계 까지는 이클립스내에 JRE아 플러그 인으로 들어가 있어서. 코드 작성과 확인은 할수 있어요.

 

2. 개발자는 java SE (스텐다드 에디션)을 다운 받으시면 되세요.

 

3. 유료화 된 이후 에는 JRE는 8 버전까지 무료로 사용할수 있고. java와 JRE를 따로 설치하는 절차가 생겼습니다.


 

강의 내용 교차 검증

1. 자바의 유료화정책

 ! 이전부터 java는 한국에서는 무료라는 인식이 있었지만 . 무료 였던적은 없었으며 JDK(개발도구)서비스 중에서 기술지원을 받을수 있을수 있는 모델이 1회 구매로 영구사용이 가능한 서비스의 비용 모델이 매달 비용을 지불하는 구독 모델로 변화한 샘이다. 기본적인 JDK와 java사용은 무료 이기 때문에 변한것은 기술지원 서비스의 비용 모델이며. JDK에는 두가지 모델이 있는데 이전부터 유저들이 무료로 사용해 왔던 JDK(openJDK)영역은 기존의 무료정책을 유지하며 오라클에서 기술 지원을 받을수 있는 유료 JDK 모델은 오라클JDK로 이름이 변경 되었다. 

 데스크탑에서는 2달러 50센트, 서버 25달러로 사용 가능하다. 

 

 


03. 자바 첫 프로그램 만들고 실행하기


강의 내용 정리

1. 페키지 이름은 전부 소문자로 , 클레스는 첫글자를 대문자로 만드는것 표준 이에요.

2. 자바가 구동 되는것은 클라이언트 보다는 서버측에서 구동 되는 경우가 어마 무시 ~ 하게 많아요.

3. main은 이클립스로 학습하는 과정에서 구동을 목적으로 사용하며 . 윕 서버에서 활용될때는 main없이 구동되는 경우도 많아요.

4. 저장 하면 바로 자동으로 컴파일 되도록하기 -> project - > build automatically

5. 하나의 java파일에 여러개의 class가 있을수 있는데. 여러개 중에서 public 은 하나만 있어야 합니다. (자세한건 나중에)

6. system.out.print에서system또한 java에서 재공하는 클레스 입니다. 

 


 

강의 내용 교차 검증

1. 충돌 방지를 위해 웹 서비스를 제작할때는 페키지명을 도매인의 역순으로 저장합니다. naver.com - > com.naver

2. 변수의 이름은 소문자로 시작합니다.

3. 매개변수의 이름은 타입과 동일하게 소문자로 입력합니다 . -> void run (Loop loop){}

4. 생명주기가 짧은 변수들은 짧게 . 생명주기가 긴 변수들은 길게 명명해서 다른 개발자가 알아체기 쉽게 합니다.

5. 메소드는 반드시 소문자로 시작합니다.

6. private 접근 제어가를 갖는 클레스의 변수에는 접미가 _가 붙습니다 . 

  class Run{

    private int count_;

  }

 


04. 컴퓨터에서 자료 표현하기

 

1. 메모리 주소를 표현할때 -> 보통 16진수로 주소 저장.

HW적으로 ON 과 OFF가 존제하는 반도체의 특성으로 0 과 1로 작동되는 컴퓨터가 탄생

1byte = 8bit


강의 내용 정리

1. 기계가 이해할수 있는것 0 1 , low high , 바이너리 코드 , 이진코드

2. 1byte  = 8bit 

3.  숫자를 표현할때 맨 앞 자리는 부호 ( 1 : 음수인지 ) ( 2 : 양수인지)를 표현합니다.

4. 십진수 이외의 숫자를 표현하는 방법

  바이너리 넘버 표현 => int bNum = 0b1010;

  팔진수 표현하기 : 숫자앞에 0을 입력합니다 => 012 : 10(10진수)

  십욱진수 표현 : 숫자앞에 0x를 붙여 줍니다. 

 

 


 

강의 내용 교차 검증

		int 십진수표현 = 10;
		int 이진수표현 = 0b1010;
		int 팔진수표현 = 012;
		int 십육진수표현 = 0xa;
		
		System.out.printf("%2d\n%2d\n%2d\n%2d\n%2d\n",십진수표현,이진수표현,팔진수표현,십육진수표현);

 

05. 변수는 변하는 수입니다


강의 내용 정리

변수란 : 번하는 값이 저장 되는 데이터 타입에 따라서 다른 사이즈를 갖고 있는 메모리의 주소를 사람이 알기 쉽게 문자화 한것이에요.

담을수 있는 종류에 따라서 메모리의 사이즈가 다르게 배정 됩니다.

정수. 실수, 글자, Yes or No , 등 값의 다양한 형태를 데이터 타입이라고 합니다.

= 는 이퀄이 아니라. 오른쪽의 값을 왼쪽에 넣는 기능을 합니다.

변수는 한 장소 근처에 모아서 선언하는게 좋은데. 중간 중간에 필요할때 선언하기도 합니다.

 

네이밍 컨벤션(Naming Convention) 이란 이름 을 적는 규칙이에요. 한글로는 명명규칙 이라고 할수 있죠.

이름을 지을때 특수문자는 $ (달라) 와 _(언더바) 2가지만 사용할수 있어요.

중요한 것은 가독성과 유추성 이에요. 타인이 읽을수 없는 코드는 코드가 아니다! 라고 말하기도 합니다.

numberOfStudent 과 ns 중에서 가독성이 좋은것은 전자 이죠?. 이름의 길이는 상관 없습니다.※ 옛날에는 긴 이름은 생명주기가 긴 변수에만 붙여줬다고도 해요.

길이가 길고 의미를 쉽게 알수 있는 변수가 무슨 역활을 하는지 나중에 봤을때에도 쉽게 의미를 알수 있어야 합니다. ( 영어 어휘가 필요한 이유)

C언어의 함수는 대문자로 시작한다는 과거의 명명법이 현제에는 모드 소문자로 교체 된것처럼. 그 시기와 조직에 따라서 명명법이 항상 바뀝니다.

 


 

강의 내용 교차 검증

※변수의 명명 규칙

컴퓨터 과학에서의 변수는 수학에서의 변수와는 뜻이 많이 다를수 있다.

컴파일러에서 변수가 가리키는 상징적인 메모리 주소의 이름은 실제 컴파일 과정에서 메모리의 주소로 변형된다.

영어에서는 변수를 값을 담는 컨테이너 라는 해석을 하며. 폴더 처럼 무언가를 담는 공간을 컨테이너라고 표현하나봐요. 

영어가 세계 공용어는 아니더라도 컴퓨터 공학에서는 전세계의 사람들이 이해할수 있는 영어와 숫자로 표현해요.

변수는 대문자를 구분해요.  Eng 와 eng 는 다른 변수 입니다.

 

 


 


 

학습 타이머


 

캠 스터디


 

스터디 그룹

https://open.kakao.com/o/g1mXVySd

 

온라인 강의 주소

17일에 수정 필요 : 패스트 캠퍼스에서 공지했던 링크가 막힘.

+ Recent posts