배움 __IL/TIL 1기

TIL : 40번째- 230130 [1-5-월]

Mo_bi!e 2023. 1. 30. 19:21

I. 프로젝트 피드백 관련


<피그마 피드백>
출근했다는 증명은 어떻게? : GPS / WIFI

직원 부분에서 애매한 부분 - 근무 선택
-> 원격 근무 선택하면 어떻게 되는건지?
-> 출근 한 다음에 원격 근무, 출장 설정이 맞는지? ( 출근 전에 해야하는게 아닌지?)
--> ( 내 생각 ) 그날 근무 형태가 어땠는지 기록하는거 아닐까
--> 근무 '선택' 이란 워딩보다는 다른 워딩을 쓰는게 좋을 것 같다. ( 내 생각 근무형태?)



<물리 구조 피드백>
로그인한 회원이 쓰는거기때문에 member 가 필요 ( 병렬 구조 )
-> 어차피 다 회원만 사용하는거니까 member 안빼도 된다.


db에서 관리자 인증을 하니까 admin페이지를 별도로 안만들고 한 페이지에서만 쓰는것도 가능한데 뭐가 더 나은가?
-> 규모가 작은 경우 이런것도 ㄱㅊ
-> 사용자 페이지가 주가 됨
-> 향후 기능(관리자 기능, 역할)이 추가될 때를 생각한다면 별도로 admin을 빼는게 적합


**물리 구조는 페이지 구성이 아님!
페이지가 어디에 위치해야하는가, 그리고 그 페이지를 관리하는 대상을 고려해봐야 함
menu <- 보여지는 것이고 (시각적인거 ㄴㄴ)
역할자로 생각해봐야한다! 

 

 

<MT> 

일단 menu 처럼 보이는거에 속지않는 것이 중요한 것이라 생각됨

 

 

II. DataBase

rland 로 pw입력해서 접속해야함

입력에 따라 서버가 합당한 응답을 보내준다

 

 

1. SQL : structure Query Language

여기서 S 는 Structed 즉 구조화되어야한다 따라서 무엇을 할지 구조를 정의해야한다

 

2. SQL 구분 (DMC : 디지털미디어시티 CAD, IS du, 쥐랄 : DMC에서 cad가 한다 지랄을)

(1) DDL

DDL 데이터 정의어 : create / alter / drop (데이터 저장할 구조 정의)

이거는 자주 이용하지않아서 좀 잊기 쉬움

 

(2) DML

DML(manuplate) 데이터 조작어 : select / insert / update / delete (구조에 데이터 입력 등)

 

(3) DCL

DCL 데이터 제어어: grant / revoke (사용자마다 권한 설정)

 

3. DDL

(1) 테이블 생성하기 -CREATE :

테이블 정의하기 : 데이터 구조 정의하기 : 개념상의 데이터 정의하기 : Entity정의하기

 

자바의 데이터 구조DB형으로 바꿔주어야한다.

이 경우 정수실수 구분안해서 NUMBER로 다한다

문자 문자열 구분안해서 VARCHAR2 로 한다

이런것으로 정수나 실수 문자 문자열 속성을 정의한다

CREATE TABLE MEMBER1330 (

    ID        NUMBER,
    NAME      VARCHAR2(100),
    PWD       VARCHAR2(100),
    EMAIL     VARCHAR2(1000)
    
)

 

이렇게 자료 형을 넣어준다.

(2) 자료형

문자열 감싸기위한 기호는 오직 ''만 된다 ""는 안됨

숫자도 정수실수 구분안하는데, 다 숫자임

날짜 구분은 오로지 날짜만 혹은 시간까지 있는거 까지 있다

 

1) Charcter형식 : CHAR(3) , VARCHAR2(3)

CHAR(3) 문자공간은 고정되어있다. 위에 (3)은 옵션을 안쓰면 기본 크기가 3byte이다

만약 (100)이면 한글 50개 가능하다 (왜냐 기본이 byte이다)

그런데 한글 100개를 원하면 (100 CHAR)로 명시해주어야한다

 

이경우 고정길이를 어떤 때 써야할까? 폰번이나 주민번호는 고정길이로 해야한다

만약 이메일 등을 하면 1000개 만큼 마련해야해서 좋지않다

 

이 경우에 가변적으로 할수 있는것이 VARCHAR2이다 

다만 이는 속도가 CHAR보다는 느리다 (왜냐? )

사실 속도는 크게 신경쓰지는않는다 그냥 고정 가변중심으로 생각한다

 

여기서 N은 national이다

