day01/02 2023-01-18/19

위수현·2023년 1월 19일

국비

목록 보기
1/1

프로그래밍언어

  • 프로그래밍 언어란 주어진 어떤 문제를 해결하기 위해 인간과 컴퓨터 사이에서 의사소통을 가능케하는 인공적인 언어
  • 이 언어를 통하여 사용자는 컴퓨터에게 일련의 일을 시키는 명령어들의 집합체인 프로그램을 작성할 수 있다.

    기계어 : 컴퓨터가 이해하는 언어로 2진수 집합으로 구성
    고급언어 : 사람이 이해할 수 있는 수준의 언어

    c, c+, c#, java, javascript, python, php, html 등이 있다.

JAVA에 관하여

다양한 컴퓨터 언어 속 java의 장점을 찾아보자

운영체제에 독립적이다

  • JVM이 설치된 환경이라면 어디서든 실행이 가능

객체지향 언어

  • 상속, 캡슐화, 다양성 존재
  • 코드의 재사용 및 유지 보수에 용이함

자동 메모리 관리

  • Garbage Collector가 자동으로 메모리를 관리

Java 가상머신(Java Virtual Machine / JVM )

  • 컴파일된 자바 바이트 코드를 실행시켜주는 소프트웨어
  • 자바 프로그램은 JVM이 설치된 환경이라면 운영체제나 하드웨어에 종속되지 않고 실행 가능
  • 운영체제로부터 독립적

JAVA 설치

Java 설치 링크
-> java -version 11 권장

JAVA 환경세팅

  1. JAVA 신규 생성 : JAVA_HOME
    path : %JAVA_HOME%\bin 추가
  2. 단축키 Win + R을 통해 cmd 접근
  3. java -version + Enter
  4. 적용이 된지 확인

Eclipse 설치
  • Eclipse는 무료 개발 툴로 java를 이용해 코드 작성이 가능하다.
  • Eclipse에서 JAVA를 적용하기 위해서는 앞서 말한 JAVA을 다운로드 받고 세팅을 한 후에 Eclipse에 적용을 해야 정상적으로 작동이 된다 ( 순서중요! )
Eclipse 실행

Eclipse.exe를 실행하면 Eclipse IDE Launcher가 열린다. 다음과 같은 순서로 기본 세팅을 해주면 된다.


  1. Workspace에 경로를 확인
  2. Launch 클릭
  3. Eclipse 실행
Eclipse 기본 세팅
  1. 콘솔창 불러오기 ( 실행 output 확인 ) : Eclipse 상단의 window - show view -> console

  1. 한글 폰트 유지 :
    상단의 window -> preference -> 검색창 -> enc 검색 text 클릭 -> Default encoding 창-> 모든 자료 UTF-8 설정

  1. 새 프로젝트 설정 :
    src -> 기존 파일 삭제(우클릭 + Delete 활용) -> 우클릭 -> 패키지 -> new -> helloworld로 제목 설정 -> 우클릭 -> new -> class -> public static void main(String[] args) 체크박스 클릭 -> Finish -> class 생성

실습

[실습사진]

[ 문법 의미 ]

main : 문장의 시작을 알림
" HelloJava " : 출력물 확인
public , class : 키워드
public class ~~ : ~~은 무조건 영어로 시작해야하며 영어/숫자/언더바(_)만 사용가능
{ } : 블록 괄호 안에 원하는 것을 넣어야 처리가 정상적으로 된다.

소스파일의 구문 분석

  • 소스는 블록간의 중첩으로 구성된다
  • 하나의 블록 = {...}
  • 블록안에 명시되는 명령어는 세미콜론(;)으로 문장의 끝을 표현한다

주석문의 설명

<주석문>
1. 주석문 이란?

  • 프로그램 소스코드 안에 개발자의 필요에 따라 명시하는 설명문
  • 주석문은 프로그램으로 컴파일 되지 않는다.
  • 특정 명령문이 실행되지 않도록 차단하는 용도로 사용할 수 있다.
  1. 주석문의 종류
  • 한 줄만 처리하는 주석문
    // "//" 가 앞에 명시된 라인은 주석으로 인식
  • 여러 줄을 처리하는 주석문
	/*
	이 블록 안에서는 여러 라인을 주석으로 처리할 수 있다.
	*/

주석을 실제로 많이 단다.
-> 다른 이들이 알아보기 위함
-> 내가 일을 그만두어도 유지보수를 위함

변수


다양한 종류의 자료를 표현할 수 있는 값을 변수라고 부르며, 일반적으로 웹 페이지에서 처리하고자
하는 "데이터"에 해당한다.


<자료형>

  • 프로그래밍 언어에서 변수의 종류를 구별하기 위해 사용되는 키워드

  • 자바에서 제공되는 자료형의 종류에는 8가지가 있다.
    이를 기본 자료형(Primitive Data Type)이라 한다.

