Java /day01-02 / 23.08.24(목) / (핀테크) Spring 및 Ai 기반 핀테크 프로젝트 구축

허니몬·2023년 8월 24일
post-thumbnail

day01

OT 및 Java, Ecliplse 설치 및 설정

01. OT

LTS 버전 > 5-7년 장기 지원 > jdk 8, 11, 17

주의사항

  • JDK 8버전 까지는 JRE 통합설치
    JDK 11 이후 JRE 추가설치
    JRE는 코드를 실행시켜 줌

폴더에서 위의 메뉴에서
보기 > 파일확장명 채크

  • 파일 확장명

ecliplse 는 로컬설치 보다는 파일로 받아서 사용

  • 이유 : 로컬로 하면 프로젝트마다 나눠서 작업 못함
  • 파일로 쓰면 워크스페이스 지정해서 사용하면 편리함
  • ecliplse는 분기별로 최신버전이 올라오지만 최신버전의 오류등의 내용을 찾기가 힘들다

intellij

  • 유료 > 추천코드가 매우 잘되어있음 > 개발속도가 빨라짐
    (무료는 1달)

클라우드 공부하기

  • 서버를 운영하는데 있어서 필요
    네트워크에 대한 지식 필요
    리눅스 알아야함 디테일하게 ㄴㄴ 기본적인 환경 등
    할거라면 강사님에게 물어보기
  • 대기업이 목표라면 알고리즘 공부 - 대기업은 코테 4-5단계
    처음에는 결과만 > 마지막엔 결과가 나오는 시간까지 봄

Eclipse IDE for Java Developers : 자바만

Eclipse IDE for Enterprise Java and Web Developers : 서버까지 가능

이클립스 최신버전 다운로드 누르면 화면이 바뀜 > 서버가 한 곳에 있지 않음 > select another


02. 자바 설치 및 설정

자바 설치는 oracle에 로그인하여 설치

사용중인 버전 : JDK-11.0.4

java 설정

  • 폰트 : 다운로드 및 설치(All > 우클릭 > 모든 사용자용으로 설치)
  • 적용 방법
    window > preference > General > Appearance > Colors and Fonts > basic > Text font > D2Coding

기타 설정

  • Content Types > Java class File > Default encoding > UTF-8 입력
  • General > Workspace > Text file encoding > Other > UTF-8 로 변경
    잡아주는 이유 : 혼자하면 굳이 상관없음 , 가끔 강사님 파일을 가져갈 때가 있음

파일을 가져왔는데 세팅값이 안맞으면 깨짐

  • JRE 설정
    Java > installed JREs > standard VM > directory > jre 파일

  • ctrl + n > java project > jre1.8.0_361 로 변경 > 가장 밑에 module 채크 해제

프로젝트 삭제 시 채크 해야 완전 사라짐

  • Delete project 'project name' ~~

  • 자바의 모든 코드는 클래스 내에 작성
    중괄호는 지역(영역)을 표시
    새로운 지역이 발생하면 들여쓰기 하기

class 생성 후 main method 생성

public class ClassName{
public static void main(String[] args) {}
}

bin = binner 의 약자
자바는 src에 있는 파일이 실행되는 것이 아님
실제 작동되는건 bin에 있는 class 파일이 실행되는 것임(JVM)

Project 옮기는 방법
프로젝트를 압축 -> WorkSpace 파일 새로 만들고 설정 ->
복사 or 잘라내기 -> File -> import -> General -> Existing Projects into Worksapce ->
( select root directory : 그냥 파일 )
( select archive file : 압축된 파일 )
-> Browse... 에서 선택 -> finish
-> 느낌표가 떠 있음 / 이유 : 라이브러리가 없음 (jre)
기본적으로 동일한 환경으로 셋팅을 해야함
적용안되면 f5 로 새로고침


day02


P01_basic


Ex00Start

들여쓰기 습관화 > 파이썬 배울때 좋음 > 파이썬은 들여쓰기로 구역을 나눈다. 자바는 {}

주석 : //

  • 프로그램 코드 안에 설명을 작성할 때 사용합니다

  • 프로그램 실행에 영향을 주지 않는다. \// 는 한줄 주석

  • 여러 줄 주석 /* */ 이 안에 모든 내용이 주석처리

사용자 정의 명칭 : class, 변수명....

  • 영문 대소문자, 숫자, 언더바라인 or 언더바(_), $ 를 사용한다.
  • 이름의 첫글자로 숫자를 사용할 수 없다.
  • 이름 중간에 공백을 사용할 수 없다.
  • 영문 대소문자를 구별한다
    (Name, name는 다른 이름)
  • 예약어는 사용할 수 없다.(Java에서 사용중인 이름)


