2016년 8월 31일 수요일

3주차 16_08_31 ( 수 )

3주차 16_08_31 ( 수 )


front 부분에

HTML
-아주 기본적인 꾸미기

CSS
-좀더 나은 꾸미기

javascript
-동적인 언어
쉬운듯 보이나 확장성이 좋아서 어려움 ( 오류를 찾기 어려움 )

jQuery
-

BOOTSTRap






-웹프로그래머가 되기 위한 과정




** ) 생활코딩 (https://www.opentutorials.org/)

학습과 방향성

내가 무엇을 위해 이것을 배우나 생각하는게 중요하다

방향성에 대한 내용인데 만일 이것을 생각 안한다면 내가 배우는게 쓸모가 없어 질수도 있

기 때문에 반드시 생각해야 한다.

2016년 8월 30일 화요일

3주차 데이터베이스 View 16_08_31 ( 수 )

3주차 데이터베이스 View 16_08_31 ( 수 )



조회용으로 만들어짐

부서별 급여의 총액과 평균을 구하는 뷰를 VIEW_SAL 로 만들기


COMPLEX VIEW(복합 뷰)

-두개 이상의 기본 테이블에 의해 정의된 뷰.


about project
POS 기기 = 공부도 많이되고 신선함

좋아하는 분야의 것을 만들면 도움이 됨

sequence?

-유일한 값을 생성해주는 오라클 객체
-보통 primary key 값을 생성하기 위해 사용한다.
-시퀀스는 테이블과는 독립적으로 저장되고 생성된다.


INDEX
-빠른 검색을 위해 인덱스를 사용
-B-TREE 형식의 내부 구조를 갖고 있습니다.

장점
-검색 속도가 빨라집니다.
-시스템에 부하르 줄여서 시스템의 전체 성능을 향상시킵니다.

단점
-인덱스를 위한 추가 공간이 필요합니다.
-인덱스를 생성하는데 시간이 걸립니다.
-데이터 변경 작업이 자주 일어날 때는 오히려 성능이 저하됩니다.

인덱스 사용 추천

-데이터가 많을때
-WHERE 문에 해당 칼럼이 많이 사용될때
-검색 결과가 전체 데이터의 2~4%정도일 때
-JOIN에 자주 사용되는 컬럼이나 NULL을 포함하는 컬럼이 많은 경우


데이터베이스 끝

























* privilege 권한 , 특권 

3주차 데이터베이스 SQL 16_08_30 ( 화 )

3주차 데이터베이스 SQL 16_08_30 ( 화 )

DECODE

SELECT EMPNO, DEPTNO
DECODE(DEPTNO,10,'ACCOUNTING') AS DNAME
FROM EMP;



CASE 함수는 if else if else 와 유사한 구조
CASE 함수는 다양한 비교 연산자를 이용하여 조건을 제시할 수 있음


CASE WHEN DEPTNO = 10 THEN'ACCOUNTING'
END AS DNAME

가장 최근입사한 사원과 가장 오래된 사원 출력

-10번부서 소속 중 커미션을 받는 사원의 수 출력

DISTINCT
-중복을 제거

Group by
-기준

HAVING
-group by에 대한 조건

JOIN
-한개 이상의 테이블에서 데이터를 조회하기 위해 테이블 간관계를 기반으로 사용되어지는 개념

-cross join
ex)select * from emp,dept;

equi , non-equi , outer , self 조인
동일 칼럼을 기준 , 동일 칼럼이 없어 다른 조건을 사용하여 조인 , 조인 조건에 만족하지 않는행도 나타냄, 한 테이블 내에서 조인

equi 조인

SELECT *
from emp,dept
where emp.deptno=dept.deptno;

1.뉴욕에서 근무하는 사원의 이름과 급여




2.ACCOUNTING 부서 소속 사원의 이름과 입사일









3.직급이 MANAGER 인 사원의 이름 , 부서명을 출력


non equi join
ex) select e.ename , e.sal, s.grade
from emp e, salgrade s
where e.sal >= s.losal and e.sal <=s.hisal

1.매니저가 king 인 사원들의 이름과 직급





2.scott과 동일한 근무지에서 근무하는 사원의 이름













OUTER JOIN
-

사부서 테이블 40번 부서 조인할 사원 테이블의 부서번호가 없지만 40번 부서 이름도 출력되도록




ANSI JOIN

ex) select * from emp cross join dept;