<의미>

  • 모든 변수는 컴퓨터의 메모리 영역에 생성된다.
  • 일반적으로 메모리란, PC에 설치하는 RAM을 의미한다.
  • 4byte의 크기를 갖는 변수 값 하나를 생성할 경우,
    PC의 RMA에서 해당 용량만큼을 사용하게 된다. ( ?용량이 부족할 경우 실행되지 않는다. )
  • 변수는 RAM의 크기를 넘지 않는 범위 안에서만 생성할 수 있다. ( !용량을 넘어서는 경우 OutOfMemory라는 에러를 발생시킨다. )

문자열 데이터

  • 프로그램 코드에서 "문장"을 표현하기 위해 사용되는 데이터 값
  • String
  • 문자열을 표현하기 위한 자료형이다.
  • 글자 수에 상관 없이 쌍따옴표("")로 묶인 내용을 할당할 수 있다.
  • 글자값의 경우 상따옴표로 묶이게 되면 문자열로 취급되므로, 숫자와 문자열을 분명하게 구별해야한다.

선언과 할당

  • 선언 : 언은 데이터형과 사용하고자 하는 변수의 이름을 정한 후, 세미콜론(;)으로 한 라인을 종료

ex) 데이터형 변수이름;
int num;

  • 할당 :
    -> 선언된 변수에 원하는 값을 대입하는 과정
    -> 값의 대입은 대입연산자(=)를 사용하여 우변에서 좌변으로 대입된다.

변수이름 = 값;
num = 100;

문자열 데이터

  • String형의 변수를 선언하고, 쌍따옴표로 묶인 값을 대입한다.
  • 빈 문자열이나 공백도 문자열 데이터이다.

문자열 데이터의 규칙

  • 변수 이름은 영문, 숫자, "_", "$"만 사용가능
  • 변수 이름의 첫 글자는 숫자로 시작될 수 없다.
  • 대/소문자를 엄격하게 구분 (오타에 주의)
  • 자바에서 사용하는 예약어(키워드)를 사용할 수 없다.
  • 클래스 이름의 명명 규칙도 변수 이름의 규칙과 동일하다.

변수의 할당


  • long, float, doube은 다른 데이터 형과의 구별을 위해
    값 뒤에 데이터 형의 첫 글자를 접미사로 가질 수 있다.
    접미사는 대/소문자를 가리지 않지만 가급적 대문자로 사용하는 것이 좋다.

ex)long money = 500000000000L;
float PI = 3.14F;
double lat = 128.32453D;

boolean은 true(참), false(거짓) 중의 한 가지만 갖는다.
ex) boolean user = true;
boolean isJapanese false;

char는 홑따움표(' ')로 감싸진 한 글자만 대입할 수 있다
ex) char first = '곽';

값의 잘못된 할당


  • 생성된 변수는 다른 변수에 대입될 수 있다.
    • 반복하여 다른 값이 할당될 수 있지만, 선언은 중복이 불가하다
      int num1 = 100;
      num1 = 200;
      int num1 = 300;

  • 선언되지 않은 변수는 사용할 수 없다
    int num1 = 100;
    num1 = 200;
    num2 = 300;

[예제]
1 int num1;
2 int num2 = num1; //에러
3 System.out.PrintLn(num1); //에러

1 -> 선언 ( o )
2 -> num1 ( 할당x )
3 -> num1 ( 처리 x )
! -> 값이 대입되지 않은 변수는 다른 변수에 대입하거나 출력할 수 없다.


상수

  • 변수와 마찬가지로 메모리상에 존재하지만, 값이 변경될 수 없는 데이터
  • final 키워드를 사용하여 선언된 변수는 상수로 생성된다

ex) 표기법
final int age = 20;
final long money = 1200000000L;
final float pi = 3.14F;

-> 메모리상에 이름이 생성되므로 접근은 가능하지만, 할달한 값을 변경할 수는 없다. ( 읽기 전용 )

// 서버 메모리가 부족할 시

// 상수로 표현하는 변수 값은 age가 아닌 AGE로 대문자를 활용해 선언한다.

연산자

프로그램에서 연산을 수행하기 위하여 사용되는 특수기호들

연산자 종류

  • 대입연산자
  • 사칙연산자
  • 단항연산자
  • 증감연산자
  • 비교연산자
  • 논리연산자

대입연산자

변수에 숫자나 문자열 등의 자료를 입력하거나 연산 결과를 다른 변수에 할당한다.

사칙연산자

  • 더하기(+), 빼기(-), 곱하기(*), 나눗셈의 몫(/), 나머지(%)
  • 모든 수는 0으로 나눌 수가 없다.