class명 작성 규칙

  • 이름의 첫 글자는 영문 대문자로 시작
  • 합성어의 두번째 단어의 첫글자는 대문자로 시작
  • 모든 메소드는 이름 뒤에 괄호() 가 있다.
    다른 언어에서는 함수라고 한다.

  • 코드 마지막에는 세미콜론(;) 기호를 작성하세요.

실행단축키 : ctrl + f11

java에서는 메소드

  • main method : 프로그램 시작,
    메인메소드 편하게 쓰기 : main 입력 후 ctrl + space

main method

public static void main(String[] args) {}
System.out.println("쌍따옴표 안에 출력할 내용을 작성하세요");

  • print() 편하게 사용하기
    syso 입력 후 ctrl + space

Ex01Print

print()

  • println() : 출력 후 라인 변경(줄바꿈) 된다.
  • print() : 출력 후 라인변경(줄바꿈)을 하지 않는다.
  • print() 내에서 숫자끼리 수식 사용 가능
System.out.println("날씨가 많이 습하네");
System.out.println("건강관리 잘 해라");
System.out.print("print()는 라인변경 X");
System.out.println("ㅇㅋ?");
// print()내 연산
System.out.println(12+34);

문자들의 조합 : " " + " "

  • 문자열 : 문자들의 조합. " " 로 작성
  • 문자열을 더하면 이어지게 된다.
// 문자열 연결
System.out.println("abc" + "def");
// 숫자 연산 후 문자열 열결
System.out.println(1+2+"data");
// 문자열 뒤에 숫자 연산 시 문자열 취급 -> 이어짐
System.out.println("data" + 1+2);
// 문자열 뒤에서 수식을 사용하고 싶다면 () 로 묶어서 사용
System.out.println("data" + (1+2));


Ex02Printf

printf() : 문자열안에 서식지정자를 사용해서 외부의 값을 출력

  • C언어에서 가져온 것임
    자주 쓰진 않지만 맞춤하기 용이하여 사용
  • 한개의 문자열만 가능, 수식 불가능
  • 줄바꿈이 되지 않음
  • 줄바꿈을 할 땐 \n를 사용하여 한다.(역슬래쉬)/ " " 안에 쓸 것
    한글 폰트에서는 \ 가 원화기호로 나옴
    영문 폰트에서는 \로 나옴 원화 기호를 쓰지 않기 때문
    가져올 수 가 있어서 편함

정수 : %d

System.out.printf("정수 : %d\n",10);

실수 : %f

  • 실수는 출력시 디폴트 6자리까지다.
  • 실수값을 출력 할 때 서식지정자를 '%. 숫자f' 로 작성하면, 해당 숫자까지의 소수점자리를 술력
System.out.printf("실수 : %f\n",10.13);
System.out.printf("%.2f\n",12.1234);

문자 : %c

  • 문자 하나의 데이터를 표시할 때에는 '  '로 작성
  • 자바는 문자 1개가 기본 2byte 때문에 한글 적용 가능
  • 1byte 기호 알파벳 숫자 1개
System.out.printf("문자 : %c\n", 'A');
// 한글도 적용 됨
System.out.printf("문자 : %c\n", '가'); 

문자열 : %s

  • 여러개 사용 가능, 구분은 쉼표(,) 로 한다.
System.out.printf("문자열 : %s, %s\n", "안녕 나는 문자열이야", "안녕");

서식지정자 안에 '%숫자d'를 하면,
출력시 해당 위치에 '숫자'만큼의 공간을 확보 하고 출력

  • : 오른쪽 맞춤(디폴트)
  • : 왼쪽 맞춤
System.out.printf("공간확보 :%5d\n",1);
System.out.printf("공간확보 :%5d\n",12);
System.out.printf("공간확보 :%-5d#\n",123);

실수값을 출력 할 때 서식지정자를 ' %. 숫자f '로 작성하면,
해당 '숫자'까지의 소수점자리를 술력

// 공간확보와 소수점자리수 같이 사용 가능
System.out.printf("%.2f\n",12.1234);
System.out.printf("%7.2f\n",12.1234);


Ex03Integer

상수 : 코드 안의 고정된 데이터

  • 값 변경 불가

자료형

  • 데이터를 저장하는 공간을 생성할 때 사용하는

기본자료형

  • 이름과 값이 하나
  • 데이터 공간의 크기가 고정
1byte2byte4byte8byte
논리형boolean
문자형char
숫자형byteshortint(기본)long
실수형floatdouble(기본)

참조자료형

  • 기본자료형을 제외한 모든 자료형
  • 실제 데이터가 있는 곳과 이름이 분리되어 있음

변수

  • 자료형을 사용해서 만들어 쓰는 데이터
    형식 : 자료형 변수명;
    Ex) int a;