from 다음에 inner join 일나 단어를 사용하여 조인할 테이블 이름을 명시하고 on 절을 사용하여 조인 조건을 명시하여 다음과 같이 작성합니다.

USING
ex)select * from t1 inner join t2
using (공통컬럼)

NATURAL join




SUB QUERY
-query 문 안에 query 문

1.scott과 같은 부터에서 근문하는 사원




2.scott와 동일한 직급을 가진 사원














3.SCOTT의 급여와 동일하거나 더 많은 받는 사원 명과 급여출력



4. DALLAS에서 근무하는 사원의 이름,부서 번호




5.SALES부서 에서 근무한느 모든 사원의 이름과 급여를 출력



6.직속상관이 KING인 사원의 이름과 급여를 출력










IN , ANY, SOME, ALL, EXIST


1.부서별로 가장 급여를 많이 받는 사원의 정보를 출력

select max(sal) from emp group by deptno; 이문장을 생각을 못해냄..



**) 나온 값은 MAX(SAL)만

select empno,ename , sal ,deptno
from emp
where sal in (select max(sal) from emp group by deptno);


2.직급이 MANAGER인 사람의 속한 부서의 부서 번호와 부서명과 지역 출력



1.영업 사원들 보다 급여가 많이 받는 사원들의 이름과 급여와 직급 출력

ALL





*이전에 배운 것

1. 인터페이스 내에 선언된 변수는 무조건 public static final 로 선언된다.

2. 인터페이스 내에 선언된 메소드는 무조건 public abstract로 선언된다.

3. 인터페이스도 참조변소 선언 가능하고, 메소드 오버라이딩 원칙 그대로 적용된다.

-살쪄서 운동이 필요함 !

-집에서 간단한 먹을것 가져와서 저녁먹을것


-http://newbloggerthemes.com/ 에서 템플릿을 다운받을수있음

http://hiin124.wixsite.com/mysite

2016년 8월 29일 월요일

3주차 16_08_29 ( 월 )

3주차 16_08_29 ( 월 )

테이블?

데이블은 실제로 데이터들이 저장되는 곳

UNIQUE ?

-제약조건 생성

ex) ALTER TABLE emp2
ADD CONSTRAINT emp2_uk_deptno UNIQUE (deptno);

CHECK ?

컬럼의 값을 범위 제한

PRIMARY KEY

-참조 무결성

COMMIT / ROLLBACK
-변경사항 저장 / 변경사항 취소


1. 급여가 1500 이하인 사원의 사원번호 , 사원 이름 , 급여를 출력














2.사원이름이 scott 인 사원의 사원번호 , 사원이름, 급여를 출력

3.사원번호가 7521 or 7654 or 7844 검색




4.7521 or 7654 or 7844 in 사용하여 작성

where empno in(....);

5. 7521 , 7654 , 7844 도 아닌 사원 출력
-비교 연산자
-not in

where empno != 7521 and ....
where empno not in( ... );

6. 사원들 이름중 J로 시작하는 사람 찾기

캡션 추가

+where ename like '%A%'

1. 상원이 없는 사원을 검색하기위한 sql




2. 입사일을 오름 차순으로 정렬하여 최근 입사한 직원들을 먼저출력하되
사원번호 ,사원명, 직급 입사일 칼럼을 출력

DUAL TABLE
연산의 결과를 한 줄로 얻기 위해서 오라클에서 제공하는 테이블


-사번이 홀수인 사람 검색



to_char ?

select 문을 어떻게 활용 할 것인가 ? (중요한문제)

insert 할떄 주의할점 칼럼의 숫자의 데이터의 자료형




*물통(뜨거운 물) 필요함

2016년 8월 26일 금요일

2주차 금요일 16_08_26

2주차 금요일 16_08_26

2주차 마무리

오늘은 java 책쓰는 마지막 날


예제

Hotel
Reservation Program

7층 호텔 / 10호
[101호][102][103호] ....
[201호][202호][203호].....
[701호][702호][703호].....

1.빈방정보
2.입실
3.퇴실
4.예약자 정보 수정
5.종료

데이터베이스가 2개여야 한다. ( 방 정보 , 손님들 정보)


데이터베이스

1. DDL : 데이터 베이스 객체의 구조를 정의합니다.

CREATE , DROP , ALTER

2. DML : 데이터의 삽입 , 삭제 , 갱신등을 처리

INSERT DELETE UPDATE

3. DCL : 데이터베이스 사용자의 권한을 제어

