[새싹 x 코딩온] 웹 풀스택 영등포 5기 19주차 회고 - 1

용가리🐉·2023년 12월 6일
0
post-thumbnail

📌 개발환경 구축

📣 용어 정리

  • JDK (Java Development Kit)
    • 자바로 개발하는데 사용되는 SDK (소프트웨어 개발 키트)
  • JRE (Java Runtime Environment)
    • 자바 실행 환경으로 자바 프로그램을 실행시킬 때 필요한 라이브러리 API를 묶어 배포되는 패키지
    • JDK 11부터 JDK에 기본적으로 포함됨
  • JVM (Java Virtual Machine)
    • 자바 가상 머신으로 자바를 돌리는 프로그램
    • 자바로 작성된 모든 프로그램은 JVM에서만 실행 가능
    • JRE에 포함됨 → 컴퓨터 운영체제에 맞는 JRE가 설치되어 있다면 JVM도 설치되어있음
    • JVM은 모든 플랫폼에서 제약 없이 동작함 → OS에 종속적이지 않음

SDK (Software Development Kit)

  • (일반적으로) 하드웨어 플랫폼, 운영 체제(Operating System, OS) 또는 프로그래밍 언어 제작사가 제공하는 일련의 툴
  • 응용 프로그램의 개발을 간편하고 용이하게 하기 위해 제공되는 특정 환경이나 플랫폼 기반의 종합 개발 도구

📣 JVM

  • OS에 종속적이지 않기 위해 Java를 실행시킬 무언가가 필요함 → JVM
  • Java 언어로 작성된 프로그램이 JVM을 거쳐서 운영체제와 상호작용 함
  • 컴파일된 코드와 하드웨어/OS 사이에서 JVM이 Byte Code로 변환해줌

🟠 실행 흐름

  1. Java 언어를 실행하면, 컴파일러에 의해 Byte Code로 변환되며 .class 파일에 저장됨
  2. Java 프로그램이 여러 환경에서 동일하게 동작하도록 JVM이 실행
  3. JVM은 .class 파일에 저장된 Byte Code 해석하고 실행 (특정 플랫폼의 기계어 (Binary Code)로 컴파일)
  4. JVM에 의해 컴파일 된 기계어는 CPU에서 실행

JDK 설치 확인

java -version

실행 후, 버전과 관련된 정보가 뜬다면 JDK가 설치된 것!

📌 식별자 원칙

식별자 : 클래스, 변수, 상수, 메소드 등에 붙이는 이름

  • @, #, !와 같은 특수문자 사용 불가
    • 예외로 _, $는 사용 가능
  • 공백 불가
  • 한글 사용 가능 (영어 사용 적극 권장)
  • 미리 정의된 키워드 (예약어)는 식별자로 사용 불가
  • 숫자 사용 가능
    • 첫 글자로는 사용 불가

📌 데이터 타입

  • Java는 강한 타입 언어 → JS와 달리 Java에서는 데이터 타입이 중요함!

📣 기본형 (Primitive) 데이터 타입

각 타입 별로 크기가 상이함

  • 논리 타입
    • boolean
  • 문자 타입
    • char
  • 정수 타입
    • byte, short, int, long
  • 실수 타입
    • float, double

실수형 타입에서 주의할 점

  • float 또는 double과 같은 기본 부동소수점 자료형은 근사값을 사용 → 금융 계산과 같은 정밀도가 중요한 연산에는 적합하지 않음
  • BigDecimal 클래스는 이러한 문제를 해결하기 위해 정확한 소수점 연산 제공
    • BigDecimal은 불변 객체 → 한 번 생성되면 그 값을 변경할 수 없음
    • 문자열 생성자를 사용하는 것이 부동소주점 오류를 피하는 가장 안전한 방법
    • 기본 산술 연산자(+, -,* , /)를 직접 사용할 수 없고 대신 메서드 사용

📣 참조형 (Reference) 데이터 타입

기본형 타입을 뺀 모든 형태를 참조형 타입으로 봄

  • 배열에 대한 레퍼런스
  • 클래스에 대한 레퍼런스 (ex. String)
  • 인터페이스에 대한 레퍼런스

📌 입력과 출력

📣 출력

System.out.print();
System.out.println(); // 마지막에 개행 문자(\n)를 자동으로 넣어줌

📣 입력

Scanner 클래스 이용

import java.util.Scanner; // import 문 필요
...
Scanner a = new Scanner(System.in); // Scanner 객체 생성
  • System.in에게 키를 읽게 하고, 읽은 값을 String, int, double, boolean, char 등 다양한 타입으로 변환하여 리턴
  • 입력되는 키 값을 공백(\n, \t, )등으로 구분되는 아이템 단위로 읽음

🟠 Scanner 클래스 주요 메소드

  • next() : 공백 이전까지의 문자열을 읽음
  • nextLine() : 엔터(\n) 이전까지의 문자열을 읽음
  • next() 자료형()
    • nextInt(): 공백 이전까지의 정수를 읽음
    • nextDouble() : 공백 이전까지의 실수를 읽음
    • nextBoolean(), nextFloat() ..etc
  • close() : scanner 닫음
Scanner sc = new Scanner(System.in);

String name = sc.next(); // 문자열 읽기 
int age = sc.nextInt(); // 정수 읽기
double height = sc.nextDouble(); // 실수 읽기
boolan single = sc.nextBoolean(); // 논리값 읽기

sc.close(); // scanner 닫기

📌 연산자

  • 각 연산자는 실수로 계산하면 결과도 실수, 정수로 계산하면 결과도 정수로 도출됨

아주 기본적인 문법은 다른 언어와 매우 비슷하므로 생략합니다.

📌 조건문

📣 if문

변수.equals("비교할 문자열")

if(name.equals("sesac")) {
	System.out.println("sesac 님 환영합니다.");
} else {
	System.out.println("익명 님 환영합니다.");
}

📌 메소드

📣 메소드 오버로딩

한 클래스 내에서 동일한 이름의 메소드를 여러 개 정의하는 것

  • 각 메소드는 매개변수의 타입, 개수, 순서가 달라야 함
public class MethodOverloading {

	public static void main(String[] args) {
		// 1. 객체 생성 
		MethodOverloading ol = new MethodOverloading();
		
		// 2. 객체의 메소드 저장 
		System.out.println(ol.add(1, 2));
		System.out.println(ol.add(10.0, 20.8));
		System.out.println(ol.add(1, 4, 6));
		System.out.println(ol.add(1.1, 2.2, 3.3));
	}
	
	public int add(int a, int b) {
		return a + b;
	}
	
	public double add(double a, double b) {
		return a + b;
	}
	
	public int add(int a, int b, int c) {
		return a + b + c;
	}

	public double add(double a, double b, double c) {
		return a + b + c;
	}
}
profile
자아를 찾아 떠나는 중,,,

0개의 댓글

관련 채용 정보