국비지원학원/Java 36

65일차

*Java SE 마무리 무엇을 만들수 있나요?->DeskTop환경에서 동작하는 프로그램(Apllication)을 만들 수 있습니다. 만든 메모장도, 도시락주문창도, 채팅창도 IO,Thread,Network,JDBC를 사용한 프로그램 (웹은 자바EE) (백신프로그램을 처음만든게 안철수.........=>알약(서버시그니처 프로그램으로 서버의 리스트를 찍고 불러오는게 update그 리스트를 토대로 비교) SE를 잊지 않기 위해 하는 프로젝트! 내가 뭐를 잘하고 뭐를 못하는지 뭐를 얼마나 잘 알고있나 체크리스트를 만들어 뭘더 공부해야하는지 찾는다 -기본문법/변수/method/class/OOP개념/class형상/Array/자주사용class/JCF/Generic/JFC/Event/Exception/IO stream..

64일차

2차 프로젝트 2019-01-22~2019-02-? 1. 아이템 선정 : 2019-01-22 2. 문서작성 : 일정계획, 요구사항 난이도 : 상(DB작업이 하나 이상이거나, 제어문이 하나 이상이거나, 연산이 복잡한 경우), 중(DB작업이 하나로 종료, 제어문이 하나인경우,연산간단한경우(1+1,1*1), 하(디자인만 들어가면) ( 분석 - 요구사항정의서(RFP) 설계 - UI설계서, 개발표준 정의서, ERD, 테이블정의서=> 테이블생성,가데이터입력 Class Diagram 개발 - 단위테스트 체크리스트, 테스트 - 통합테스트 시나리오명세서) 3. 개발 : 코딩 중간 점검 4. 배포/발표 : Runnable Jar

59일차~63일차

프로젝트 순서 -아이템 선정 -개발 범위 선정(RFP)(scope&boundary)★ -화면 디자인(UI설계서or스토리보드) -DB설계(table,constraint...) +ERD(논리) ->물리모델로 만들기위해 테이블설계서->물리모델->가데이터 추가★ -우리가 지금 만드는건 application인데, 제약사항 다 써도 됨! -DBA가 만듦 -class 설계(class daigram, 유스쿼스? daigram...등)★ -개발(단위테스트_기능) -통합(통합테스트_동작흐름) -사용설명서(기능설명서) -배포(서버에 올림) -안정화 -data양이 작아 문제를 100%잡을 수 없다 -서비스(범위에 따라 다름) -SM유지보수(계속~~~차세대나 고도화로 업글하기까지) ★(검사) (시퀀스도 함수도 프로시져도 다써볼..

58일차

*Network로 파일전송(c/s programing:Network로 file 전송) 파일을 보내려면 어떻게 해야할까 ? a.jpg파일을 보내려면 소켓과 서버 소켓을 열어 연결을 하면 (파일은 이진수로 이루어져있음) accept이 불려지게 되고 sokect이 튀어나온다(이때의 소켓은 클라이언트 소켓과 같다) 파일은 한번에 주르륵 보낼수 없어 먼저 보내고 읽고 보내는데, 파일의 이름을 먼저 보내야 한다.(파일명은 중요한게 아니지만 확장자는 중요하다.) JPG파일과 PNG파일이 읽어들일떄 다다른방법을 쓴다는 말이다..(확장자가 다르면 읽혀지지 않는다)_실행되는 코드가 다름 1. 파일명 전송(getOutputStream-DataOutputStream) 서버쪽에서 getInputStream-DataInputSt..

55~57일차

*JDBC -PreparedStatement의 사용 *Bind 변수 ?=>값과 묶여지는 변수 테이블명과 컬럼명은 bind 변수로 처리할수 없다. .append() 로 변수의 값을 직접할당하여 사용하게 됨. StringBuilder sb=new StringBuilder(); sb.append("select 컬럼명,").append(변수명/*컬럼명을 가진 변수명*/).append(" ^from..."); pstmt=con.prepareStatement(sb.toString()) ; *Procedure 쿼리문을 제어구조(언어적인 요소:상황마다 다른코드 /동적코드)를 가지면서 저장성있게 사용할 때. //자바의 thin드라이버에서는 만들 수 없다. create or replace procedure 프로시저명(변수..

54일차

어제 하던 클래스 내용 채워 넣기 *PreparedStatement============== Singleton Pattern CLOB (Character Large Object): 4GB의 문자를 저장할 수 있음 -> 내용은 내일 ResultSetMetaData like쓸 때 : 값에 대한 일부분만 알아도 검색 (한글자: _ , 여러글자 : %, 주로 %를 사용) like 사용시 %와 bind변수가 함께 사용되는 bind변수를 인식하지 못하는 문제가 발생 %를 일반문자열로 만들어서 ||(or)로 붙여줌 (Framework쓸 때도 같음) 예) like %?% (x) -> like '%'||?||'%' *Design Pattern 이미 만들어진 프로젝트를 분석하여 공통코드를 몇 가지 얻어낸 것 대표) nvc..

53일차

*Statement Statement : 쿼리문을 모른다.(쿼리문이 실행될때 쿼리문을 알게된다.) 실행할 때마다 쿼리문이 매번 생성되어 실행된다. bind변수 x SQL Injection이 발생할 수 있다. (매년 거의 1위하는 공격) 항상느린것은 아니고, 쿼리문이 한번만(적은 횟수로) 실행될때 얘가 더빨라진다. 총한번을 쏘기 위해 다 하나하나 조립해 쏘는거고 ↑ 공통 : 자바코드에서 쿼리문 작성 에는 ;(세미콜론) 을 넣지 않는다! 넣으면 Error PreparedStatement : 쿼리문을 안다.(객체가 얻어질 때 부터) 쿼리문은 미리 생성되어있고, 값만 넣어서 실행한다. bind변수 존재 SQL Injection이 발생할 수 없다. 쿼리문이 반복실행 될때 속도가 빠르다. 탄창만 넣어서 쏘는것으로 ..

51~52일차

*채팅(여러사람이 동시에 메세지를 주고 받을 수 있는) 서버 서버소켓을 열고 accept로 소켓을 받아와 multichatserverhelper에서 inputstream(계속 받아야 함으로 무한루프(쓰레드)) outputStream열어 리스트를 구성하여 다른소켓이 연결되면 똑같이 소켓받고,인풋아웃풋연결. 클라이언트 인풋(무한루프) 아웃풋스트림 서버에 접속하여 Stream을 연결하고, 사용자의 동작이있을때 메세지를 서버로 보내고, 서버에서 출력되는 메세지를 읽어들인다. 클라이언트도 자기나름의 소켓을 연다.(몇번이 열리는지 아무도 모른다.) port를 열고, 모든소켓을 받는다. 소켓에서 Stream얻기 모든 소켓에서 입력되는 메세지를 모든 소켓에 출력 클라이언트 1대1은 내창에 올리고 상대방에게 보냈는데, ..

47일차~50일차

*네트워크(24일,26일) java.net package에서 관련클래스 제공 정의 : 다른컴퓨터와 정보를 주고 받기 위해 생성하고 연결하여 사용하는 객체들. =>Socket(TCP),SercerSocket(TCP),DatagramPacket(UDP-검증안하고),DatagramSocket(UDP-검증안하고) InetAddress : 접속자의 정보얻을때 (ip), URLEncoder,URLDecoder(URL팀버너스리) : 문자열변환 ex)비대면 : id,password / 생체정보 연결만 수행한다. 데이터를 주고 받는건 Stream을 가지고 처리.(네트웍에 Stream을 푹) 입력의 근원과 JVM 출력의 목적지~~다시한번 봄(네트워크가 Stream을 가지고 사용하기 때문에 알고있어야 한다.) 네트워크의 s..

44~46일차

*IO Stream(Input/Output Stream) 반환형 boolean 이면 True, 아니면 false 숨김 파일인지? (보안상 건들이지 못하게 숨긴다) file.isHidden() =>반환형 boolean 이면 True, 아니면 false 폴더내에 모든 폴더나 파일을 얻기 file.listFiles() =>반환형 File[] 배열로나와 for로 얻을 수 있다. 파일 삭제 file.delete() =>반환형 boolean 잘지워지면 True, 아니면 false 디렉토리생성 file.mkdir() =>반환형 boolean 이면 True, 아니면 false //root부터 생성하는 디렉토리는 생성불가.c:/dev만들수 없었었다..(지금은같음) mkdirs가 붙어도 지금은 차이가 없지만, 어느 경로의..