2023. 10. 19. 13:54ㆍJAVA
금일강의내용정리
==========================================================================
1. 개발자 환경 구축
(1) 자바 : 자바 가상 머신(JVM)
메모리 생성하고 사용안함 -> 제거 jvm
- src : 컴파일(javac) : 자연어 => 기계어
javac 파일이름.java
- bin : 실행(javac) : 기계어 => 실행
java 파일이름
(2) 통합개발환경(IDE) : 이클립스, Intellij
but) notepadd++, 메모장
1) 오픈소스
2) 컴파일, 실행 동시에 처리
3) workspace - switch : 작업 폴더를 변경
(3) jdk => 환경변수 => 바로 적용/안됨
서버 -> 환경설정 -> (서버 재부팅)
(4) 미군 작전용 스마트(갤럭시)
입는 컴퓨터 : 신체 능력이 2 ~ 3배
- 웨어러블 컴퓨터
AR(증강현실) : 실제하는 산 이미지 위에 그래픽을 설정
VR(가상현실) : 전부 컴퓨터 그래픽
냉장고, 보일러 + 원격 관리 -> 유비쿼터스 환경
블록체인 : 정보를 블록단위로 잘라서(분산처리)
연결하여 위조 or 변조를 방지하기 위한 기술
(5) 컴파일 언어 : C, C++, java
인터프리터 언어(웹) : spring, .net, php, javascript
실기
1. jdk 이클립스 다운로드해서 설치, 설정 방법
(1) jdk
(2) 이클립스
2. 응용프로그램을 개발 하기 위한 도구 3가지
------------------------------------------------------------------------------------------------
2. 프로그래밍언어 활용
(1) 상속 : extends(클래스 : 객체생성)
다중 상속 안됨 - 선택적 오버라이딩
구현 : interface(객체 생성x) + Implements(클래스)
상속 단점을 보완 - 강제 오버라이딩
- 별도 클래스에 메소드 또는 필드 private 설정 상속 x
(2) 메소드 또는 필드에 final 설정을 하면
값을 변경 x, 상속 x, 오버라이딩(수정) x
final double PI = 3.14;
PI = 8; => 오류(에러)
(3) 객체 구성 요소인 필드, 생성자, 메소드에 대한 설정
1) 필드 : 데이터 저장
2) 생성자 : new 클래스이름() => 초기화
인스턴스(화)
3) 메소드 : 동작 그리고 몸통( {} )
(4) 반드시, ~ 만 => 틀린것(컴퓨터는 유연성이 좋기 때문)
(5) 논리연산자(&&, ||), 삼항연산자(?, :)
(6) 메소드의 특징
void(없다) -> return x -> sysout
void 외에 결과값이 필요하다면 return 존재
배열에서 배열 개수를 모를 때 ...
메소드(생성자) 오버로딩
- 매개변수의 개수나 타입이 다를 때 사용
(이름은 동일하게 사용해야 한다)
(7) 인터페이스(interface)
- 객체 생성 안됨
- 다형성(부모 = 자식1, 부모 = 자식2, 부모 =자식3)
(8) Collections(동적배열)
- 고정배열 : 빠름, 검색은 속도가 빠르지만 수정, 삭제는 문제
- 동적배열 : 느림, 검색 속도는 느리지만 수정, 삭제 시 편리
- 선형리스트(순서대로 인덱스 번호)
- ArrayList, Vector : 차이는 Vector는 안전하게 처리하되
속도는 ArrayList보다 느림
- 비선형리스트(순서 x -> 이름으로 구분) : Map<>
실기
- 3의 배수 5의 배수 출력
- 영문자를 입력 받아 대문자로 변경하는 프로그램
- 영문자 출력 do ~ while로 프로그램 작성
------------------------------------------------------------------------------------------------
3. 프로그래밍언어 응용
(1) 분기문, 반복문
switch(정수, 문자열 but 대소비교 x)
break는 break에 가장 가까운 반복문을 벗어나는 코드
(2) 타입 크기(1byte -> 8bit)
byte(1byte) : 256(음, 양) -128 ~0, +127
char(1byte) : 256 영문자 저장, 문자 -> 숫자로 표현 가능
short(2byte)
int(4byte)
long(8byte)
float(4byte)
double(8byte)
(3) 변수
- Scope(범위 또는 {}) : 변수는 스코프 내에서만 사용이 가능
- 변수는 하나의 값만 저장할 수 있다.
- 변수는 타입을 선언할 때 선언한 타입의 값만 저장할 수 있다.
- 변수나 객체는 초기화한 후 사용해야 한다.
(4) 배열생성 방법
- 타입[] 이름 = 0;
- 타입[] 이름 = new 타입[]{};
- 타입[] 이름 = new 타입[배열개수];
(5) 자바에서 객체의 구성 요소 3가지 이상
필드, 생성자, 메소드, 내부함수
(6) ++변수, 변수++;
(7) String에 대한 설명 : 기본 또는 객체
- String name = "코리아아이티"; - 하나의 메모리 값을 저장 후 공유
String name = new String("코리아아이티");
- 문자열 비교 equals()
(8) 타입 초기값 설정
boolean b = false;
char c = '';
int i = 0;
ling l = 0L;
float f = 0.0f;
double d = 0.0;
객체 타입은 전부 null
(9) this, super 키워드
this(), super() 생성자
-> 나 자신을 가리키려면 this
상속하는 부모는 super
실기
1. 60점 이상이면 합격 미만 불합격
2. 무작위 값을 배열에 저장 후 짝수만 출력하는 프로그램
3. 주민번호를 이용하여 남자, 여자 표시하시오
------------------------------------------------------------------------------------------------
4. 응용SW기초 기술 활용
(1) Collections Framework 특징
List는 데이터 중복 저장 허용
Set 값만 저장 -> 중복 데이터 허용 x
Map key, value로 구성 되어 있고 Entry에 저장한다.
FIFO : Heap(선입선출)
LIFO : Stack(후입선출)
(2) 객체지향의 개념
1) 캡슐화 : 외부에서 정보에 직접할 수 없도록 하며 연산(getter, setter)를 통해서만 접근
2) 객체 : 실세계에서 존재하거나 생각하는 것을 프로그래밍한 것
3) 클래스 : 하나 이상의 객체를 묶어서 표현한 것
4) 다형성 : 상속 또는 구현한 하위 객체들이 다른 형태의 특성을 갖는 것
(3) 데이터베이스
1) 제거 : Drop
삭제 : 내용물만 없애는 Delete
2) SSO : 한번 로그인하여 인증하면 다른 시스템의 권한도 획득하는
3) 미들웨어 : 다른 프로그램들 사이에 위치한 소프트웨어
일반적으로 컴파일 형태이기에 내부 동작 확인이 어렵다
1:1 또는 1:n, n:m의 여러가지 형태를 띈다.
대칭키(비밀키) : DES -> 일반적으로 사용(속도 빠름)
비대칭키(공개키) : RSA(공인인증서) - 암호화 강도 강함
4) DRM : 디지털 저작권 관리 기술
- 콘텐츠 암호화 기술, 키
- 콘텐츠 식별 기술
- 콘텐츠 오류 감지 및 복구
5) 해킹
SQL Injection : naver.com/?query = "코리아아이티"&code = 1111111;
XSS : 자바스크립트 오류
디도스 : 인터넷 연결을 느리게 해서 서비스를 불가능
실기
1. jdbc -> 회원가입 프로그램 작성
1) 미들웨어, 디비, 객체, jdbc 프로그래밍
2) 작업 후 디비 백업해서 프로그램과 압축해서 제출
3) 관리자 계정이 아니란 사용자 계정을 생성 후 작업하시오.
myqldump -u사용자비밀번호 mydb > 20231019.dump
4) 입력, 출력
여기까지 금일강의내용 정리
==========================================================================
느낀점 : 아직 시간이 있다.
==========================================================================
오늘의 결론
.
.
.
.
.
.
.
행복한 삶을 살기위해 필요한 것은 거의 없다. -마르쿠스 아우렐리우스 안토니우스
'JAVA' 카테고리의 다른 글
평가대비 게시글 (1) | 2024.01.10 |
---|---|
추씨의자바일기23편 (1) | 2023.10.18 |
추씨의자바일기22편 (0) | 2023.10.17 |
추씨의자바일기21편 (0) | 2023.10.13 |
추씨의자바일기20편 (0) | 2023.10.12 |