단항연산자

  • 변수에 대한 연산 결과를 다시 자기 자신에게 적용하는 경우 사용
  • 다시 자기 자신에게 대입하고자 하는 경유의 약식 표현이다.
  • 단항 연산자는 모든 사칙 연산자에 표현 가능하다.
    +=, -=, *=, /=. %=
ex) int x = 100
x = x + 5;
----------------------------------
int x = 100;
x += 5;

증감연산자

  • 특정 변수에 저장되어 있는 값을 1씩 증가, 감소 시킬 경우 사용
  • 단항 연산자로 표현할 수 있는 식에서 계산 대상 값이 1인 경우,
    덧셈과 밸셈에 대해서는 다시 한번 축약할 수 있다.

ex)

  • 덧셈의 경우

    		x = x + 1;
    		x + = 1;		-> 단항
    
    		x++;
    		++x;		-> 증감
  • 뺄셈의 경우

    		x = x - 1;
    		x - = 1;		-> 단항
    
    		x--;
    		--x;		-> 증감
  • x++와 ++x의 차이
    -> 증감 연산자는 그 자체가 다른 연산식의 피연산자로 사용될 수 있다.
    이 때, 증감연산자의 표시 위치에 따라 결과가 서로 다르게 적용된다.
  • x++ 경우
    -> 증감연산자가 뒤에 표시되는 경우, 현재 x의 값을 먼저 수식에 적용하고,
    나중에 x에 대한 1증가 처리를 한다.
int a = 100;
int x = 1;
int y = a + x++;		// 100 + 1
System.out.println(y);	// y : 101, x : 2
  • ++x 경우
    -> 증감연산자가 앞에 표시된 경우 먼저 현재 x의 값을 1증가 시킨 후,
    그 결과를 수식에 적용한다.
int a = 100;
int x = 1;
int y = a + ++x;		// 100 + 2
System.out.println(y);	// y : 102 x : 2

비교연산자

  • 두 개의 변수값 간의 관계를 비교하여 참(true)이나 거짓(false)의
    결과를 반환한다.
  • 같다 ==
    다르다 != ( ! -> 부정의 의미 )
    초과 >
    이상 >=
    미만 <
    이하 <=
  • 주어진 식이 참인지 거짓인지 판별 가능하므로, 연산 결과는
    boolean 값으로 생성된다.

ex)
int x = 100;
int y = 1;
boolean r = x 비교연산자 y;

논리연산자

  • 좌변과 우변을 논리 연산하고, 참일 때는 true, 거짓일 때는 false 값을 반환한다.
  • 두개 이상의 비교 연산자의 결과나 boolean 값에 대해
    추가로 "AND"나 "OR"연산을 수행하여 결과를 얻는다.

-> AND의 경우 두 가지가 모두 성립이 되어야한다.

TT -> T
TF -> F
FT -> F
FF ->F

-> OR의 경우 두 가지 중 한 가지가 성립이 되어야한다.

TT ->T
TF -> T
FT -> T
FF -> F

예제)

형변환

형변환이란?

  • 변수의 자료형이 변환되는 것을 의미한다.
  • 특정 자료형의 값을 다른 자횽의 변수에 대입할 수 있다.
  • 암묵적 형변환과 명시적 형변환의 두 종류가 있다.

암묵적 형변환

  • 암묵적 형변환은 서로 다른 자료형을 연산 혹은 대입하는 경우,
    • java 컴파일러가 자료형을 통일한다.
      이 과정에서 발생하는 형변환을 암묵적 형변환이라고 한다.

      -> UPCASTING!

ex)
int a = 100; // 정수형
float b = a; // 정수형을 실수형에 대입


-> 데이터의 손실을 최소화하기 위한 목적 존재
-> 정수형 구간이 실수형 구간보다 데이터 손실이 발생할 가능성이 높음

명시적 형변환

  • 데이터의 손실을 감수하더라고, 강제로 형변환 시키는 형태
  • 자료형 b = (변환할 자료형)a;
  • 실수형을 정수형으로 변환하는 경우, 소수점 이하 자리는 버려진다.

ex)
double a = 3.14d;
int b = (int)a; //3

데이터 크기가 다를 때


단축키

-windows
winkey + r : 실행
notepad : 메모장
calc : 계산기
cmd : 명령프롬프트

-eclipse
ctrl + shift + +: 글꼴 확대
ctrl + shift + - : 글꼴 축소
ctrl + m : 전체화면
ctrl + d : 해당 라인 클리어
ctrl + z : 복구
ctrl + y : 복구
ctrl + f11 : 실행
ctrl + spacebar : 자동완성
sysout + spacebar : system.out.prinln(); -> 귀찮을 때 출력가능
ctrl + alt + 아래방향키 : 해당 라인 복사 붙여넣기 가능

profile
수현

0개의 댓글