빨간줄 : 에러
노란줄 : 주의사항 > 실행은 돌아감

저장소 하나를 만들어 숫자형태의 공간 확보

// 메모리 어딘가에 고정되기 때문에 다시 쓸 수 없음 
System.out.println(10); 

변수 선언(생성)

  • 이상태에서는 cpu가 연산할 수 없는 데이터가 들어가있음
int a; 

쓰레기 데이터 >> 초기화를 해야함

System.out.println("a : " +a); Error

모든 변수는 초기화 후에 사용

  • = 는 대입 연산자 : 오른쪽의 값을 왼쪽의 공간에 저장

초기화

// 모든 변수는 기본적으로 1개의 값만 가질 수 있다.
a = 10; 
System.out.println("a : " +a);
a = 20; 
System.out.println("a : " +a);

변수생성과 초기화를 바로 가능

int ia = 11;
System.out.println("ia : "+ia);

// 128이상 쓸 수 없음 -> 에러 뜸
// 이유 : 1byte = 8bit -> 2^8 = 256
// -128 ~ 127 , 0포함
byte ba = 127; 
System.out.println("ba : "+ba);
		
short sa = 31111;
System.out.println("sa : " + sa);

long la = 2147483648L; //~까지
//long la = 2147483648; // 오류
System.out.println("la : " + la);
// int 4byte 까지만 메모리에 가능
// 8 넘으면 메모리에 올라갈 수 없어서 오류
// long타입의 리터럴을 사용할 때에는 데이터 뒤에 L을 작성


Ex04Floating

실수
double dd = 1.2;
System.out.println("dd : "+ dd);

float ff = 1.2F;
System.out.println("ff : "+ ff);
// float 타입 리터럴을 사용할 때에는 'F'를 작성


Ex05Character

한 글자만 가능
char ch = 'a';
System.out.println("ch : " + ch);
ch = '가';
System.out.println("ch : " + ch);


Ex06Boolean

boolean

  • true(참) / false(거짓) 의 값만 사용 가능
boolean judge = true;
System.out.println("judge : " + judge);
		
judge = false;
System.out.println("judge : " + judge);


Ex07String

문자열 : String

  • 문자열을 기본자료형처럼 다루게 해주는 class
// 참조이기 때문에 변수가 값을 갖는 것이 아니라 위치정보를 가짐
String stnA = "Hi";
System.out.println("stnA : "+stnA);
stnA = "데이터 수정";
System.out.println(stnA);
		
String textA = "new";
String textB = "java";
String title = textA + " " +textB;
System.out.println("title : " + title);
// 문자 수 확인 : .length() 
System.out.println("title 문자수 : "+title.length());


QuizBasic

문제
아래의 내용을 변수에 저장해서 출력하는 코드를 작성하세요
- String : 이름, 주소
- int : 생일(년, 월, 일), 나이
- char : 성별(m,f)
- double : 키

Ex) --- 고 객 정 보 ---
이름 : test
주소 : 서울시 강남구
생일 : 2003년 8월 24일
나이 : 20세
성별 : m
* 키 : 123.4

		String name, ad;
		int y, m, d, age;
		char s;
		double h;
		name = "윤범헌";
		ad = "남양주시 화도읍";
		y = 1996;
		m = 6;
		d = 4;
		age = 27;
		s = 'm';
		h = 123.4;
		System.out.println("--- 고 객 정 보 ---");
		System.out.printf("이름 : %s\n",name);
		System.out.printf("주소 : %s\n",ad);
		System.out.printf("생일 : %d년 %d월 %d일\n",y,m,d);
		System.out.printf("나이 : %d세\n",age);
		System.out.printf("키   : %.1f cm",h);


P02_operator


OptEx01

산술연산자

  • -, +, *(곱셈), /(나눗셈)
  • % : 나머지 값을 구하는 연산자
    > 홀수, 짝수, 배수
		int ia = 10, ib = 3;
		System.out.println("ia : " + ia + " - ib : "+ ib);
		System.out.println();
		System.out.println(ia + " + " + ib+" = "+(ia+ib));
		System.out.println(ia + " - " + ib+" = "+(ia-ib));
		System.out.println(ia + " * " + ib+" = "+(ia*ib));
		System.out.println(ia + " / " + ib+" = "+(ia/ib));
		System.out.println(ia + " % " + ib+" = "+(ia%ib));


OptEx02

복합 대입 연산자

  • +=, -= ...
    Ex) a += b -> a = a + b
    a와 b를 더해서 나온 결과를 왼쪽에 대입한다
		int ic = 10;
		System.out.println("ic : " +ic);
		System.out.println();
		ic +=5;
		System.out.println("ic : " +ic);
		System.out.println();
        
		// 연산 후에 나온 결과를 왼쪽에 대입하기 때문에,
		// 왼쪽에는 항상 변수가 있어야 한다.
		5 += ic; << Error 
        
		int id = 2; 
		ic *= id;
		System.out.println("ic : "+ ic );


