본문 바로가기

수업 정리

1일차 수업 내용 정리

0. 프로그램 제작 팁
 1) 프로젝트 만들기 전에 설계부터
  - 옆에 종이 놓고 설계부터 진행 후 프로젝트 제작

1. 프로그래밍을 하기 위한 준비
 1) 프로그래밍 언어로 작성한 코드를 번역해주기 위한 번역기가 필요 - Java는 JDK
 2) 코드 작성을 편리하게 해주고 번역과 실행까지 자동으로 수행해주는 IDE가 필요
  - Eclipse : 무료, 공공기관과 대기업이 많이 사용
  - Intelli J : 일반 Application 과 Android App 제작에 이용하는 것은 무료
                 Web Application 만드는 것은 유료

2. JDK(Java Developer Kit)
 -> 자바로 프로그래밍을 할때 필요한 것들을 모아놓은 프로그램
 1) Java API(Application Programming Interface)
   - 응용 프로그램에 만들기 위한 클래스의 집합으로 JAVA회사에서 제공 - API 대신에 SDK라고도 함
 2) JVM(Java Virtual Machine)
   - 자바로 만들어진 프로그램을 실행시기키 위한 가상의 프로그램
 3) 자바 관련 명령어

3. JRE(Java Runtime Environment)
 -> JDK없이 자바 프로그램을 실행시킬수 있는 도구

4. 프로그래밍 작업 단위
 1) Workspace : 프로젝트들이 저장되는 디렉토리
   - 실무에서는 하나의 프로젝트에 하나의 Workspace 사용
 2) Project : 하나의 Application(Program)
 3) Module : 실행되는 단위
   - 일반 Java Application에서는 Main 메소드를 갖는 class
 4) class : 유사한 역할을 하는 코드의 모임

5. Eclipse에서 Project를 만들고 모듈을 만들어서 실행하기
 1) Java App 생성
    - Project명 : 실무에서는 회사도메인을 역순으로 쓰고, 기술이름을 기재
      (ex- com.samsung.first : samsung.com 도메인으로 질의 가능)
 2) 실행가능한 모듈(class) 추가
    - src 디렉토리에 추가
 3) Code 작성 - main 메소드 안에 작성
 4) Code 실행
    - Source Code 작성
       -> Compile

(코드가 문법에 맞게 작성되었는지 확인하고 컴퓨터가 이해할수 있는 코드로 변경 - 에러 발생시 문법 오류이므로 코드 수정) 
       -> Build(Compile 된 파일들을 실행가능한 프로그램으로 생성- 에러발생시 구조를 변경해야함)
       -> Run(실행 - 발생하는 오류는 예외이므로 예외처리를 하거나 어쩔수 없는 경우)

  =>eclipse에서는 실행할 클래스를 선택하고 [Run]이나 아이콘으로 실행

6. Eclipse 화면 구성
 -> Perspective : 프로젝트 종류 별로 자주 사용하는 뷰들을 모아놓은 것
 -> View : 작은 화면 하나
 1) Perspective 변경
    - [window] - [perspective] - [Open Perspective] - [other] 에서 필요한 뷰로 변경
 2) View 변경
    - [Window] - [Show View] 에서 선택
     => package explorer : Application 구조
     => Project explorer : 디렉토리 구조 (파일 위치를 보고 싶을때)
     => console : CLI(Commend Line Interface) 환경에서의 결과를 보는 창
     => Problems : 에러나 경고 내용을 모아서 보여주는 창