데이터 다룰 때 아시아권등 국가들은 문자를 쓸 때 3byte가 2btye로 쓴다는 것이다 N없이 쓰면 한국어 쓸 때 잃는것이 더 있을수 있다

결국 우리는 N을 쓰는것이 더 좋다

 

 

2) Numberic 형식

이 부분은 특별하게 설명할거리는 없다

 

3) Date형식

날짜이다. 

DATE는 시분초라는 데이터는 들어가지않는다

몇년 몇월 몇시 까지 나온다

 

만약 게시글 등록일자, 주문일자는 몇시몇분몇초까지 필요할 경우에는 TIMESTAMP가 필요하다

그런데 이 경우 시간은 시차가 있다.

다른나라의 경우 주별 시차가 있다 TIMESTAMP 할때는 TIMEZONE설정을 해야한다

타임존 같은것에 시간을 비교한다.

 

4) Charctet 형식

숫자가 큰 경우가 있다

long은 정말 큰 데이터를 담을 때 이다.

2giga 저장할수있는 컬럼이 된다. 그러나 최근에는 안씀 왜냐하면 테이블에 한 컬럼만 long형이 된다. 대체하는 CLOB 등이있다.

 

3. 쿼리를 위해 생성해야 할 테이블 구조

우리가 만들 프로젝트는 딱 이정도 사이즈이다.

 

(1) 수업용 테이블의 구성

 

속성은 구성하는데, 자료형이 문제이다.

CREATE TABLE NOTICE
(
    ID          NUMBER,
    TITLE       NVARCHAR2(100),
    WRITER_ID   VARCHAR2(20),
    CONTENT     NCLOB,
    REGDATE     TIMESTAMP,
    HIT         NUMBER,
    FILES       CLOB

)

CREATE TABLE COMMENT
(
    ID          NUMBER,          
    CONTENT     NVARCHAR2(4000),
    REGDATE     TIMESTAMP,
    WRITER_ID   VARCHAR2(20),
    NOTICE_ID   NUMBER 

)

 

file은 clob으로 파일을 직접 때려넣지는않는다 DB에다가

여기는 그냥 경로만 쓴다 파일이 어디에있다고 (varchar)

 

- 가운데 게이트웨이 둬서 한가한 webServer에 요청한다. 이경우 DBMS에 요청한다 DBMS에는 경로만있다.

각 webserver는 각자 두지말고, 별도의 파일전용공간 FileStorage를 둔다

 

실제로 찾을 때는 

메뉴의~~ 이미지/ 메뉴의~~제목 / 메뉴의~~가격 / 메뉴의~~메뉴의~~메뉴의~~ 등으로 해야한다. 

 


1. 보충

(1) UTF 8 / 16 차이

유니코드의 일종이다. 추후에 추가 공부

 

 

(2) 프록시

What (정의) : 사전적 의미로는 대신을 의미한다 프록시는 서버와 클라이언트 사이에서 대신 응답 해주는 것이다. 다시말하면 중계한다고도 볼 수있다.

 

Why (존재이유)  : 보안상의 이점 뿐만 아니라 캐시를 이용해서 프록시서버에 저장하면 load속도가 줄어들 수있다.

How (방법) : Foward / Reverse 두가지 방식이 있다.

 

(3) nvarchar

What (정의) : 유니코드 여부에 따라서 달리 이용하는 것이다.

Why (존재이유)  : 유니코드가 아닌 영어와 달리 입력하기 위해서는 2배의 자릿수를 준비해야하기 때문에 존재한다.

How (방법) : 가변고정 가릴 것 없이 앞에 n을 붙여주면 된다.

 

 

(4) 생성 및 사이즈 알아보기 

완료 -> 다만 이 경우에 오타 유의하기!!!

 

 

2. 회고 

1) 본격적으로 SQL을 다루고 DDL 손대어서 신기하다

우선 DDL에서 개념적 혹은 entity 로서 접근한다는 것이 이전에 공부할 때 DB지식이라고 하면서 접근했는데 이 점과 관련해서 흥미롭다

'배움 __IL > TIL 1기' 카테고리의 다른 글

TIL : 42번째- 230201 [1-5-수]  (0) 2023.02.01
TIL : 41번째- 230131 [1-5-화]  (0) 2023.01.31
TIL : 39번째- 230127 [1-4-금]  (0) 2023.01.28
TIL : 38번째- 230126 [1-4-목]  (0) 2023.01.26
TIL : 37번째- 230125 [1-4-수]  (0) 2023.01.25