GRANT 데이터베이스 객체에 권한을 부여 한다.
REVOKE 이미 부여된 데이터베이스 객체 권한을 취소한다.

+ 객체 = 스키마

주말에 할 일
1. 어떠한 서비스를 만들것인가?

2. with or alone ?
-혼자 할 것

*학원에 30분씩 일찍와서 복습 , 예습하기 (1시 30분에 출발하면 됨)

2016년 8월 25일 목요일

데베

package dbConn;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Scanner;

public class ExecuteSQL {

public static void main(String[] args) {

Connection cn = connecting();
Scanner sc = new Scanner(System.in);
Statement st = null;

try {
st = cn.createStatement();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

showData(st);

while(true)
{
int sel = 0;
System.out.println("리스트보기(1), 입력(2), 삭제(3), 수정(4), 종료(5)");
sel = sc.nextInt();
if(sel == 0)
{
break;
}
switch (sel) {
case 1:
showData(st);
break;
case 2:
insertData(st);
break;

case 3:
deleteData(st);
break;
case 4:
editData(st);
break;

default:
break;
}
}
System.out.println("종료되었습니다.");
}

private static void editData(Statement st) {
// TODO Auto-generated method stub

}

private static void deleteData(Statement st) {
// TODO Auto-generated method stub

}

private static void insertData(Statement st) {
// TODO Auto-generated method stub

}

private static void showData(Statement st) {
String sql="";

sql ="select * from member";
try {
ResultSet rs=st.executeQuery(sql);
while(rs.next())
{
int num = rs.getInt(1);
String name = rs.getString("name");
String age = rs.getString(3);
String blood = rs.getString(4);
String height = rs.getString(5);
String job = rs.getString(6);

System.out.println(
"번호 : " +num +
" 이름 : " +name +
" 나이 : " +age +
" 혈액형 : " +blood +
" 키 : "+height +
" 직업 : "+job
);
}
} catch (SQLException e) {

e.printStackTrace();
}
}

private static Connection connecting() {

String url = "jdbc:oracle:thin:@127.0.0.1:1521:xe";
String id="system";
String pwd="oracle";
Connection cn = null;
boolean check=true;

try {
Class.forName("oracle.jdbc.driver.OracleDriver");
check=true;
} catch (ClassNotFoundException e) {
System.out.println("오라클 드라이버 적재를 실패하였습니다.");
e.printStackTrace();
check=false;
}
if(check)
{
System.out.println("오라클 드라이버 적재를 성공하였습니다.");

}

try {
cn = DriverManager.getConnection(url, id, pwd);
check = true;
} catch (SQLException e) {
check = false;
System.out.println("오라클 데이터 베이스 연결을 실패");
e.printStackTrace();
}
if(check)
{
System.out.println("오라클 데이터 베이스 연결를 성공하였습니다.");

}
return cn;
}

}

2주차 16_08_24(목)

2주차 16_08_24(목)

Set 

-HashSet 

-TreeSet
검색과 정렬에 유리

Comparable , Comparator
객체를 정렬하는데 필요한 메서드를 정의한 인터페이스

TreeMap
-이진검색트리처럼 데이터 저장할때 정렬하기 때문에 저장시간이 길다

Properties


