교육과정컬렉션 프레임워크람다식, enum(이늄)쓰레드(Thread)JDBC, IBATIS(MYBATIS)UML(클래스 다이어그램, 유즈케이스 다이어그램)Network(TCP, UDP, RMI)DesignPattern Servlet Programming (서블릿 프로그래
정의자바의 컬렉션(모음)객체들을 다루기 위해 제공되는 재사용 가능한 클래스또는 인터페이스를 통칭하는 표현. Stack과 Queue는 LinkedList를 이용하여 사용할 수 있다stack 명령1) 자료 입력 : push(저장할 값)2) 자료 출력 : pop() => 자
: 해당 인덱스의 항목을 리스트에서 삭제한다.\- 배열로 구성되어있어서 n번방이 지워지면 앞으로 땡겨져서 전체 삭제가 되지 않는다list에 index 5개가 있어서 for문안에서{0,1,2,3,4} index만큼 돌고 끝나는데 index 2개가 남는다i 0 => {0
특징: 순서(인덱스)가 존재하는 데이터의 집합: 데이터가 중복되어도 저장이 가능하다 (순서가 다르면 중복저장 가능함)Stack, Vector, LinkedList, ArryaList 등정렬과 관련된 interface는 Comparable과 Comparator 이렇게 두
List입력한 데이터의 순서가 있다.중복되는 데이터를 저장할 수 있다.Set입력한 데이터의 순서가 없다.중복되는 데이터를 저장할 수 없다.그래서 있는 데이터를 add하면 false를 반환하고, 데이터는 추가되지않음.Set에 데이터 추가할 때 add()메서드 사용Set은
HashSet은 데이터에 순서가 없으나 (등록되는 순서를 알지 못함.)TreeSet은 '자동정렬' 기능이 들어가 있다.'이진트리' 자료구조 특징 : 검색 속도가 빠르다.TreeSet에 저장된 자료 중 특정한 자료보다 작은 자료를 찾아서 SortedSet으로 반환하는
임의의 길이의 데이터를 고정된 길이의 데이터로 매핑해주는 함수이다.해시함수에 의해 얻어지는 값은 해시값, 해시코드, 해시체크섬 또는 간단하게 해시라고 한다.객체가 서로 같은지를 비교하기 위해 equals()메서드와 hashCode()메서드를 호출한다. (Objcet가
key값과 value값을 한 쌍으로 관리하는 객체key값은 중복을 허용하지 않고 순서가 없다.(Set의 특징)value값은 중복을 허용한다.(List의 특징)자료추가 : put() => 새로운 키값, 새로운 value값자료수정 : put() => 존재하는 키값에 새로운
Properties는 Map보다 축소된 기능의 객체라고 할 수 있다.key와 value값으로 String만 사용setProperty(), getProperty()메서드를 통해서 데이터 출력모든 형태의 객체 데이터를 key와 value값으로 사용put(), get()메서
arguments 의 줄임말: 메서드의 매개변수의 갯수가 실행될때 마다 다를때 사용한다.: 가변형 인수는 메서드 안에서 배열로 처리된다.: 가변형 인수는 한가지 자료형만 사용할 수 있다.
클래스에 사용할 타입을 디잔인(설계)시에 지정하는 것이 아니라 클래스를 사용할 때 타입을 지정한 후 사용하는 기술을 말한다.(1) 컴파일 시 잘못된 타입 사용을 체크하기 때문에 타입 안전한(Type Safty)코딩을 할 수 있다.(2) 불필요한 타입변환(casti
메서드에만 적용제너릭 메서드<T,R>R method(T t) 파라미터 타입과 리턴타입으로 타입 파라미터를 가지는 메서드선언 방법 : 리턴타입 앞에 <> 기호를 추가하고 타입 파라미터를 기술 후 사용함.멀티타입<K,V>을 가지는 제너릭 클래스키와 값 출력
enum type은 상수(Constant)로 사용할 값들을 미리 선언하여사용할 때 사용하는 특별한 데이터 타입이다.JDK1.5부터 지원됨.기존 static final키워드를 이용한 상수선언 방식에서는해당 상수의 값만을 비교!!But enum을 이용하여 상수를 정의하게
프로그램 소스코드 안에 다른 프로그램의 정보를 미리 약속된 형식으로 포함시킨 것.(JDK1.5부터)주석처럼(있는듯 없는듯) 쓰지만 프로그래밍 언어에 영향을 미치지 않으면서다른 프로그램에 유용한 정보를 제공함.1) 표준(내장) 어노테이션: 주로 컴파일러에게 유용한 정보를
1) Reflection은 클래스, 또는 멤버변수, 메서드, 생성자에 대한 정보를가져오거나 수정할 수 있다.2) Reflection API는 java.lang.reflection 패키지와 java.lang.Class를통해서 제공된다.3) java.lang.Class의
제너릭이 사용된 객체를 참조할 때 참조할 객체의 타입을 제한하기 위해 사용된다.<? extends T> => 와일드카드의 상한제한. T와 그 자손들만 가능<? super T> => 와일드카드의 하한제한. T와 그 조상들만 가능<?> => 모든 타입이 가
: 프로세스란 운영체제에서 실행 중인 하나의 프로그램을 의미한다.: 멀티 프로세스(Multi Process)란 두 개 이상의 프로세스가 실행되는 것을 의미함.: 멀티 태스키(Multi Tasking)이란 두 개 이상의 프로세스를 실행하여 일을 처리하는 것을 의미: 스레
익명함수를 생성하기 위한 식 코드가 간편해짐!자바에서는 '매개변수를 가진 코드 블럭' => 런타임시 익명구현객체로 생성(매개변수들...) -> {처리할 코드들;...}=> 람다식으로 변환할 수 있는 인터페이스는 추상메서드가 1개인 인터페이스만 처리 가능 이런 인터페
(1) 함수적 인터페이스1 => 반환값이 없고 매개변수도 없는 추상메서드 선언(2) 함수적 인터페이스2 => 반환값이 없고 매개변수는 있는 추상메서드 선언(3) 함수적 인터페이스3 => 반환값도 있고 매개변수도 있는 추상메서드 선언 ☆위 인터페이스 3개 활용한 메인메
=> 지역변수가 값이 변하지 않아야(final) 참조형 변수로 사용 가능=> 람다식 내부에서 사용되는 지역변수는 모두 final이어야 한다.=> 보통은 final을 붙이지 않으면 컴파일러가 자동으로 붙여준다.=> 단, 지역변수의 갑슬 변경하는 식이 있을 경우에는 자동으
: Thread가 하나뿐인 프로그램을 말한다.: Thread가 2개 이상인 프로그램을 의미한다.Thread Ctrl+F2 누르면 정의class Thread implements Runnable {}Runnable Ctrl+F2 누르면 정의@FunctionalInterfa
: 1~10억까지 합계 구하는 메서드
카운트다운 하는 for문 -> 사용자가 10초동안 입력을 안하면 프로그램을 끝내고 싶은데 쓰레드 1개(단일 쓰레드)로는 불가능하다.T05_ThreadTest 단일쓰레드로 하지못한 카운트다운을 할 수 있다.public static boolean inputcheck
Thread 클래스에는 아래와 같이 우선순위들을 가지고 있다.class Thread implements Runnable { public final static int MIN_PRIORITY = 1; //최소 우선순위 public final static int N
(1) NEW : 스레드가 생성되고 아직 start()가 호출되지 않은 상태(2) RUNNABLE : 실행 중 또는 실행 가능한 상태(3) BLOCKE : 동기화 블럭에 의해서 일시정지된 상태(lock이 풀릴때까지 기다리는 상태)(4) WATTING, TIMED_WAI
데몬 스레드는 다른 일반 스레드(데몬 스레드가 아닌 스레드)의 작업을 돕는보조적인 역할을 수행하는 스레드일반 스레드가 존재할 때만 데몬스레드 존재!!!일반 스레드가 모두 종료되면 데몬 스레드는 자동으로 종료된다.데몬 스레드로 설정하기 위해서는 반드시 실행 전(start
Thread => 실질적 작업단위 (Single Thread & Multi Thread)1) 현재 실행 대기중인 동등한 우선순위 이상의 다른 스레드에게 실행기회를 제공한다.(양보)2) 현재 실행중인 스레드의 상태를 Runnable상태로 바꾼다. : Waiting
Thread의 stop()메서드를 호출하면 쓰레드가 바로 멈춘다. => 이때 사용하던 자원을 정리하지 못하고 바로 프로그램이 종료 => 나중에 실행되는 프로그램에 영향을 줄 수 있음. => 그래서 현재 stop()메서드는 비추천(deprecated)아래 예제 이후에 T
동기화 (Synchronization): 공유자원(객체)를 상대로 순서대로 작업이 이루어지도록 처리하는 방법을 의미한다. 프로세스 내 자원(객체)를 여러개의 스레드가 공유하여 작업을 진행하다 보면 예기치 못한 결과를 초래문제가 발생할 여지가 있을 법한 임계영역에 동기화
T15_SyncThreadTest(1) 공통으로 사용할 데이터 클래스 ShareObject의 객체 sObj 생성(2) 쓰레드 WorkerThread 에 공통으로 사용할 객체 sObj 넘겨줌 방법1> 메서드 자체에서 동기화 처리하기: public synchronized
은행의 입출금을 쓰레드로 처리하는 예제 T16_SyncAccountTest공통으로 사용하는 데이터 클래스 SyncAccount의 객체 sAcc 생성객체 sAcc를 쓰레드 BankThread에 넘겨준다.은행의 입출금을 관리하는 클래스 정의(공유 객체)생성자, get()
Thread 동기화: 여러개의 Thread가 공유하여 작업 진행 ->: 문제가 발생할 여지가 있음 -> 임계 영역: 이 영역을 동기화 처리 문제발생 방지: 과도한 동기화는 프로그램 성능 저하 -> 필요한 영역만 선별적으로 사용T17_LockAccountTest되도록이면
Vector,Hashtable등 예전부터 존재하던 Collection 클래스들은내부에 동기화처리가 되어 있다.그런데, 최근 새로 구성된 Collection들은 동기화 처리가 되어있지 않다.그래서 Collection들을 사용하려면 동기화 처리를 한 후에 사용T18_Syn
동기화 영역에서 사용해야 의미가 있음wait()메서드: 동기화 영역에서 락을 풀고 Wait-Set영역(공유객체별 존재)으로 이동notify() 또는 notifyAll() 메서드: Wait-Set영역에 있는 쓰레드를 깨워서 run(): notify()는 하나, notif
.getAbsolutePath() : 절대적 경로가 존재하지 않으면createNewFile() 사용해서 새로 파일을 만들 수 있음
T02_FileTest => 중간에 20200925 줄부터 보면댐displayfilelist()1) 디렉토리안의 모든 파일 목록을 가져올 때File\[] files = dir.listFiles();2) 하위 디렉토리 정보를 저장한 ArrayList 생성 (File배열의
일차원적인 데이터의 흐름을 의미데이터를 목적지로 입출력 하기 위한 방법자바의 스트림객체를 이용하여 스트림 형식으로 데이터를 읽고쓰기 가능스트림 형식으로 데이터를 읽기 위해 입력스트림(InputStream) 사용스트림 형식으로 데이터를 쓰기 위해 출력스트림(OutputS
: 파일로부터 바이트를 읽을 때 문자 단위 스트림으로 처리해주는 스트림: 파일에 데이터를 쓸 때 문자단위 스트림으로 처리해주는 스트림방법1 : 파일경로를 문자열로 지정하기방법2 : 파일정보를 File 객체를 이용하여 지정하기출력 : System.out.print((ch
입출력의 성능향상을 해서 버퍼를 이용하는 보조스트림 기반(기본)스트림이 있어야 보조스트림 사용 가능BufferedInputStream: Reader스트림에 버퍼기능을 제공하는 보조 스트림, 라인단위 읽기가능BufferedOutputStream: Writer스트림에 버
문자(char)단위로 스트림을 처리하기 위한 스트림을 말한다.Reader는 입력용 문자기반 스트림Writer는 출력용 문자 스트림Reader or Writer가 스트림 이름에 붙어있다면, 문자기반스트림문자기반 스트림은 문서(txt)파일 입출력하기 적합Bufferd~Re
성능향상을 위한 보조스트림FileReader: 파일로부터 바이트를 읽을 때 문자단위 스트림readLine() : return타입 string: 한줄씩 읽을 수 있도록 해주는 readLine을 이용하기 위해 BufferedReader이용T12_BufferdIOTestCo
DataInputStream/ DataOutputStream 은FilterInputStream/FilterOutputStream을 상속하고 있어서 객체 생성시에 InputStream/OutputStream을 매개변수로 인자로 가짐직접적으로 파일을 읽고 쓰는 클래스이 클
프린터 기능 제공 보조 스트림단지 출력 클래스만 존재, 대응하는 입력 클래스는 무존재바로 출력하기 쉽도록 도와주는 메소드들을 많이 제공콘솔창에 출력하기 위해서 써왔던 System.out이 바로 PrintStream모든 자료형 출력 가능, OutputStream의 서브클
InputStreame객체는 파일의 인코딩 방시글 지정 가능형식) new InputStreamReader(바이트기반 스트림 객체, 인코딩 방식);한글 인코딩 방식은 크게 UTF-8 & EUC-KR 두가지원래 한글 윈도우는 CP949방식 사용윈도우 개발한 마이크로소프트에
객체를 데이터 스트림으로 만드는 것객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것직렬화 조건: java.io.Serializable 인터페이스를 상속받은 객체는 직렬화 할 수 있는 기본 조건직렬화 방법: java.io.ObjectOutput
부모객체의 필드값 처리 방법부모클래스가 Serializable 인터페이스를 구현하도록 해야한다.자식클래스에 writeObject()와 readObject()를 이용하여 부모객체의 필드값을 처리할 수 있도록 직접 구현한다. T16_NoneSerializableParen
자바에서 IP주소를 표현할때 사용하는 클래스IP번호와 URL주소를 알아내고 싶을때 사용cmd창 -> ipconfig입력하면 IP번호 확인 가능InetAddress 클래스는 호스트네임을 문자열로 반환하고IP주소를 문자열과 바이트 배열로 반환하는 네 개의 get메서드 제공
TCP/UDP 포트 목록TCP/IP의 전송계층에서 사용되는 프로토콜전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당신뢰성이 요구되는 애플리케이션은 TCP를 사용간단한 데이터를 빠른 속도로 전송(UDP는 비연결지향형이라서) 하고자 하는
User Datagram Protocol비연결지향적이다데이터의 신뢰성을 보장하지 않는다TCP에 비해 전송 속도가 빠르다UDP 데이터그램을 추상화 한 클래스애플리케이션에서 주고받을 데이터와 관련된 클래스데이터를 송신(send)기능과 수신(receive)기능으로 크게 분리
RMI Remote Method Invocation 분산되어 존재하는 객체 간의 메시지 전송(메소드 호출 포함)을 가능하게 하는 프로토콜 RMI 자체는 분산개체 간의 통신을 구현하는 모든 프로토콜을 의미함 RMI 장점 구현하기 쉽다 신뢰성이 보장된다 java 플랫폼
<2020.09.29>고급자바 '6-1.네트워크'하기 전에 진행java database connectedJDBCTest 폴더 만들고 외부 자르 파일 사용 방식폴더 선택 alt+enter -> java build path -> Add_External JARs..선택
디자인 패턴 프로그래밍 형식을 정하는 일종의 약속객체지향프로그래밍 설계를 할 때 자주 발생하는 문제들을 피하기 위해 사용되는 패턴싱글톤 패턴이란?애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고 (static)그 메모리의 인스턴스를 만들어 사용하는
javaproject : 9.iBatisTestsrc : kr.or.ddit.basic >> MemberIbatisTest.javakr.or.ddit.member.vo >> MemberVO.javares :kr.or.ddit.sqlmap >> member.xmlSqlM
2020.10.16 첫번째 시간OSI모형TCP IP
6_1.JDBCTest2_log4j 폴더 -> res (source folder) -> log4j.properties 복사=> Error, stdout 등 설정에 따라 더 추가할 수 있다. (ex. 이메일 전송, 콘솔창 등등)정의Log4J는 JAVA를 위한 신뢰할만한
데이터 값 양쪽으로 태그가 있다.ex. XML (사람표현)XML문서의 단점 : 문서부분(person~)이 byte가 커진다=> 보안하기 위해 ? Json 시작?JavaScript Object Notation요즘 많이 사용하는 문서 표기 방법경량(가벼운)의 DATA-교환
점층적 생성자 패턴, 자바빈즈 패턴, 빌더패턴디자인패턴숙련된 객체지향소프트웨어개발자에 의해 사용되는 베스트 사례모음집소프트웨어 개발 중 직면하게 되는 일반적인 문제들의 해결을 위한 솔루션 모음집오랜 기간 동안 수많은 개발자들에 의해 시도되고 테스트된 솔루션 모음집객체
W3schools.XMLW3schools.DOMorg.w3c.dom Elementorg.w3c.dom interface nodeibatis, 공공데이터 : xml문서xml형식Document Object Model of the pageDOM (문서 개체 모델)은 프로그램
Servlet API DocumentationPackage javax.servlet.httpClass HttpServlet컨터이너(서블릿 엔진)에 의해서 관리되는 자바기바 웹 컴포넌트로서, 동적인 웹컨텐츠 생성을 가능하게 해준다.서블릿을 실행시켜 주는 서블릿엔진, 서블
예제소스에 Forward와 Redirect 사용localhost:9090/14_ServletTest/T02_ServletTest?name=한글=> 주소창을 위사진과 같이 입력하면 한글이 깨져서 나온다.=> server.xml 들어가서 <Connector> 부분에
출처 : Dispatcher-Servletdispatch : 보내다Servlet Container에서 HTTP프로토콜을 통해 들어오는 모든 요청을프레젠테이션 계층의 제일앞에 둬서 중앙집중식으로 처리해주는 프론트 컨트롤러(Front Controller)클라이언트로부터 어
어떠한 정보를 가져와서 조회하기 위해서 사용되는 방식URL에 변수(데이터)를 포함시켜 요청데이터를 Header(헤더)에 포함하여 전송URL에 데이터가 노출되어 보안에 취약전송하는 길이에 제한 있음 (URL길이가 정해져 있음)캐싱 가능데이터를 서버로 제출하여 추가 또는
쿠키 : 정보덩어리 (정보조각)계속 요청이 들어오면 같은 사람인지 다름사람이 요청한지 알 수가 없는데알 수 있는 방법? (쿠키활용?)쿠키를 브라우저(client)에 남겨놓으면 header(set cookie)를 보고 쿠키 만듦쿠키를 읽어서 사용자의 정보에 쉽게 접근할
session을 통해서 사용자(웹브라우저) 별로 구분하여 정보를 관리할 수 있다. sessionID이용정보가 서버에 저장되기 때문에 쿠키를 사용할때보다 보안이 향상HTTP프로토콜을 이용하는 웹 환경에서 상태를 유지하기 위한 기술 공통점: HTTP의 무상태(Statele
참고사이트 Multipart 파일업로드Oreilly의 MultipartRequestcos.jar 활용form에서 보낸 메서드방식 반환 , form에서 method="post" 형식으로 옵션 설정form의 메서드가 post방식인 데이터들은 서버 측과 연결된 OutputS