지난 주 금요일..
데이터베이스 본격적으로 들어가기에 앞서
모두 오라클을 깔고 데이터서버를 구축하는 와중에
역시나 우리의 m1은 너무 당연하게도 오라클 구축이 안되는 것^^...
일단 수업 진행은 해야하니까
선생님의 서버를 원격으로 접속해서 끌어와 사용하는?
뭐 그런 방식으로 수업을 할 수 밖에 없다고 하셨다..

맥북 사용자는 자급자족입니다..
선생님도 몰라요 ..
어쨌든 폭풍 검색해서 선생님 ip와 아이디 등등 입력해서 성공은 했다ㅋㅋㅋ
https://blog.naver.com/dbstnsgh2/222037768912
DBeaver 설치 / Eclipse 연동
Oracle을 설치해보았으니 이제 설치한 Oracle과 Eclipse를 연동해보도록 하겠습니다. 여기에도 수많은 ...
blog.naver.com
나에게 한 줄기 빛 같았던 글.
이거보고 호다닥 따라했더니 바로 연동됐다
근데 계속 원격으로 끌어쓸 수는 없을 것 같아서 검색을 해봤는데
오라클클라우드 서버를 사용하면 가능하다는 것을 발견..!
그래서 바로 가입을 하려는데
가입안됨..절대안됨.. 어쩌라는거지ㅠ
될때까지 도전해봐야지... 짜정난다
https://ltw2.tistory.com/19?category=497744
[오라클 클라우드] (1) m1에서 oracle을 사용하자 - ATP 데이터베이스 생성
*본 포스팅은 m1칩 mac을 사용하여 작성되었습니다. 참고 부탁드립니다! *다시 생성할 때 깜빡할까봐 복기용으로 작성한 포스팅입니다요... 우선 오라클 클라우드를 사용하기 전에 먼저 아래 링크
ltw2.tistory.com
오늘 수업 요약
- database 개념 정리
- 이번주 금요일 개인포트폴리오 과제 설명
==> 1) 요구사항 분석 <11/26 과제 / 네이버 로그인 분석!!!!>
- 기존 시스템의 기능 확인 및 분석
cf) 쇼핑몰 등 여러가지 관심있는 사이트를 로그인해서 해당 내용을 분석 (장단점 분석)
- 이쪽 화면을 보니까 로그인 기능이 있다~ 는 식으로 과제만들기.
- 로그인 기능 : 아이디와 패스워드를 입력하여 회원이 등록되어있으면 로그인하여 메인화면으로 이동되는 코드 분석.
- 회원가입 : 로그인시 등록된 아이디가 없으면 회원가입을 하라는 안내창이 뜨는 코드 분석.
- 로그인 후 검색기능 : 검색에 필요한 키워드 검색기능, 카테고리 정렬순서 코드 분석.
- 검색 후 원하는 정보 상세화면 : 상세 화면으로 이동하면(클릭) 블로그 클릭 등등 정보 나오는 코드 분석.
개인 포트폴리오 발표라니.. 너무 싫지만 창피하지않게 열심히 해봐야지 !!
- sql 구조 및 작성
- 프로젝트 실행과정
<database 개념>
1. 데이터, 정보, 지식
데이터 : 관찰의 결과로 나타난 정량적 혹은 정성적인 실제 값
정보 : 데이터에 의미를 부여한 것
지식 : 사물이나 현상에 대한 이해
2. 데이터베이스란 ?
: 조직에 필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것.
- 일상생활의 데이터베이스 : 데이터베이스 시스템은 데이터의 검색과 변경작업을 주로 수행함.
변경이란 시간에 따라 변하는 데이터값을 데이터 베이스에 반영하기 위해 수행하는 삽입, 삭제, 수정등의 작업을 말함.
3. 데이터베이스의 개념
1) 통합된 데이터 : 데이터를 통합하는 개념으로, 각자 사용하던 데이터의 중복을 최소화하여
중복으로 인한 데이터 불일치 현상을 제거
2) 저장된 데이터 : 문서로 보관된 데이터가 아니라 디스크, 테이프 같은 컴퓨터 저장장치에 저장된 데이터를 의미
3) 운영 데이터 : 조직의 목적을 위해 사용되는 데이터를 의미한다.
즉 업무를 위한 검색을 할 목적으로 저장된 데이터
4) 공용 데이터 : 한 사람 또는 한 업무를 위해 사용되는 데이터가 아니라 공동으로 사용되는 데이터를 의미
- 데이터베이스의 특징
1) 실시간 접근성 : 데이터베이스는 실시간으로 서비스된다. 사용자가 데이터를 요청하면
몇 시간이나 몇 일 뒤에 결과를 전송하는 것이 아니라 수 초 내에 결과를 서비스한다.
2) 계속적인 변화 : 데이터베이스에 저장된 내용응ㄴ 어느 한 순간의 상태를 나타내지만, 데이터 값은 시간에 따라
항상 바뀐다. 데이터베이스는 삽입, 수정, 삭제 등의 작업을 통하여 바뀐 데이터 값을 저장한다.
3) 동시공유 : 데이터베이스는 서로 다른 업무 또는 여러 사용자에게 동시에 공유된다. 동시는 병행이라고도 하며,
데이터베이스에 접근하는 프로그램이 여러개 있다는 의미이다.
4) 내용에 따른 참조 : 데이터 베이스에 저장된 데이터는 물리적인 위치가 아니라 데이터 값에 따라 참조된다.
4. 데이터베이스 시스템의 구성요소
- 데이터베이스 시스템
데이터베이스 사용자 <----> 일반사용자, 응용프로그래머 ,SQL사용자
<DBMS : 사용자와 데이터베이스를 연결시켜주는 소프트웨어>
<데이터베이스 : 데이터를 모아둔 토대> <------> 보이지않음.
<데이터모델 : 데이터가 저장되는 기법에 관한 내용 >
1. 마당서점과 데이터베이스 시스템
<단계> | <시기/정보기술> | <주요특징> |
1단계/마당서점 | 1970년대, 컴퓨터 없음 | 사장이 모든 도서의 제목과 가격을 기억 매출과 판매가 컴퓨터 없이 관리됨 매출에 대한 내용이 정확하지 않음. |
2단계/초기 전산화 | 1980년대, 컴퓨터 | 컴퓨터를 이용한 초기 응용 프로그램으로 업무 처리. 파일시스템 사용,한 대의 컴퓨터에서만 판매 및 매출관리. |
3단계/데이터베이스 | 1990년대, 컴퓨터+원격통신 | 지점간 클라이언트, 서버시스템을 도입하여 업무처리. 데이터베이스 관리 시스템(DBMS)를 도입. |
4단계/홈페이지 구축 | 2000년대, 컴퓨터+인터넷 | 인터넷을 이용하여 도서 검색 및 구입 웹 DB시스템으로 불특정 다수 고객 유치 |
5단계/인터넷 쇼핑몰 | 2010년대, 컴퓨터+인터넷 | 도서뿐만아니라 음반, 액세서리, 문구 공연티켓까지 판매하는 인터넷 쇼핑몰로 확대 도서 외 상품의 매출 비중이 50%이상으로 늘어남. |
<프로젝트 실행 과정>
# 웹프로젝트 진행
1. 실무 프로젝트 진행 순서
1) 프로젝트 수주
2) 요구사항 분석
- RFQ(고객사의 요청 내용문서)를 기반으로 실제 구현할 내용을 작성
- 요청사항이 현실적으로 시스템으로 구현가능한지 여부를 확인하고 기능내용을 기술
3) 설계
- 화면설계 : 구현할 내용에 대한 구체적인 화면 UI(user interface)를 확정.
진행순서에 따른 내용 기술
- database설계 : 사용될 데이터를 확인하여 저장할 테이터의 기본틀을 만든다.
그 후 스키마 도출, 논리 테이블 도출, 연관관계 도출, 물리 테이블로 생성한다.
- database생성 : 테이블생성, 데이터 입력..
- application 설계 : uml (유즈케이스다이어그램, 클래스 다이어그램), 플로우 차트 작성
4) 구현
- front end 구현
화면 설계 기준을 html/css/js 로 브라우저를 통해 나타날 화면 내용을 구현한다.
- back end 구현
화면설계와 database 설계 및 생성된 내용을 기준으로
java, 프레임워크를 통해서 서버(WAS)에서 처리할 내용을 구현한다.
5) 테스트
- 개발자가 개인적으로 테스트하고
- 주 단위로 팀원들과 함께 단위테스트와 코드리뷰를 통해 효과적으로 코딩내용을 확인한다.
- 전체적으로 진행내용을 통합해서 프로젝트를 통합테스트하여 문제 및 결함을 확인한다.
- 인수테스트는 최종적으로 고객에게 인수하기 전에 테스트하고, 고객으로부터 받은 에러 및 결함은
받아서 바로 수정 및 반영하여 최종적으로 완료를 위한 테스트를 한다.
6) 프로젝트 종료 !!
2. 각 프로젝트 단계별 주요 기술..
1) 요구사항 분석 : 요구사항 내용에 대한 분석 단계 처리, 문서작업, 프로젝트 개발을 위한 고객과의 대화
기존에 있는 산출물 양식에 대한 분석 등등
2) 화면 설계 : 요구사항 기반으로 실제 구현할 화면의 내용을 처리하며, 기본적인 화면 배치나
화면에 사용될 요소들을 생각하여 프로우에 맞게 작성.
3) database 설계 : 요구사항 기반으로 사용할 데이터 도출, 스키마 도출,
4) application 설계 : 프로그래밍 단계에 처리할 내용을 순서도를 만들고, 이에 기반하여
단계별로 use case 다이어그램, 클래스 다이어그램 등을 작성한다.
5) front end 구현 : html, css, js로 브라우저를 통해 로딩할 최종화면에 대한 내용을 구현한다.
6) back end 구현 : database에 대한 sql작성을 기반으로 하여 연동처리하는 DAO를 작성하고,
요청값과 결과값을 최종 front end 와 연결하여 화면구현을 한다.
이때, ajax를 통한 비동기처리를 하기도 하고, MVC(모델2) 패턴을 이용하기도 하고 프레임 워크 등을
사용하기도 한다.
7) 테스트 : 작성된 내용을 기준으로 테스트 시나리오를 만들어 수행하고 bug나 오류를 최대한 빠르게 반영하여 처리한다.
3. 프로젝트형 학습 진행 방법..
- 프로젝트는 앞단계의 내용을 누적해서 진행한다.
요구사항 분석 -> 요구사항 분석+화면설계 -> 요구사항 분석+화면설계+sql작성+프론트화면 ... 누적해서 진행!!!
1) 요구사항 분석 <11/26 과제 / 네이버 로그인 분석!!!!>
- 기존 시스템의 기능 확인 및 분석
cf) 쇼핑몰 등 여러가지 관심있는 사이트를 로그인해서 해당 내용을 분석 (장단점 분석)
- 이쪽 화면을 보니까 로그인 기능이 있다~ 는 식으로 과제만들기.
- 로그인 기능 : 아이디와 패스워드를 입력하여 회원이 등록되어있으면 로그인하여 메인화면으로 이동되는 코드 분석.
- 회원가입 : 로그인시 등록된 아이디가 없으면 회원가입을 하라는 안내창이 뜨는 코드 분석.
- 로그인 후 검색기능 : 검색에 필요한 키워드 검색기능, 카테고리 정렬순서 코드 분석.
- 검색 후 원하는 정보 상세화면 : 상세 화면으로 이동하면(클릭) 블로그 클릭 등등 정보 나오는 코드 분석.
# 사이트의 보완사항 생각해보기..
- 제시된 요구사항 정의서와 프로우 양식에 의한 요구사항 분석
2) 화면설계서 작성.
- 화면설계서 작성 내용 진행
- 기본 시스템의 내용을 분석하여 화면 설계서와 필요한 자료 만들어 보기.
- 새로운 기능 사이트를 구성하여 요구사항과 화면 설계서를 작성.
3) database sql 작성과 설계
- 각 화면별로 필요한 테이블과 sql을 작성.
- 데이터 베이스의 ERD 설계
4) 화면 구현 front end
- 화면 설계와 database를 기준으로 html/css/javascript로 front화면을 구현.
- database 연동하는 DAO 처리를 jsp과목에서 배운 후 back end 처리도 할 수 있게 구현.
(DB 연동해서 처리 )
모델 1
- MVC 패턴에 의한 화면 구현 : 모델 2
5) 프레임 워크를 통한 화면 구현
- spring pramework (스프링프레임워크)를 통해 1단계 프로젝트 진행
- 스프링부트와 vue를 연동한 2단계 프로젝트 진행.
6) 최종 통합프로젝트 진행 ..
<기본적인 sql 질의어 구조>
sql = query langueage
select 출력할 컬럼명 - 열단위 선택
from 테이블 - 대상테이블
where 컬럼 = 데이터 - 행단위 filtering 처리.(비교, 논리연산자)
group by 그룹할 컬럼 - 특정 컬럼단위 그룹함수(합산, 갯수, 최소/최대값) 통계치 처리
having 컬럼 - 그룹함수의 조건을 지정할 때 사용
order by 정렬할 컬럼1, 컬럼2 - 정렬할 컬럼을 지정.
<본격 sql작성>
SELECT empno, ename,
FROM emp;
SELECT *
FROM emp
WHERE sal >= 3000;
SELECT*
FROM emp;
-- 사원정보테이블에서 연봉이 3000미만인 사원의 번호와 이름, 직책과 급여를 출력하세요.
SELECT empno, ename, job, sal
FROM emp
WHERE sal < 3000;
--group by 특정데이터를 그룹으로 데이터 처리하는 것을 말한다.
SELECT deptno, sal
FROM emp
ORDER BY deptno; -- 부서별로 정렬
-- 함수라는 이름으로 테이블전체 기준으로 처리할 수 있다.
SELECT sum(sal) "전체 총계 ", avg(sal) "평균값", max(sal) "최대값", min(sal) "최소값"
FROM emp;
-- group by라는 함수를 쓰면, 해당 그룹별로 나누어서 처리한다.
SELECT deptno, sum(sal) "전체 총계 ", avg(sal) "평균값", max(sal) "최대값", min(sal) "최소값"
FROM emp
GROUP BY deptno;
SELECT*FROM emp;
/*
# 데이터 조회하기 (실행 : ctrl+enter )
데이터는 select 구문을 이용하여 저장된 데이터를 호출(query)할 수 있다.
1.기본형식
select * ||컬럼명, 컬럼명2
from 테이블명
where 조건
*/
SELECT*FROM emp;
SELECT empno, ename, job
FROM emp;
/**
ex) dept 테이블의 전체를 검색한 sql을 작성하고, deptno, dname 검색
*/
SELECT*FROM dept;
SELECT deptno, dname
FROM dept;
/*
-SELECT : 테이블이라는 데이터의 기본 구성요소 하위에 있는 컬럼들을 모두 호출하는 것.
2. 컬럼명 별칭 처리하기
select 컬럼명 as 별칭명, 컬럼명 별칭명
from 테이블
해당 테이블 구조 안에 있는 컬럼명이 as나 한칸띄움으로 별칭으로 호출할 수 있다.
emp테이블은 원래 없고 scott에 선생님이 넣어놓으셨기 때문에 그를 통해 나온 값임..
**/
SELECT empno AS NO, ename AS name, deptno dno
FROM emp;
SELECT empno AS NO, ename AS name, job AS 직책, hiredate AS day
FROM emp;
SELECT empno "구 분", ename "이 름", job "부 서", hiredate "입사 날짜"
FROM emp;
/* command + emp 클릭 */
SELECT ename, mgr, mgr+10 "10을 더함", mgr-5 "5를 뺌", mgr*10 "10을 곱함",
'직책은'||job "show"
FROM emp;
SELECT ename || '님' ename, sal "급여", sal+10 "10을 더함", sal+sal*0.1 "급여+10%"
FROM emp;
/* 부서번호 @@의 @@사원의 직책은 @@@이고, 급여는 @@@ 입니다. 출력 */
SELECT *
FROM emp;
SELECT '부서번호'|| deptno||'인 '|| ename|| ' 사원의 직책은 '||job||' 이고, 급여는 '|| sal||'입니다. ' show
FROM emp;
SELECT*
FROM emp;
SELECT '급여가 '||sal||' 만원인 사원'||ename||'는 직책이 '||job||'입니다.' show
FROM emp;
SELECT*FROM emp;
SELECT ename||'님의 보너스는 급여의 300%인 '||sal*3||'만원 이어서 올 해 총 급여는 '||
(sal+(sal*3))||'만원 입니다.'show
FROM emp;
<11/22 과제>
/*
# 기본적인 sql 질의어 구조
sql = query langueage
select 출력할 컬럼명 - 열단위 선택
from 테이블 - 대상테이블
where 컬럼 = 데이터 - 행단위 filtering 처리.(비교, 논리연산자)
group by 그룹할 컬럼 - 특정 컬럼단위 그룹함수(합산, 갯수, 최소/최대값) 통계치 처리
having 컬럼 - 그룹함수의 조건을 지정할 때 사용
order by 정렬할 컬럼1, 컬럼2 - 정렬할 컬럼을 지정.
*/
SELECT empno, ename,
FROM emp;
SELECT *
FROM emp
WHERE sal >= 3000;
SELECT*
FROM emp;
-- 사원정보테이블에서 연봉이 3000미만인 사원의 번호와 이름, 직책과 급여를 출력하세요.
SELECT empno, ename, job, sal
FROM emp
WHERE sal < 3000;
--group by 특정데이터를 그룹으로 데이터 처리하는 것을 말한다.
SELECT deptno, sal
FROM emp
ORDER BY deptno; -- 부서별로 정렬
-- 함수라는 이름으로 테이블전체 기준으로 처리할 수 있다.
SELECT sum(sal) "전체 총계 ", avg(sal) "평균값", max(sal) "최대값", min(sal) "최소값"
FROM emp;
-- group by라는 함수를 쓰면, 해당 그룹별로 나누어서 처리한다.
SELECT deptno, sum(sal) "전체 총계 ", avg(sal) "평균값", max(sal) "최대값", min(sal) "최소값"
FROM emp
GROUP BY deptno;
'공부 > database' 카테고리의 다른 글
2022.01.23 - 로그인, 회원가입 구현 (0) | 2022.02.15 |
---|---|
2021.11.26 - 국비수업 4주차 벌써..? database 일주일 수업 정리(1) (0) | 2021.11.26 |