[230712] java 설치, 이클립스 설치, 설정/프로그램작성/식별자/키워드 규칙/데이터 타입/변수/상수/리터럴/이스케이프/타입변환/연산자 (DAY 11) - 구디아카데미후기 IT국비지원 민경태 강사님

MJ·2023년 7월 13일

수업 TIL🐣💚

목록 보기
12/68

설치

jdk 11
Eclipse 202203 Eclipse IDE for Enterprise Java and Web Developers

  • 다운받고 설치 없이 바로 실행하는 버전의 이클립스인데 압축해제하고 원하는 폴더로 옮겼더니 오류 뜸. 압축해제를 원하는 폴더에서 해야 오류 안 뜸 (이유 모름..)

환경변수 설정

  1. 고급 시스템 설정 보기 들어가서 환경 변수
  2. 시스템 변수(밑에 있는거) -> 새로 만들기
    • 변수 이름 JAVA_HOME, 변수 값 C:\Program Files\Java\jdk-11 (JDK 설치해준 곳)
  3. 시스템 변수 에서 path 선택 ->새로 만들기
    • C:\Program Files\Common Files\Oracle\Java\javapath 를 %JAVA_HOME%\bin으로 변경
    • 하는 이유: C나 D나 실행위치 상관없이 어디서든 자바 실행할 수 있도록 패스 설정하는 것 (자바 실행파일java.exe 위치 잡아주면 됨)
    • javac.exe : 자바 컴파일 파일, java.exe : 자바 실행파일
    • %JAVA_HOME%\bin 원래 bin에 실행파일들 있음

이클립스

워크스페이스(workspace)

  • 프로젝트가 저장되는 디렉토리
  • 이클립스 최초 실행 시 Eclipse IDE Launcher에서 설정 가능
  • 이클립스 실행 이후 [file] – [Switch Workspace]에서 변경 가능
  • .metadata 디렉토리
    • 이클립스 실행 시 자동으로 생성됨
    • 이 디렉토리를 삭제하면 이클립스에 해 둔 설정이 모두 초기화 됨
    • 참고) 마침표로 시작하는 파일 = 숨김파일

퍼스펙티브(Perspective)

  • 개발 프로젝트 종류별로 유용한 View들을 묶어 놓은 것
  • Eclipse IDE for Java EE Developers를 사용하면 기본적으로 Java EE 퍼스펙티브가 사용됨
    • EE: 웹 개발 용
  • [Window] – [Perspective] – [Open Perspective] 메뉴 이용해 Java 퍼스펙티브로 변경

설정

Preferences

  1. 글꼴 : General – Appearance – Colors and Fonts – Basic – Text Font – Edit...

  2. 인코딩 : General – Workspace – Text file encoding

    • Default (MS949)를 UTF-8로 변경
  3. 컬러 : Java – Editor – Syntax Coloring

    • 3가지 색상 변경 : Classes(핑크), Interfaces(회색), Methods(오렌지)
    • 디폴트는 위 3개가 색상 같아서 구분하기 위해
  4. 자동 줄맞춤 : Java > Editor > Save Actions

    • Perform the selected actions on save, Format source code 체크
  5. 소스코드 자동 완성 : Java > Editor > Content Assist

    • Auto activation triggers for java에 .abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 입력하면 ctrl+space 안쳐도 됨
  6. Formatter 설정 (Java – Code Style – Formatter)

    • Active profile에서 new - 새로운 프로필 MyEclipse 만들기 (기존 이클립스 빌트인은 수정이 안되기 때문)

    1) 들여쓰기 : indentaion

    • tab policy를 space only
    • indentation size, tab size를 2로

    2) 주석 자동 줄바꿈 해제 : Comments > Enable block comment formatting 체크 해제 > Apply


프로그램 작성

  • 워크스페이스 : javastudy 폴더
    • 워크스페이스 바꾸면 이클립스 세팅 처음부터 다시 해야 함
    • 우리는 워크스페이스 통째로 깃 올리는데 실무에선 워크스페이스 밑에 프로젝트 하나만 올림
  • 프로젝트 : 프로젝트 하나가 프로그램 하나
    • 생성할 때 JRE 맞는 jdk 버전으로 바꾸기 (난 11)
    • 모듈 체크 해제
  • 패키지 : 한마디로 클래스들 담는 폴더, src안에 만들어줌
    • src : 소스코드 저장하는 곳 (확장자가 .java인 모든 파일)
      • 참고) 확장자가 .class => .java의 실행파일, 프로젝트 생성할 때 아웃풋 폴더로 나오는 패키지명/bin에 저장됨
  • 클래스 : 서로 관련 있는 변수나 메소드 집합
    • 모든 코드는 클래스 안에 적음
  • 메소드 : 어떤 기능의 구현 단위
    • main 메소드 : 필수, 자바는 프로그램 실행하면 main부터 찾음, 없으면 실행안됨, 실행하고자 하는 코드는 main 메소드에 작성해야 함

식별자

  • 클래스, 변수, 메소드 등에 붙이는 이름
  • 대소문자 구별
  • 숫자 사용 가능하지만 첫글자로 사용될 수 없음

