2018-12-03 수업 내용 정리

지난주 static 블록과 instance 블록 이해가 안되어서 추가로 찾아보았다

참고한 사이트들 목록

  • 스태틱 블록
    • 클래스가 로딩된 후
    • 클래스 변수를 초기화 시키는 코드를 주로 둔다
  • 인스턴스 블록
    • 인스턴스가 생성된 후 실행
    • 인스턴스 변수를 초기화 시키는 코드를 주로 둔다
    • 어떤 생성자가 호출되든 공통적으로 실행되어야 하는 코드가 있다면 작성한다

일단 클래스를 읽어야 하므로, 클래스 로딩 - 스태틱 블록 실행 - 객체 생성(ex. int i) 완료 - 인스턴스 블록 실행

  • 클래스가 로딩되다
    • 클래스 로더는 자바 바이트 코드를 읽어들여 클래스 객체를 생성하는 역할을 담당
    • 로더가 읽은 바이트 코드가 올바르다면, 메서드 에리어 영역으로 파일이 로딩된다
    • JVM에 로딩된 클래스만이 객체로 사용이 가능하다

3.7부터 건너 뛰었는데, 따로 공부를 해야할 것 같다.

braw 업데이트해야한다

DBMS

MYSQL

mysql 서버에 접속하기

로컬 MySQL 서버에 접속

mysql -u root -p
Enter password: 암호입력

원격 MySQL 서버에 접속

mysql -h 서버주소 -u root -p
Enter password: 암호입력

mysql root 암호 변경

alter user ‘root‘@’localhost’ identified by ‘1111’;

MySQL 사용자 추가

CREATE USER ‘사용자아이디‘@’서버주소’ IDENTIFIED BY ‘암호’;

로컬에서만 접속할 수 있는 사용자를 만들기:

CREATE USER ‘study‘@’localhost’ IDENTIFIED BY ‘1111’;

=> 이 경우 stidu 사용자는 오직 로컬(서버를 실행하는 컴퓨터)에서만 접속 가능한다.
=> 다른 컴퓨터에서 실행하는 MySQL 서버에 접속할 수 없다는 것을 의미한다.

원격에서만 접속할 수 있는 사용자를 만들기:

CREATE USER ‘study‘@’%’ IDENTIFIED BY ‘1111’;

=> 이 경우 study 사용자는 원력에서만 접속 가능하다. (% = 원격)

MySQL 사용자 목록 조회

select user from 데이터베이스명.테이블명;

select user from mysql.user;

MySQL 데이터베이스 생성

CREATE DATABASE 데이터베이스명
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

CREATE DATABASE studydb
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci;

MySQL 사용자에게 데이터베이스 사용 권한 부여

GRANT ALL ON 데이터베이스명. TO ‘사용자아이디‘@’서버주소’;
GRANT ALL ON studydb.
TO ‘study‘@’localhost’;
GRANT ALL ON studydb.* TO ‘study‘@’%’;

데이터베이스 목록 조회

show databases;

사용자 교체

quit (프로그램 종료 후)
mysql -u study -p (다시 실행)

기본으로 사용할 데이터베이스 지정하기

use 데이터베이스명
use studydb;

데이터베이스의 전체 테이블 목록 조회

show tables;


흐름

  1. 웹 브라우저의 요청
    • 서블릿 필터가 거른다
    • 디스패처 서블릿 호출
      • 인터셉터 발동 가능
    • 페이지 컨트롤러 호출
    • jsp 호출
  2. 서비스 호출
  3. dao 동작
  4. db 도달
  • 스프링의 3대 필터
    • 서블릿 필터
    • 인터셉터
    • aop
      • 자유로운 영혼, 메서드 호출 전후에 꼽는 필터
      • 애플리케이션 전체에 걸쳐 사용되는 기능을 재사용하도록 지원

DB

  • 포함 관계 : 회원과 학생 엔티티의 관계
  • 상호 배타 관계 : 학생과 교사 엔티티의 관계

  • 인덱스 칼럼의 지정
    : insert, update, delete 시 실행 속도는 느려지나 select 속도가 빨라짐

  • 도메인 : 실무에 가면 엔티티가 많아지므로, 비슷한 종류의 칼럼들을 묶어 관리하기 위해 사용

gradle 사용법

  • maven에서 jar 파일을 gradle로 복사한 뒤
  • build.gradle에 dependencies에 붙여넣고
  • cmd에서 gradle ecilpse