7. Java 파일의 기본 구조
 1) Package %%
    => 생략하거나 1번만 나와야 하고 맨위에 위치
    => package : 자바 클래스들의 모임 - 용도별로 모아서 배포하기 쉽게 하기 위해 생성(일반 배포단위)
 2) import %%
    => 생략하거나 여러번 나올수 있음
    => package 다음으로 나옴(package가 없을 경우 가장 먼저)
    => import는 줄여쓰기를 하기 위해서 사용
        (java, android, IOS에서는 클래스 이름을 만들때 최소 3단 Naming을 권장 
         gmail.ggangpae1.first.Main 이런식으로 클래스명을 만듬(사용시마다 전체이름을 사용하는 것은 낭비)
         import gmail.ggangpae1.first.* 이 코드를 위에 적으면 다음부터는 Main이라고만 입력하면 같은 결과
 3) class %% {내용} : 필수
    => 클래스를 만들고 내용을 작성
    => 여러개 가능하지만 하나의 파일에 하나만 만드는 것을 권장
    => java는 소스파일의 이름이 클래스 이름.java 여야함(다르면 에러)
 4) class 안에 있는 public static void main(String [] arg){내용}
    => 이 클래스가 실행이 가능한 클래스가 되도록 해주는 메소드
    => 이 구문이 있어야만 실행을 할 수 있음
    * args는 이름을 변경해도 문제 없음
 5) System.out.println("Hello Java");
    => System.out(표준출력장치 - 모니터).println(내용을 Console에 출력하고 줄바꿈)

8. 코드 작성시 유의사항
 1) Java는 대소문자를 구분
 2) 한번에 실행되는 문장의 끝은 ';'
 3) 행의 들여쓰기나 줄바꿈은 의미가 없음 ';'을 만날때 까지를 하나의 문장으로 간주
    - 가독성(Naver VS google)
 4) 하나의 블럭을 { }로 만듬
    - 블럭은 하나로 해석해야하는 코드들의 모임
    - 제어문, 예외처리구문, 메소드, 클래스(인터페이스)가 블럭
    - 블럭안에서 생성한 것은 블럭 안에서만 사용이 가능

9. System.out.print과 System.out.println
    => 콘솔에 출력하는 메소드
    => ( )안에 출력할 내용을 작성
 1) 출력할 내용 작성
    => 문자열 메시지 출력 : "내용"
    => 여러개의 메시지 출력 : "내용" + "내용"
    => 숫자 출력시 숫자 입력 : 3
    => 데이터도 출력 가능
 2) print와 println 차이
    => print는 모아서 한번에 출력, println은 각각 출력하고 마지막에 줄바꿈(console에서만 줄바꿈)

10. Name
 1) Keyword(예약어) : 프로그래밍 언어나 IDE에서 기능을 정한 단어
    => 예약어의 기능은 변경 불가
    => 이클립스 기본 설정에서는 자두색으로 표시
    => 문법을 공부한다는 것은 예약어의 기능 공부하는 것
    => 대부분의 프로그래밍 언어가 비슷
 2) Idenfier(식별자) : 프로그래머가 다른 것과 구분하기 위해 붙이는 이름

    * 필수사항
    => 예약어는 식별자로 사용 불가
    => 영문, 한글, 숫자, 특수문자(_, $, ?)를 사용가능
    => 첫글자로 숫자는 안됨
    => 중간 공백 불가

 

    * 권장사항
    => 영문으로 시작하는 것을 권장
    => 이름을 만들때는 기능을 예측할 수 있도록 제작(한글자 변수 비추천)

    => Camel 표기법
         - 변수, 메소드의 이름은 소문자로 시작
         - 클래스, 인터페이스, enum의 이름은 대문자로 시작
         - 상수(final)는 모두 대문자로 표기
         - 두개 단어 이상으로 이름을 만들때는 두번째 단어 시작도 대문자로 표기

         - 요즘은 Java외에도 다양하게 사용됨

11. Comment(주석)
    => 컴파일러가 해석하지 않는 문자
    => 소스코드의 이해를 돕기 위해 작성
 1) 한줄 주석 : //주석 내용
 2) 여러줄 주석 : /* 주석 내용 */
    => 주석은 중요! (다른 유저가 원하는 프로그램

1일차_Java의 개요.pptx
6.65MB

 개발시, 해당 유저의 코드 수정이 용이해짐)

'수업 정리' 카테고리의 다른 글

6일차 수업 정리  (0) 2020.04.13
5일차 수업 정리  (0) 2020.04.10
4일차 수업 정리  (0) 2020.04.09
3일차 수업 내용 정리  (0) 2020.04.08
2일차 수업 내용 정리  (0) 2020.04.07