Naming Convension

Upper Camel Case

  • 각 단어의 첫 글자는 대문자, 나머지는 소문자 처리
  • 클래스 이름 규칙 (100프로 다 지킴)
  • MyHome, MyProject 등

Lower Camel Case

  • 각 단어의 첫 글자는 대문자, 나머지는 소문자 처리
  • 가장 첫 글자는 소문자 처리
  • 변수, 메소드 이름 규칙
  • myHome, myProject 등

Snake Case

  • 각 단어를 밑줄(_)로 연결
  • 대소문자를 함께 사용할 수 없을 때 사용
  • 상수 이름 규칙
  • MY_HOME, MY_PROJECT 등

키워드 규칙

  1. 프로젝트 : 맘대로
  2. 패키지 : 모두 소문자로 작성(실무는 회사 도메인 거꾸로 작성: com.samsung.xxx)
    • 클래스 이름이 다 비슷해서 패키지명으로 구별해줘야하는데 회사 이름쓰면 회사마다 이름 달라서 구분되니까
  3. 클래스 : UpperCamelCase (첫 글자 대문자 카멜 케이스)
  4. 메소드 : lowerCamelCase (첫 글자 소문자 카멜 케이스)
  5. 변수 : lowerCamelCase
    • 좋은 변수 이름은 a, b 이런 것보다 의미가 전달되는 것 ex) isGood, isAlive
  6. 상수 : SANLE_CASE (대문자를 밑줄로 연결)

데이터 타입

기본 타입

  • 데이터를 저장하는 타입
  • boolean, char, byte, int, long, float, doble
    • short, float은 잘 안씀 (실수는 float 안 쓰고 다 더블)
    • byte는 기본 단위라서 오히려 쓴다, 파일 다룰 때

참조 타입

  • 데이터의 참조값(주소)를 저장하는 타입, 직접 데이터를 저장하지 않음
  • 기본 타입빼면 다 참조타입
  • 배열, 클래스, 인터페이스
  • string

변수

  • 프로그램에서 사용하는 값을 저장하기 위한 공간

상수

  • final 키워드를 추가한 변수
  • 반드시 초기값을 지정해야 하고 한번 선언한 값을 변경할 수 없음

리터럴

  • 코드 상에서 값을 표현하는 방식
  • 10진수 25 : int n = 25;
  • 8진수 25(10진수 21) : int n = 025; - 맨앞에 0
  • 16진수 25(10진수 37) : int n = 0x25; - 맨앞에 0x
  • 2진수 1010(10진수 10) : int n = 0b1010; -맨앞에 0b
  • long 타입의 25 : long n = 25L; -맨뒤에 L(l)
  • double 타입의 3.14 : double n = 3.14;
  • float 타입의 3.14 : float n = 3.14F; -맨뒤에 F(f)
  • 논리 리터럴 : boolean isNum = true; -true, false
  • 문자 리터럴 : char ch = 'a'; - ' '
  • 문자열 리터럴 : String fruit = "apple"; - " "
  • 널(없음을 의미) : String message = null;

이스케이프


타입변환

자동 변환(promotion)

  1. 작은 크기 -> 큰 크기
  2. 정수 -> 실수
    byte num1 = 127; // byte는 -128~127 가능
    int num2 = num1; // 1바이트 크기를 가진 num1을 4바이트 크기로 자동 변환
    System.out.println(num2); 

    double addResult = 1.5 + 5; // 5를 5.0으로 자동 변환
    System.out.println(addResult); // 결과 6.5

강제 변환(casting)

  1. 큰 크기 -> 작은 크기
  2. 실수 -> 정수
 int bigNum = 256;
    byte smallNum = (byte) bigNum; // 4바이트 bigNum을 강제로 1바이트로 변환
    System.out.println(smallNum); // 256 2진수 = 100000000 캐스팅하면서 1이 잘리고 0만 남음
    // 캐스팅을 하게되면 원본이 손상될 수 있음

    double pct = 0.5;
    int iPct = (int) pct; // 실수를 강제로 정수로 변환 -> 소수점 잘려나감
    System.out.println(iPct);

구문 분석(parsing)

  • parseInt parseLong parseDouble
  1. 문자열 -> 정수(int, long)
  2. 문자열 -> 실수(double)
	String strScore = "100";
    int score = Integer.parseInt(strScore);

    String strMoney = "1000000000";
    long money = Long.parseLong(strMoney);

    String strComm = "0.5";
    double comm = Double.parseDouble(strComm);

    System.out.println(score);
    System.out.println(money);
    System.out.println(comm);

연산자

깃헙 정리




🟢 구디아카데미후기 IT국비지원 민경태 강사님 수업 11일차! 🟢
드디어 자바가 시작됐다! 기대된다 ㅎㅎ 체계적으로 처음부터 공부하는 느낌이라 너무 좋다. 이제 가면 갈수록 어려워질 것 같아서 걱정되기도 하고!

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

도움이 되었습니다. 감사합니다

답글 달기