2016년 11월 15일 화요일

포트폴리오 작성요령

포트폴리오 작성요령

1. 표지


1-1 포트폴리오
1-2 타이틀
1-3 작성자
1-4 소속(or 작성일)

+배경 Layout /그림 : 음영처리
                   꾸미기 : 원색금지

2. Index


2-1. 사이트 이름 + (사이트 종류 , 사이트 설명(기능에 맞춰서) ,


2-2. 개발환경  (★ 개발도구 이미지 규격화
                         아이콘 + 도구이름 + 버전

2-3 Structure
     (페이즈구성)

2-4 AI ( Spring Framwork Structure )

2-5 로그인 기능

2-6 게시판 기능[질의응답 기능(QnA Board)]

2-7 추가 기능


3. 맺음

이러한 기술을 바탕으로 미래에 ? 서비스나 사이트를 만들어 보겠다 !


-----------------
login/out

board

------

session

crud + paging + search + upload

---------------

responseEntity
ajax

-------------

@Transactional
@Repositony
@controller
@RestController
@Service
@Inject 


2016년 11월 1일 화요일

SPRING 프로젝트 시작
2016-11-1 (화)


ORACLE

ID : projectspr
PW : oracle

2016년 10월 28일 금요일

이클립스(Eclipse)에서 유용한 단축키 일람

----- 소스 네비게이션 -----
Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버를 상세하게 검색하고자 할때
Alt + LeftAlt + Right : 이후이전
Ctrl + O : 해당 소스의 메소드 리스트를 확인하려 할때
F4 : 클래스명을 선택하고 누르면 해당 클래스의 Hierarchy 를 볼 수 있다.

Alt + <-(->) : 이전(다음) 작업 화면
 
----- 문자열 찾기 -----
Ctrl + K : 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다.
Ctrl + Shift + K : 역으로 찾고자 하는 문자열을 찾아감.
Ctrl + J : 입력하면서 찾을 수 있음.
Ctrl + Shift + J : 입력하면서 거꾸로 찾아갈 수 있음.
Ctrl + F : 기본적으로 찾기

----- 소스 편집 -----
Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출 => 입력하는 도중엔 언제라도 강제 호출 가능하다.
F2 : 컴파일 에러의 빨간줄에 커서를 갖져다가 이 키를 누르면 에러의 원인에 대한 힌트를 제공한다.
Ctrl + L : 원하는 소스 라인으로 이동
   로컬 히스토리 기능을 이용하면 이전에 편집했던 내용으로 변환이 가능하다.
Ctrl + Shift + Space : 메소드의 가로안에 커서를 놓고 이 키를 누르면 파라미터 타입 힌트를 볼 수 있다.
Ctrl + D : 한줄 삭제
Ctrl + W : 파일 닫기
Ctrl + I : 들여쓰기 자동 수정
Ctrl + Shift + / : 블록 주석(/* */)
Ctrl + Shift + \ : 블록 주석 제거
Ctrl + / : 여러줄이 한꺼번에 주석처리됨주석 해제하려면 반대로 하면 된다.
Alt + Up(Down) : 위(아래)줄과 바꾸기
Alt + Shift + 방향키 : 블록 선택하기
Ctrl + Shift + Space : 메소드의 파라메터 목록 보기
Ctrl + Shift + O : 자동으로 import 하기
Ctrl + Shift + F4 : 열린 파일 모두 닫기
Ctrl + M : 전체화면 토글
Ctrl + Alt + Up(Down) : 한줄(블럭복사
Ctrl + , or . : 다음 annotation(에러워닝북마크 가능)으로 점프
Ctrl + 1 : 퀵 픽스
F3 : 선언된 변수로 이동, 메소드 정의부로 이동
Ctrl + T : 하이어라키 �b업 창 띄우기(인터페이스 구현 클래스간 이동시 편리)
Ctrl + O : 메소드나 필드 이동하기
Ctrl + F6 : 창간 전환, UltraEdit  Editplus  Ctrl + Tab 과 같은 기능

----- 템플릿 사용 -----
sysout 입력한 후 Ctrl + Space 하면 System.out.println(); 으로 바뀐다.
try 입력한 후 Ctrl + Space 하면 try-catch 문이 완성된다.
for 입력한 후 Ctrl + Space 하면 여러가지 for 문을 완성할 수 있다.
템플릿을 수정하거나 추가하려면 환경설정/자바/편집기/템플릿 에서 할 수 있다.

----- 메소드 쉽게 생성하기 -----
클래스의 멤버를 일단 먼저 생성한다.
override 메소드를 구현하려면, 소스->메소드대체/구현 에서 해당 메소드를 체크한다.
기타 클래스의 멤버가 클래스의 오브젝트라면, 소스->위임메소드 생성에서 메소드를 선택한다.

----- organize import -----
자바파일을 여러개 선택한 후 소스->가져오기 체계화 해주면 모두 적용된다.

----- 소스 코드 형식 및 공통 주석 설정 -----
환경설정 -> 자바 -> 코드 스타일 -> 코드 포멧터 -> 가져오기 -> 프로파일.xml 을 불러다가 쓰면 된다.
또한 다수의 자바파일에 프로파일을 적용하려면 패키지 탐색기에서 패키지를 선택한 후 소스 -> 형식화를 선택하면 된다.
환경설정 -> 자바 -> 코드 스타일 -> 코드 템플리트 -> 가져오기 -> 템플리트.xml 을 불러다가 쓰면 된다.

----- 에디터 변환 -----
에디터가 여러 파일을 열어서 작업중일때 Ctrl + F6 키를 누르면 여러파일명이 나오고 F6키를 계속 누르면 아래로
Ctrl + Shift + F6 키를 누르면 위로 커서가 움직인다.
Ctrl + F7 : 뷰간 전환
Ctrl + F8 : 퍼스펙티브간 전환
F12 : 에디터로 포커스 위치





이클립스 자주쓰는 단축키 -

Ctrl + / : 주석 처리 - 한 라인/블록에 대해 주석 처리 (추가 및 제거)
Ctrl + L : 특정 라인으로 이동
Ctrl + F6 : Editor 창간의 이동
Ctrl + F7 : View 이동 메뉴
Ctrl + F8 : Prespectives 이동 메뉴
Ctrl + D : 한라인 삭제 - 커서가 위치한 라인 전체를 삭제 한다.
Ctrl + J : Incremental find 이클립스 하단 상태 표시줄에 Incremental find 라고 표시되어 한 글자자씩 누를 때 마다 코드내의 일치하는 문자열로 이동 , 다시 Ctrl + J 를 누르면 그 문자열과 일치 하는 부분을 위/아래 방향키로 탐색이 가능하다.
Ctrl + N : 새로운 파일 / 프로젝트 생성
Ctrl + 1 (빠른교정) - 문 맥에 맞게 소스 교정을 도와 준다변수를 선언하지 않고 썼을경우 빨간색 에러 표시되는데 이 단축키를 적용하면 변수에 맞는 선언이 추가 되도록 메뉴가 나타난다.
Ctrl + 0 : 클래스 구조를 트리로 보기
Ctrl + Space :  Cotent Assist - 소스 구문에서 사용 가능한 메소드멤버들의 리스트 메뉴를 보여준다.
Ctrl + PageUp , Ctrl + PageDown : Edit 창 좌우 이동 - Edit 창이 여러개 띄워져 있을경우 Edit 창간의 이동 한다.
Ctrl + Shift + Down : 클래스 내에서 다음 멤버로 이동
Ctrl + Shift + M : 해당 객체의 Import 문을 자동 생성 - import 추가 할 객체에 커서를 위치 시키고 단축키를 누르면 자동적으로 import 문이 생성
Ctrl + Shift + O : import 문을 자동 생성 - 전체 소스 구문에서 import 안된 클래스의 import 문을 생성해 준다.
Ctrl + Shift + G : 해당 메서드 / 필드를 쓰이는 곳을 표시 - View 영역에 Search 탭에 해당 메서드 / 필드를 사용하는 클래스를 표시 해준다.
Alt + Shift + R : Refactoring (이름변경) - Refactoing 으로 전체 소스에서 이름변경에 의한 참조 정보를 변경해 준다.
F3 선언 위치로 이동
F11 : 디버깅 시작
F8 : 디버깅 계속
F6 : 디버깅 한줄씩 실행(step over)
F5 : 디버깅 한줄씩 실행 함수 내부로 들어감 (step into)
F12 : Editor 창으로 이동 (Debugging 등 자동적으로 포커스가 이동 됐을경우 편리)
Alt + Up , Alt + Down : 줄 바꿈 - 해당 라인을 위 / 아래로 이동 시킨다.
Alt + Shift + S : Source Menu - 소스메뉴 (Import 추가 , Comment 추가 , 각종 Generator 메뉴가 나타난다.
Alt + Shift + Up : 블록설정 - 소스 코드를 블록 단위로 설정해 준다.
Alt + Shift + Down : 블록해제 - 소스 코드를 블록 단위로 해제한다.
Alt + Shift + J : 주석 생성 - 해당 메서드/클래스에 대한 주석을 템플릿을 생성해 준다.
sysout + (Ctrl + Space) : System.out.println() 문장 삽입 - 코드 템플릿을 이용해서 소스 구문을 추가
(Windows -> Preferences -> JAVA -> Editor -> Templates 에서 자주 쓰는 소스 구문을 추가시키면 <템플릿 이름> + (Ctrl + Space) 로 소스 문장을 완성 시킬 수 있다.)
Alt + Shift + Z : Surround With 메뉴 - try / catch 문이나 for , do , while 등을 해당 블록에 감싸주는 메뉴가 나타난다.
Ctrl + Shift + F : 코드 포맷팅 - 코드 내용을 문법 템플릿에 맞게 포맷팅(들여쓰기해준다.
Ctrl + Alt + Down한줄 복사후 아래에 복사 넣기 - Copy&Paste 대체하는 단축키커서가 위치한 라인을 복사해 밑줄에 생성해 준다.
Ctrl + Shift +X : 대문자로 변환
Ctrl + Shift + Y : 소문자로 변환
Ctrl + Shift + L : 모든 단축키의 내용을 표시해준다.
Ctrl + Shift + B : 현재 커서 라인에 Break point 설정
Ctrl + Shift + T : 클래스 찾기

2016년 10월 26일 수요일

AJAX란 ?

1.AJAX란 무엇인가?
  1. AJAX는 Asynchronos Javascript And XML이다.
    쉽게 말하면, 자바스크립트를 통해서 서버에 데이터를 요청하는 것이다. HTML form 태그가 아니라 자바스크립트를 통해서! 따라서 우리는 서버에서 로딩된 데이터를 페이지에 보여주기 위해 새로운 HTML페이지로 갈 필요도 없고 '새로고침'을 할 필요가 없는 것이다. 부분 부분만 로딩되므로 속도가 빠르다.
      1. Asynchronos? 
        1. 해석하면 '비동기적'이다.
        2. '비동기적'이라는 것은, 클라이언트에서 서버에 요청을 보낼 때 요청을 보내놓고 프로그램은 계속 돌아간다는 의미이다. 즉, 먼저 요청한 것에 대한 콜백1 함수가 먼저 실행되지 않는다는 것이다.
      2. Javascript?
        1. 자바스크립트는 웹 브라우저에 대한 스크립트 언어로 만들어진 언어이다. 웹 브라우저에서 출발했기 때문에 본래 서버와 소통하는 기능은 없었으나 AJAX는 가능하다.
      3. .XML? 
        1. XML은 데이터 형식의 일종이다.
        2. XML은 'Extensible Markup Language'의 준말이다. 즉 확장가능한 '표시' 언어 라는 것이다.
          1. 그렇다면 markup language는 무엇인가? 이것은 데이터에 태그로 항목 표시를 해준다는 것이다. HTML도 마크업 랭귀지의 일종이다.
          2. 만약 사람의 키, 나이 등을 표현하고 싶다면 XML에서는
            1. <person>
            2. <height></height><age></age></person>
            3. 이런식으로 작성할 것이다.
    1. 웹 서버 
      1. AJAX는 웹 서버가 있어야만 동작하므로, 그저 HTML페이지처럼 브라우저만 있는다고 돌아가는것이 아니다.
      2. 따라서 로컬에서는 Node.js를 설치해서 연습해보는 방식이 좋을 것이다.
      3. c9.io 같은 웹 프레임워크 사이트에서 express등으로 쉽게 서버를 구현해주니 그것으로 해도 편할것이다.
    2. AJAX의 본래 명칭
      1. AJAX의 본래 명칭은 XHR(XML Http Request)이다. 즉 HTTP2 request를 서버에 보낸다는 것이다.
    3. JSON
      1. JSON도 일종의 데이터 형태이다. XML은 자바스크립트에서 사용하기 불편하기 때문에 자바스크립트로 서버에 요청을 보낼때에는 주로 JSON을 많이 쓴다.
      2. JSON은 자바스크립트 객체, 또는 배열, 또는 둘 다를 이용해 표현된다.
    4. AJAX 4가지 과정
      1. XMLHTTP request object를 만든다.
        1. request를 보낼 준비를 브라우저에게 시키는 과정이다. 
        2. 이것을 위해서 필요한 method를 갖춘 object가 필요하다.
      2. callback 함수를 만든다.
        1. 서버에서 response가 왔을 때 실행시키는 함수이다
        2. html 페이지를 업데이트한다.
      3. Open a request
        1. 여기서 브라우저에게 두 가지 정보를 넘긴다.
          1. 브라우저가 request를 보내기 위해 사용할 method(ex:post)
          2. 그리고 request가 갈 URL
      4. send the request

    5.  코드 예시


  1. AJAX는 XHR객체를 형성하고 이 객체의 콜백을 만들고, 그리고 html메소드와 url을 결정한 뒤 XHR객체의 메소드로 정보를 보내는 방식이다.
    var xhr= new XMLHttpRequest();
    로 시작한다.
    callback function을 만드는 것이 가장 복잡한 부분이다.  이것이 ajax의 핵이다.  이 함수는 browser response를 얻었을 때 작동하는 함수이다. *만약 당신이 여러 ajax request를 날렸다면, 어떤 것이 먼저 돌아올지 알 수 없다. 따라서 어떤 callback이 먼저 실행될지 알 수 없음.
     AJAX에서 event는 무엇일까? user가 form을 제출하는 것은 일종의 event이다. 이 form이 제대로 입력되었는지를 check하는것은 이 event에 대응되는 프로그램이다. AJAX에 어떠한 변화가 일어났을 때, 이에 대응해서 일어나는 프로그램이 바로 onreadystatechange이다.(callback function을 포함하고 있다고 생각하면 된다.) 이벤트는 AJAX Request에 어떠한 변화라도 있으면 작동된다.

    XHR object는 response가 돌아왔는지 아닌지를 추적하는 property를 가지고있다. 이 property가 바로 readyState 이다. 만약 이 property의 숫자가 4면 response가 돌아왔다는 것이다.

    xhr. onreadystatechange = function(){
     if(xhr.readyState===4){

    document.getElementById(‘ajax’).innerHTML= xhr.responseText;(/response이다.)

         }
    }
    xhr.open(‘GET’,”sidebar.html”);  html메소드와 URL을 보낸다.
    open함수는 준비를 시키는것이지 보내는 것은 아니다.
    xhr.send(); 

2016년 10월 25일 화요일

에러

에러

No mapping found for HTTP request with URI [/replies] in DispatcherServlet with name 'appServlet'

- URI[/replies] 가 잘못 설정 되었다. URI를 다시 설정해서 고쳤슴

웹 페이지에 계획한 것

웹 페이지에 계획한 것


----할 일----

-한국인 , 외국인 전용 번역

-환률 and 다른사이트 연결

+중고 물품 판매

-유튜브

-송금

-관련 카페를 리스트로 보여주기

-소모임

-접속 위치 확인

-검색기능 ( 제목 , 내용 )

-인기글

--------한 일------

-지도 O

-서블릿 mybtis 사용 O

-개인정보 변경 O
update

-게시판 이용 , 댓글 O

-공지사항 O

2016년 10월 20일 목요일

SPRING 컨피그레이션

SPRING 컨피그레이션

------ 필수 세팅 -------

1. WAS(Tomcat)

2. project (legacy - mvc project )

3. pom.xml

4. web.xml

5. jre(1.8 se)

6.DB선택에 따른 lib 설정

7. Servlet - context.xml

8. root-context.xml

9. Mybatis.xml

------ 필수 세팅 -------




2016년 10월 4일 화요일

프로젝트 스타트

프로젝트 스타트  16.10.5 ( 수 ) ~ 10.16 ( 일 )


1.DB
a. 이름 : 테이블명의 시작 tbl_board
   시퀀스의 시작 seq_pid

b. 칼럼 : pk_pid
          fk_writer  <->  pk_rid

c.  접속정보 <project/mvc2jsp>
drop 후 create

2. 자료값 / 클래스 / 파일명

a.이름 : Camel 표기법
b.컨트롤러 등 대부분 full name 추천
c.주석처리 연습

3.프로젝트 명
jspServletKWY


+템플레이트 or 부트스트렙 둘다 가능

2016년 9월 30일 금요일

Bootstrap


http://www.w3schools.com/bootstrap/default.asp


과제 화요일 수업 시작 전까지

2016년 9월 16일 금요일

공부란 무엇인가?

운동선수가 외국 가서 컴퓨터 공부해서 장학생으로 석사하고 미국에서 일하고 등등..

이 사람이 보는 '공부란 무엇인가'에 대한 짧은 글입니다.

관심있으신 분들은 한 번 읽어보세요. 재미 있습니다. 주소는 http://indy.peshare.com/study/study_is.jsp



적지 않은 수의 학생들이 수업 내용을 다 이해하지 못한 상태로 수업이 끝나버립니다. 이어지는 다른 과목 수업 시간들에도 같은 현상이 발생합니다. 이런 시간이 반복되면 학생들은 의욕을 상실합니다. 수준별 수업이나 학원에 가면 처음에는 자신의 수준에 맞으니 잘 합니다. 그러나 그 날 수업 내용을 그 날에 끝내지 못하니, 점점 이해할 수가 없고 곧 의욕을 상실하게 됩니다.

아이디어는 간단합니다. 부끄러워도 모르면 선생님에게 물어 보고, 친구에게도 물어서 ‘아는 상태’로 만들어야 합니다. 그 날 해야 할 것을 다음 날로 미루다가 쌓여 한 달이 되면 결국 스스로 감당할 수 없는 수준에 이릅니다. 이런 방식으로 시간이 지나면, 수업 시간에 눈을 뜨고 선생님을 보고 있어도 아무 생각을 하지 않는 상태가 됩니다. 이런 상황이 더 반복되면 자신감을 잃고 다른 사람들이 하는 것을 생각 없이 쫓아가기만 합니다. 많은 사람들이 하면 그게 맞다하며 자신을 합리화시키는 사람들도 등장합니다. 스스로 생각하는 능력을 잃어가고 있는 상황에서 선생님이 이 문제집 풀어라 저 문제집 풀어라 하게 되면, 암기하고 문제집 푸는 것으로 공부를 다 한 것으로 생각하게 됩니다. 그러나 여전히 모르던 것을 계속 모르는 상태로 남겨둔 상태인데도 무엇을 잘못하고 있는지 모릅니다.

참 충격적인 사실은 많은 학생들이 수업 내용이 어려워 이해하지 못해야 정상이라고 믿는다는 점입니다. 고등학교 학생들 80% 이상이 아마 이런 상태일겁니다. 고3 수준의 내용을 초등학교 3학년 아이들도 알 수 있도록 쉽게 가르치면 고등학생들은 오히려 받아들이기 힘들어 합니다. 너무 쉬워 이상하다고 합니다. 너무 어려워 이해하지 못하는 것이 있어야 한다고 합니다. 이미 세뇌되어 있는 것이죠. 학교에서 또는 학원에서 이미 TOEFL과 TEPS를 공부했다면서 '이건 너무 쉽다'고 합니다. 그런데, 미국의 초등학교 5학년 수준의 글도 쓰지 못합니다. TOEFL은 대학생 수준의 글입니다. 초등학생이나 중학생 때 TOEFL 또는 TEPS를 공부했다면, 그때 이미 수능 만점 수준을 넘어섰어야 합니다. 그러나 실제는 겉멋만 들어있는 학생들이 대부분입니다.

학교가 학생을 좀비로 만들고 있고, 학원이 학생을 좀비로 만들고 있습니다. 심지어 부모가 자식을 '스스로 판단과 행동을 못하는 존재'로 만드는 경우도 적지 않습니다. 이런 환경에서는 차라리 문제 학생 또는 반항아가 되는 것이 더 나을 수 있습니다. 아마 반항아들은 세월호 사건 때 모두 무사했겠죠?

자퇴생(or 퇴학생), 부모와 논쟁하는 학생, 공부하려 해도 아는 것이 너무 없어 어떻게 해야 할지 모르는 학생, 학교에 적응하지 못한 학생들은 인디에 오면 100% 급격한 변화를 일으킵니다. 이 학생들의 공통점은 자기 생각을 갖고 있다는 점입니다.

Benjamin Bloom
(February 21, 1913 – September 13, 1999)
지난 60년 동안 전 세계에 가장 큰 영향을 끼친 교육학자중 한 사람입니다.
한국 중고등학교의 경우, 모든 시험 문제는 Dr. Bloom의 이론에 맞추어 문제를 출제하고 있습니다. 심지어 각각의 질문이 이 사람의 이론에서 어느 부분에 해당하며, 이런 유형은 몇 개의 문항을 출제해야 하는지를 '특별한 계산기'를 이용해 계산까지 합니다. 처음 접하는 정보입니까? 놀랍죠?

Dr. Bloom은 미국 Pennsylvania에서 태어나 Pennsylvania State University에서 대학교와 대학원 석사 과정을 공부하고, the University of Chicago현직 교수들을 포함해 2016년 현재까지 89명의 노벨상을 배출해낸 학교입니다.에서 박사학위를 받았습니다. 졸업 후 교육학과에서 교수로 재직하며 미국뿐만 아니라 이스라엘을 포함해 많은 나라에 educational adviser로 일했습니다. '완전학습 이론' '교육목표 분류학'' 으로 유명합니다. 사실, 이 분이 이런 연구들을 통해 강조했던 것 중에 ‘빨리 하는 것이 중요한 것이 아니라, 깊이 있고 자세히 아는 것(mastery)이 중요하다’는 것도 있었습니다.


오른쪽 그림, Bloom의 분류학을 조금 살펴봅시다.

이 디자인이 만들어질 때는 전 세계에 이렇게 퍼질 줄은 몰랐다고 합니다. 어쨌든 처음 발표되고 60년이 지났기 때문에 요즘 환경에 다소 맞지 않아, 최근 들어 Dr. Bloom의 제자가 중심이 되어 원래의 디자인을 약간 수정하였습니다. 그러나 기본 아이디어가 변한 것은 아닙니다.

제 의견을 넣어 간단히 설명하겠습니다.

학생들이 무언가를 배울 때에 기억 이해 응용(or 적용) 분석 평가 창조 순서대로 배운다고 합니다. 조금 생각해보면 이 주장은 정확하지 않습니다. 사람들이 이런 단순한 순서대로 생각한다는 것이 옳지 않습니다. 전화번호 정도야 이해함 없이 기억할 수 있습니다. 하지만 조금 복잡한 것들은 제대로 이해하지 못하면 기억하기가 힘듭니다. 제대로 이해하지 못한 기억은 옳은 지식이 아니기 때문에 생활에 적용하는 것도 불가능합니다. 저는 '이해해서 기억해야 한다'고 봅니다. 그리고 배운 지식을 생활 속에 응용해 내기 위해서는 분석, 평가, 창조가 선행되어야 하는 경우도 많습니다. 심지어 이해 단계에서 분석, 평가, 창조의 생각이 더해져야 하는 경우도 많습니다. 그래서 학생의 인지 과정을 Dr. Bloom처럼 단계화해서 접근하는 것은 문제점이 있습니다.

정리하면, 공부란? 이해기억한 것을 생활 속에 써먹을 수 있는 수준으로 지식을 익히는 것입니다. 그리고 이해 과정에서 꼭 이것저것 따져보아야 합니다. 이것저것 따져보는 것을 Dr. Bloom은 분석, 평가, 창조라는 고급스런 표현을 사용하였습니다.

제대로 이해하고 나면 기억도 쉬워집니다. 제대로 알기에 응용하는 것도 이제 한결 쉬워집니다. 그리고 공부할 때 꼭 따져봐야 합니다!

“A little learning is a dangerous thing.” - Alexander Pope


상식(common sense)
한국은 초등학교부터 중학교까지 총 9년이 의무교육 기간입니다. 그러나 고등학교를 졸업하지 못하면 현역으로 군대도 갈 수 없도록 되어 있습니다. 누구나 고등학교 졸업 수준은 되어야 한국 사회에서 생존할 수 있다고 보는 겁니다. 고등학교까지의 교육과정도 똑같은 아이디어에서 만들어졌습니다. 다른 말로, 고등학교까지 배우는 모든 것은 한국에서 생존하기 위한 상식입니다. 상식을 배우는데 어렵다고 불평하는 것은 좋은 태도가 아닙니다. 세상은 이미 많이 변했고, 생존을 위해 꼭 필요합니다. 그리고 깊이 있는 공부는 시작도 안했습니다. 자신의 기대 수준을 높이기 바랍니다. ‘100점은 아무 것도 아니다’하면서. 뭐, 상식이니까요.

참고로, 대학교에서도 기초지식만 배웁니다. 해당학문의 폭과 깊이가 너무 넓고 깊다보니 다 가르칠 수 없어 기초만 가르칩니다. 기초를 배웠으니 실제 사회에서 필요로 하는 것은 응용해서 하라는 뜻입니다. 대학생인데도 외우기만 하고 ‘공부 다 했다’하는 사람들이 있던데 아직 공부가 무엇인지 모르는 사람들입니다.


의사고시
제 판단에, 대한민국에서 제일 쉬운 국가시험은 ‘의사고시'입니다. 100명 시험 치면 거의 100명이 합격합니다. 실제 매년 의사고시에 100% 합격하는 대학들이 여러 개이고, 다른 대학들도 거의 100% 합격합니다. 이 보다 더 쉬운 시험이 어디에 있겠습니까? 놀라운 정보이죠? 의과대학에 들어가기만 하면 다 의사가 된다는 뜻입니다. 그럼, 의과대학에 들어가는 것은 어렵습니까?

매년 의과대학 정원이 약 2,500명 정도이며, 여기에 치과대학, 한의학까지 더하면 정원이 훨씬 더 늘어납니다. 아마 3,500명은 될 것 같습니다. 적은 수가 아닙니다. 대학 가려고 준비한다고 말하는 사람들은 자신의 기대를 높여서 이 3,500명에는 들어야합니다. 성적이 좋은 고등학생들이 다 의대에만 가는 것이 아닙니다. 법대에도 가고, 공대도 가고 경영대도 갑니다. 서울대는 매년 정원이 6,000명이 넘고, 연세대와 고려대도 5,000명이 넘습니다. 제대로 된 방법으로 공부 조금만 하면 대한민국에서 매년 상위 2만명 안에 드는 것은 절대 어렵지 않습니다. 자신의 기대를 높이세요.


운동선수가 외국 가서 컴퓨터 공부해서 장학생으로 석사하고 미국에서 일하고 등등..

이 사람이 보는 '공부란 무엇인가'에 대한 짧은 글입니다.

관심있으신 분들은 한 번 읽어보세요. 재미 있습니다. 주소는 http://indy.peshare.com/study/study_is.jsp

2016년 9월 8일 목요일

4주차 웹 개발 16_09_08 ( 목 )


ctl + shift + F

자동 정렬

서블릿 어노테이션 방식


2016년 9월 7일 수요일

4주차 jQuery 16_09_07 ( 수 )


  • jQuery( selector, [context] )
  • jQuery( element )

selector = #id,class
[context]: 원하는 값(내꺼) 
element :  tagname , attribute
(node) : form - action 
                     method 
                     enctype 




* java로 야구게임 절반 완성

2016년 9월 6일 화요일

4주차 DOM 16_09_06 ( 화 )

4주차 DOM 16_09_06 ( 화 )

location.href = 'http://egoing.net';



https://opentutorials.org/course/1375/6862 생활코딩  클라이언트 java script 웹브라우저 자바스크립트




html 로 만들기 9/10 (일) 까지

2016년 9월 5일 월요일

4주차 JavaScript 16_09_05 ( 월 )

4주차 JavaScript 16_09_05 ( 월 )

JavaScript 의 변수는

Prompt() 함수

ex)
<script>

var input = prompt('당신의 이름은?','홍길동');
alert(input);

</script> 

배열

var array2=[12,'string',false,function(){} , array1 ];


function 
-내장함수 학습


객체

객체 지향 프로그래밍
-프로토 타입 , 상속 , 캡슐화 , JSON

*)야구 게임을 자바 스크립트로 변환  ( 추석 과제)

2016년 9월 2일 금요일

3주차 HTML_2 16_09_02( 금 )

3주차 HTML_2  16_09_02( 금 )


중요한건 테이블과 폼

HTML 5

-HTML5의 정의
HTML의 기본 기능을 넘어 다양한 콘텐츠와 어플리케이션을 브라우저에 표현하고 실행하고있는 언어
+ 반응형 웹 때문


CSS를 사용하는 3가지 방법

외부 스타일 시트
내부 스타일 시트
HTML태그내에 스타일 지정

css라는 확장자를 가진 스타일 시트 파일을 만들고 이 파일을 HTML문서에 연결하여 사용하는 방법.


선택자 속성 속성값


오늘 HTML 끝

이제 다음주 부터는 java script


* 추석때 프로젝트에 대한 생각 구체화
<어떤 서비스를 만들것이고 , 구조 , 10 page>

2016년 9월 1일 목요일

서로 대화하는것에 대하여

 오늘 나보다 같은 분야에서 사회적으로 성공했고 나이가 많이신분하고 둘이 얘기 할 기회가 있었다. 평소에 그분 강의를 들어서 굉장히 열정적인분이고 교육에 대한 가치관이 있어서 언젠가 같이 얘기하면 서로 말도 잘통하고 배울점도 많을거라 생각했다.
 하지만 서로 말하다보니 똑같은 문제에 대해서도 서로 생각하는방법이 너무 달랐던겄 같다. 서로 몇가지 주제에 대해서 얘기했는데 서로가 갖고있는 생각에 완고해서 재대로된 대화가 안됬던것 같다. 대화를 하다보니 다른 사람이 나를 이렇게 보지 않을까? 라는 생각을 하게 되었다.이때 느낀점이 어떤사람하고 대화를 할때 내 의견을 남한태 강요를 하면 안된다는걸 느꼈고 남의 의견에 좀더 수용적인 태도로 대화를 해야겠다고 느껐다. 기본적이지만 반드시 필요하다고 생각한다

3주차 16_09_01 ( 목 )

3주차 HTML 16_09_01 ( 목 )


<title> - 문서 상단의 제목 설정
<META> - 문서 정보 설정
<SCRIPT> - javascript 언어 등을 사용한 다양한 프로그램이 위치하는 공간

<!-- 여기에 주석 내용이 옵니다 -->

물리적 태그

<b>

링크(Link)

테이블 (table)
-굉장히 중요함


프레임(frame)
-프레임은 하나의 웹 브라우저 화면에 여러개의 HTML 문서를 표시할때 사용합니다.

리스트(List) 태그

HTML 리스트(list)의 type 속성


* 입력양식(form)
입력양식은 홈페이지에서 사용자에게 정보를 받을떄 사용됩니다.

http://www.nextree.co.kr/p8428/


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;
}

}