<목차>
ㅇ 자바 개요
ㅇ 자바 설치
ㅇ 자바 실행
ㅇ 자바 수업 진행 방향

- 자바 등산 힘든 지점 ... 3군데 ㅠㅠ
- 반복문 / 배열
- 메소드 / 객체지향 프로그래밍
- 추상클래스 / 인터페이스
=> 전공자들도 이 부분에서 어려워하니까 포기 하지마. 꾸준히 하다 보면 언젠가는 이해가 돼
ㅇ 프로그래밍을 배우는 이유
- 사고하는 법을 가르쳐준다.

- 논리적 사고가 가능 -> 컴퓨팅 사고 Computational Thinking
ㅇ 컴퓨팅 사고
: 문제 분해, 추상화, 알고리즘, 자동화

예)
- 자주 쓰이는 건 냉장고에 넣어둬 (cf. 캐시 메모리)
- 우선순위를 정할 때도 컴퓨팅 사고가 필요해 (물론 정답은 없어)
- 배낭여행 방문 국가를 어디 먼저 다니면 좋을지 정하고 싶을 때 -> 최단거리 알고리즘
- 경로 계산, 효율적 방법
ㅇ <게임> 최단시간 다리 건너기

- 이동시간 : 나1 조교2 관리인5 교수10
- 조건 : 동시에 2명이 건널 수 있어. 늦는 사람의 시간으로. 무조건 손전등 때문에 돌아와야 해. 최소시간
- 내답) 10 1 5 1 2 =19
정답) 2(1) / 1 / 10(5) / 오! 거기 있는 2분이 손전등 받아서 돌아오고 2 / 남은 1,2분 같이 가면 2 = 17
- 해결의 열쇠1 : 가장 느린 두 사람을 함께 건너게 함으로써 그들이 낭비하는 시간을 최소화했으면 해
- 해결의 열쇠2 : 몇 번은 손전등을 들고 다시 돌아와야 하므로 가장 빠른 사람이 그 일을 했으면 해
ㅇ프로그래밍 언어의 종류가 엄청 많은데 자바를 배우는 이유
- 가장 많이 써서
(웹) 전자정부프레임워크의 기반 언어가 자바 - 즉, 공공기관
(모바일) 안드로이드 점유율이 86%. 즉, 기본 언어가 자바
- 하나의 언어를 제대로 마스터하면 다른 언어 손쉽게 넘어가
- 자바는 절차지향과 객체지향 모두 이해할 수 있어
- 단점) 고전언어이다 보니 난이도 있어
ㅇ 자바의 역사
- 자바의 아버지 제임스 아서 고슬링
- 첨에는 오크라고 하려고 했는데 이미 상표등록 되어 있어서 / 자바 만든 팀이 커피, 특히 자바커피를 좋아해서 이름이 자바
- 처음에는 가전제품에 들어가는 (세탁 버튼 누르면 세탁기가 돌아가는 = 임베디드 언어)
가전제품 업데이트 할 때 as센터에 매번 방문 너무 불편 -> 모든 가전제품에 인터넷을 연결해서 저절로 업데이트 시키면 어떨까 = IoT
ㅇ 자바 잡썰
- 지금 오라클(자바)이랑 안드로이드(구글) 싸우는 중ㅋㅋ 그러다가 코틀린이라는 언어 구글이 만듦
- 제임스 아서 고슬링 오늘 아침에 기조연설 기사링크
: 아마존웹서비스(AWS)는 오는 5월 11~12일 ‘AWS 서밋 온라인 코리아 2021’을 개최한다고 6일 밝혔다. 올해 7회째를 맞는 AWS 서밋은 다양한 업계 참가자들에게 온라인 및 대면 세션을 제공한다.
- 회사 썬에서 만들어서 오라클이 인수 - 지금은 오라클선이라는 회사에서 개인에게는 무료로 제공, 회사는 라이센스 비용 내긴 해 디즈니야ㅋㅋㅋ
ㅇ 자바 설치
ㅇ 자바 특징 : WORA(워라) Write Once, Run Anywhere 한 번만 작성하면 어디서든 실행된다.
- 자바는 플랫폼 독립적 : 어느 운영체제에서든 실행할 수 있게 해주는 JVM(자바 가상 머신)이라는 중간 매체 있음

- 자바의 특징

- 멀티스레드 : 한 번에 동시에 여러 가지 처리 가능
ㅇ 작업공간
- 의자를 만들려면 뭐가 필요할까? 목수 나무 못 망치 설계도 톱 & '작업공간'
ㅇ 자바도 작업공간을 먼저 확보하자!