OptEx03

비교 연산자

  • >, <, >=, <=
    == : 같을 때 true(boolean)
    != : 다를 때 true(boolean)
    비교연산자를 사용하는 것을 조건식이라 한다.

조건식에 따른 결과는 true, false > boolean 값임

int ie = 10, ig = 7;
System.out.println("ie : "+ie + " - ig : "+ ig);
System.out.println();
		
System.out.println("ie >= ig : " + (ie>=ig));
System.out.println("ie <= ig : " + (ie<=ig));
System.out.println("ie == ig : " + (ie==ig));
System.out.println("ie != ig : " + (ie!=ig));


OptEx04

논리 연산자

  • && (and 연산)

    조건식_a && 조건식_b
    : 조건식_a, 조건식_b 둘다 참이면 true
    2개뿐만 아니라 3개 이상도 가능

  • || (or 연산)

    조건식_a || 조건식_b
    조건식_a, 조건식_b 둘중 하나라도 참이면 true

  • ! (not 연산)

    !(조건식)
    : 참이면 거짓으로, 거짓이면 참으로 변경
    : true -> false / false -> true


int na = 10, nb = 7;
System.out.println("na : "+na + " - nb : "+ nb);
System.out.println();
		
boolean res;
res = na > 9 && nb >9;
System.out.println("res = na > 9 && nb > 9 : "+ res);
		
res = na > 9 || nb >9;
System.out.println("res = na > 9 || nb > 9 : "+ res);
		
res = !(na>9);
System.out.println("res = !(na>9) : "+ res);


OptEx05

증감 연산자

  • 값을 1 증가 시키거나, 1 감소 시킬 때 사용
    ++ : 1 증가
    -- : 1 감소
  • 주의 사항
    ++n -> 1증가 후에 다른 연산
    n++ -> 다른 연산 후에 1 증가
    --n -> 1감소 후에 다른 연산
    n-- -> 다른 연산 후에 1 감소
int data = 5;
System.out.println("data : " + data);
		
int res = 0;
res = ++ data;
System.out.println("data : "+ data + " - res : "+ res);

res = data++; // 대입이 먼저 -> data +1 
System.out.println("data : "+ data + " - res : "+ res);

res = -- data;
System.out.println("data : "+ data + " - res : "+ res);
		
res = data--; // 대입이 먼저 -> data -1 
System.out.println("data : "+ data + " - res : "+ res);

int a = 5;
++a ;
System.out.println("a : " + a);

int b=5;
int z = ++b * b++;
System.out.println("b : " + b + " - z : " + z);

컴파일 : 자바 소스코드르 바이트코드화 시킴
줄단위로 순차적으로 진행 > 인터프리터 방식

System.out.println();
int c = 5;
boolean r = (++c > 6) && (++c > 6);
System.out.println(r);
// 논리연산자는 앞의 조건이 중요 && 에서 앞이 false 면 뒤의 조건식은 계산하지 않음
		
int d = 5;
boolean r1 = (++d > 5) || (++d > 6);
System.out.println(r1);
// || 앞의 조건식이 참이므로 뒤의 조건식은 계산하지 않음

System.out.println();
int e = 7; 
double f = e>>1;
System.out.println("f : "+f);
// double 로 바꿔도 안됨 >> int만 받음


OptEx06

int 와 int를 연산하면 int 타입
그렇기 때문에 double 타입에서 2.5가 아니라 0이 나옴

자동 형변환

  • 자료형이 큰쪽에 맞춰 연산을 한다.
    Ex) int < double / long < double / int < float
  • 결과를 실수로 출력하고 싶으면 계산식에 실수를 넣어라
    Ex) int와 double를(서로 다른 자료형) 연산하면 내부적으로 타입을 맞춤
int va =5, vb = 2;

System.out.println("va : " + va + " - vb : " + vb);
double div;
div = va/vb;
System.out.println("div : " + div);
		
double da = 2;
div = va/da;
System.out.println("div : " + div);

주의사항
실수 데이터(double)를 정수 변수(int)에 넘길 수 없음

int ir = va / da; <- Error

강제 형변환

  • 이 수식에서만 일시적으로 자료형을 바꿈
  • 사용하려는 데이터 왼쪽에 '(변환자료형)' 을 써주면,
    실행시에 ()안의 자료형으로 형변환되어 실행된다.
int va =5, vb = 2;
div = (double)va / vb;
System.out.println("div : " + div);

profile
Fintech

1개의 댓글

comment-user-thumbnail
2023년 8월 24일

고객님~ 키 123.4 풉키풉키🤭

답글 달기