  데이터베이스

1단계
C R U D 선택을 하세요
 조건문 선택 다시 조건문으로



이터레이터(Iterator) 인터페이스
- 모든 컬렉션(Collection)으로 부터 정보를 얻을 수 있는 인터페이스 입니다.
- 즉, 자신이 컬렉션(List, Set 등)이라면 이터레이터 인터페이스를 사용할 수 있습니다.
도서관에 비유
- 우리가 책을 보관하는 책장(컬렉션)이 있고, 그 곳에는 책(컬렉션 안에 들어갈 객체)이 있습니다.
- 이 책장은 도서관 사서(이터레이터)가 관리하게 됩니다.
- 사서는 단순 무지한 녀석이라 책장 처음부터 끝까지 한번에 하나씩 밖에 못 가져옵니다.
이터레이터가 가지고 있는 메서드
- boolean hasNext() : 다음 값이 있는지 없는지 확인, 있으면 true를 리턴하고 없으면 false를 리턴 --> if나 while문에서 쓰면 되겠죠?
- E next() : 다음 값을 리턴합니다. 어떤 형태인지 모르기 때문에 리턴 유형을 E로 하겠습니다.
- void remove() : 삭제 하는 메서드


import java.util.*;

public class IteratorTest {
  public static void main(String[] args) {
    Set<String> movie = new HashSet<String>();

    movie.add("대부");
    movie.add("반지의 제왕");
    movie.add("겨울왕국");
    movie.add("다크 나이트");
    movie.add("해리포터");
    movie.add("공공의 적");

    Iterator<String> itr = movie.iterator();
    // 이터레이터 객체 itr에 HashSet객체인 movie안에 있는 값들을 가져온다
    // 모든 컬렉션 안에는 iterator()메서드가 있기 때문에 점찍고 사용하면 movie안에 있는 값들을 가져올 수 있다
    while (itr.hasNext()) { // 값이 나올때까지 while문을 돈다
      String s = itr.next()// 문자열 변수 s에 다음값을 넣는다
      System.out.println(s);
    }
  }
}

*crl + shift + o  import 자동

*제네릭 , 컬렉션은 앞으로 쓸일 이 많으니 꼭 복습할 것.

*집에 가서 java의 신 볼 것

*다른 블로그 보고 배울점 따라하기 

2016년 8월 24일 수요일

16_08_24

16_08_24(수)

제네릭이 뭘까 (범용적인 방식 ? )

편의성 과 안전성

ex) 인터넷 게시판 한 QnA 가 클래스 이다. 그것은 다른사람이 클래스로 정의 했고 , 우리는 그것을 정확하게 알 수 없다. 그것을 우리의 형태로 재정의 하기 위해 제네릭이 필요하다.

제네릭 메소드와 배열

와일드 카드 ?
(실무에서는 별로 쓸일이 없다)

확장성 ( 메서드 수준까지 )

<? extends Fruit>

ex) class name<A<String> , B<Integer>> extends C<D<Double>>
이란 클레스 선언을 할때

와일드 카드는 class name<?> 이런식으로 선언하면 편하지만
가독성이 매우 떨어진다 (어떤 클레스를 상속 받고 사용할지 모름)


컬렉션 프레임워크

List

Set

Map
-키와 값의 쌍으로 이러우진 데이터의 집합

Vector / ArrayList
-둘이 비슷함

크기 번경 x  , 순서가 있음




*https://opentutorials.org/module/516/5400 인스턴스에 대한 설명

*자바에서 인스턴스라는 말이 자주나오는데 그냥 코딩을 하는데 실질적으로 

들어가는 내용이라기보다 전반적으로 알고있어야 하는 부수적인 내용이라고 

생각하고 그냥 나올때마다 아 ~ 인스턴스를 생성하는구나 하고

넘어만 가다가 오늘 아침에 문득 아니근데 인스턴스가 뭔데? 라는 의문이 들어서

검색해 보았다. 

class A {

}

클래스가 있다면 이 클래스를 사용하는 클래스에서는 

A a = new A(); 이런식으로 클래스 선언을 할 것이다. 

바로 이것이 클래스를 인스턴스화 시킨 것이다.

a라는 객체를 사용하기전에 그것이 무엇인지 정의해 놓는 것이다. 이렇게 해야만

실질적으로 정의되어있는 내용을 메모리에 올려서 사용할 수 있기 때문이다.

정리 해보면 A라는 클래스를 사용하려면 A a = new A(); 라고 선언을 하지만

이는 단순히 A클래스를 a객체로 만들어 사용하기 위해서라는 이유 이 외에

메모리를 확보하고 쓸 수 있게 하는 인스턴스화 작업이 밑바탕 되어있는 것이다.

*

2016년 8월 23일 화요일

16_08_23

16_08_23

쓰레드

프로세스 : 쓰레드 = 공장 : 일꾼

멀티쓰레드 장단점

장 : 효율적
단 : 교착상태가 발생할수 있다


Swing 컴포넌트 , AWT

잘 사용하지않음 ..

AWT 가 먼저 나옴

+ 인터페이스의 모든 메소드를 빈상태로 구현해 놓은것이 Adapter 클래스이다.


NetWork

Client / Server

server - based model
-안정적 서비스 제공
-공유 데이터의 관리와 보안이 용이
-서버구축비요과 관리비용이 든다.

p2p 모델
-서버구축 및 운용비용 절감
-자원의 활용 극대화

TCP / UDP

웹에서는 TCP를 주로 씀


부트스트랩 ( 반응형 웹 - 모바일 용)

about 프로젝트

내가 무엇을 만들것인가 ?

가장 무난한게 호텔

최고 난이도 쇼핑몰

+포스 기기(통계페이지)


* 프로젝트에 대해서 생각 할 것.