- JDK 자바 개발 도구 - 설치 (오라클계정)
- JRE 자바 실행 환경 : 자바 언어를 통해 만들어진 프로그램을 실행시킬 수 있음.
- 자바 개발할 때 도움을 주는 라이브러리들 존재 (★라이브러리는 JRE에 있어★)
- JVM 자바 가상 머신 : 어느 운영체제에서든 실행할 수 있게 해줌.
- IDE 통합 개발 환경 : 이클립스 설치
ㅇ 2가지 설치해야 해
- JDK
- IDE : 그 중 이클립스 설치
(6월 2일 추가 개념)
ㅇ 라이브러리를 따로 두는 이유
- JVM은 사용할 수 있는 가용메모리가 있어
- JDK 안에는 수많은 사용자정의 데이터타입 탑재되어 있는데
간단한 프로그램 짤 건데 이 전체 파일들을 JVM에 탑재시키는 건 비효율적이야
- 그래서 라이브러리를 따로 두고 코드를 짤 때 필요한 것 하나만 쓰겠다 명시 하는거야
예) 스캐너를 사용하기 위해 맨~ 위에 임포트 스캐너 문장 적는 것
- 내가 만든 코드(프로그램이)가 구동될 때 이것만 쏙 뽑아서 JVM에 올려서 실행시키는 거야
ㅇ 자바 실행
ㅇ 워크 스페이스 잡아주기
- 하나의 프로그램을 만들 때마다 이걸 '프로젝트' 라고 해
- 워크 스페이스 : 작업하는 공간 : 프로그램 만든 것들을 여기저기 저장하는 게 아니라 한 폴더에 저장
- 바탕화면 - 새폴더 - JavaStudy 폴더 만들기
- Browse : 워크스페이스 경로 어디로 할 거야? 물어보는 것
- 우리가 방금 만든 JavaStudy로 잡아줘

ㅇ Perspectives (퍼스펙티브)
: 개발 환경에 최적화되어 있는 상태
- java ee(커피콩)는 웹 개발에 최적화되어 있는 상태라는 뜻

- 우리는 웹 개발 할 것 아니기 때문에 '+모양'을 클릭해서 java를 오픈


ㅇ 자바 프로젝트 Create
- 그냥 프로젝트 말고 자바프로젝트 만들어야 해
- 이름은 그날 날짜
- 모듈 뜨는 사람들은 돈 크리에이트 눌러야 해 ★★

- 자바 코드를 작성할 수 있는 파일은 Class 파일
- src 마우스 우클릭 - 뉴 - 클래스

CF) 프로그래머들끼리 한 약속 (꼭 지켜야 하는 건 아니지만, 잘 지키면 신뢰도가 높아져) : 클래스 이름에 첫 글자는 대문자로 시작한다.
- main 어쩌고~~ 클릭 필수 ★
프로그램을 실행시켜주는 녀석이야

- 클릭 까먹었을 시 : 'main + 컨트롤 + 시프트 + 엔터'로 문장 자동완성 넣어주기
ㅇ 실행 창 이해 (삼분할)
1. 패키지 익스플로러 : 프로젝트 파일 목록들을 볼 수 있는 창
2. 메인 부분 : 클래스를 보거나 코드를 작성할 수 있는 창
3. 프로그램 실행했을 때 출력을 보여주는
ㅇ 헬로 월드 출력하기
-
코드를 쓸 때는 public static void main(String[] args(아규스라고 읽음)){ ~이 중괄호 안에 작성해야 해~}
-
프린트 : System.out.println( );
- 프린트 할 때 시스템 첫글자는 대문자
- ln은 라인의 약자
- 자바는 마지막에 ; 세미콜론 필요해 ★★
- 문자열 출력은 " " 쌍따옴표만
-
상단 재생 화살표 클릭하면 돼. 단축키는 컨트롤 f11

-
주석 달기 : 컴퓨터는 실행하지 않고 그냥 넘어가
- 나중에 까먹을 수도 있으니, 문서를 다시 열었을 때 이해할 수 있도록 설명을 달아놓는 것
- 자바는 // 한 줄 (파이썬은 #)
- /* 여러 줄 */
- 코드 사이에 넣는 주석은 /** 이렇게 **/ (이건 거의 사장된 방식)

ㅇ 새로운 클래스 만들기
- src 혹은 default package 우클릭 - new - class - 클래스이름 넣고 - main체크★