추씨의자바일기24편 -fin-

2023. 10. 19. 13:54JAVA

금일강의내용정리

==========================================================================

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