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 |