본문 바로가기
학원수업/12월

12/27 국비학원 자바수업 22회차(오라클 Toad사용, Thread)

by 코딩마스터^^ 2022. 12. 27.

 

서버 로그에 포트가 두개 적혀있다. 

아이피도 나온다.

127.0.0.1은 내 아이피를 말함.

 

[Toad for Oracle] 오라클 관리도구 '토드'

백업 폴더에 백업을 하는것이다.

데이터베이스 제품들이 기본적으로 방어를 해준다..?

 

출처 : https://jink1982.tistory.com/31

 

[Oracle] SQL의 종류 (DDL, DML, DCL)

SQL(Structured Query Language)의 종류SQL(Structured Query Language)의 종류에는 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)가 있다. 데이터 정의어(Data Definition Language)데이터의 구조를 정의 하기 위한

jink1982.tistory.com

 

SQL(Structured Query Language)의 종류


SQL(Structured Query Language)의 종류에는 데이터 정의(DDL), 데이터 조작(DML), 데이터 제어(DCL)가 있다.

 

데이터 정의어(Data Definition Language)

데이터의 구조를 정의 하기 위한 테이블 생성,삭제 같은 명령어

  • CREATE : 테이블 생성
  • DROP : 테이블 삭제
  • ALTER : 테이블 수정
  • TRUNCATE : 테이블에 있는 모든 데이터 삭제
데이터 정의어 알아보기 ==> CLICK

 

데이터 조작어(Data Manipulation Language)


데이터 조회 및 변형을 위한 명령어

  • SELECT : 데이터 조회
  • INSERT : 데이터 입력
  • UPDATE : 데이터 수정
  • DELETE : 데이터 삭제
데이터 조작어 알아보기 ==> CLICK
 
데이터 제어어(Data Control Language)

사용자에게 권한 생성 혹은 권한 삭제 같은 명령어

  • GRANT : 권한 생성
  • REVOKE : 권한 삭제

토드에서 데이터 삭제하기

 

백업에서 데이터 가져오기

중복되면 안된다. 유니크해야

one commit after all record

커밋하기전에는 이미지만 가지고 있다, 물리적인 데이터를  가질려면 커밋을 해 줘야한다.

this를 언제 쓰나요?

1. 전변초기화

2. ActionListener를 구현할때

3. new XXX(this)-클래스분리, 나눌때

생성자 호출 시 파라미터로 들어오는 this는 현재 (지금, 살아있는) 인스턴스화된 객체를 가리킴

 

이벤트 처리시 이벤트 처리를 담당하는 클래스를 가리키는 목적으로 this를 사용한다.

 

super()란?

자식 클래스에서 부모 클래스 개체를 가져오는데 사용하는 참조 변수입니다

 

TalkSever2는 싱글 스레드. 즉 메인스레드만 있는 애가 되었다.

순서가 중요하다. 화면이 먼저고 init이 그다음

스레드에는 순서가 있다. 경합이 벌어진다.

여러 사용자가 동시에 들어온다.

지속적으로 서비스를 제공해야된다.

 

TalkServer2에서는 화면은 나와도 채팅이 안간다.

오버라이딩으로 러너블에서 스레드 두개로 한것이 아니기 때문이다.

ActionPerformed로 가질못하고 메인 스레드가 잡고 안놔준다.

그래서 멀티 스레드로 구현해야한다.

앱을 안정화 시킬 수 있다.

 

클래스가 스레드가 되는 2가지 방법

1. 스레드를 상속받는다.

2.implements -인터페이스로 처리

 

공통적으로 런 메소드를 재정의 해야된다.

 

/*
 * 클래스를 상속 받으면 클래스간의 결합도가 높아진다.->재사용성이 떨어진다(오작동경험)
 * 기능적인 부분을 결합도를 낮추면서 테스트도 용이한 그러면서 오작동도 방지되는 방법
 * 인터페이스 중심의 코딩을 전개하는 방법-오버라이딩 필수다.
 * 다형성을 누릴 수 있다.

* 선언부와 생성부가 다르다. 유지보수도 좋다.
 */

 

저기서 this를 써도 되나?

this 누구? MainTread1_1 이다 스레드 아니다. 임플리먼츠도 안했다. 그래서 에러

그래서 this를 쓸 수 없다. 망한다.

(r)은 왜 되는거지?

r은 MyRunnerableOne 이다. 

static 안에서는 this나 super를 쓰면 안된다.

 

//상속으로 처리하든 인터페이스로 처리하든 동등하다. 우선순위 없다.
        //누구든 먼저 선점하는 스레드가 우선권을 갖는다.

Thread 클래스가 제공하는 메소드

sleep 잠시 멈추는것

yield- 너먼저 가~양보

join- 내뒤에 기다려

등등 있다...

 

start() 는 런을 바로 실행 시키지 않고 대기시켜 대기실에서 순서를 따짐

 

  • 서버측(TalkServer)->JFrame 상속

내안에 메인 메소드있다.(1번 클론코딩)->initDisplay() 메인 호출할 수도 있다.

  • 서버스레드측->Thread상속

 

  • 클라이언트측(TalkClient)->JFrame

:내안에 메인 메소드 있다.

 

 

  • 클라이언트 스레드측(TalkClientThread)-> Thread 상속

 

MyCar 부모클래스 MySonata 구현체 클래스

바나나톡과 키위톡

댓글