728x90 반응형 Web/Java27 Java(32) - WebSocket 1. 소켓(Socket) 1) 네트워크에서 동작하는 프로그램의 종착점(endpoint). 2) ip 주소와 port 번호로 이루어짐 3) 서버와 클라이언트가 양방향 통신할수 있게 해주는 소프트웨어 장치 - 둘 다 소켓을 생성하여 연결해줘야 함 2. 소켓 통신 절차 1) 서버에서 서버용 소켓(ServerSocket)을 생성, 클라이언트의 접속 대기함 2) 클라이언트가 소켓(Socket) 생성하여 서버로 연결 요청함 3) 서버가 접속을 허가(accept)함 4) 서버와 클라이언트는 각각 통신을 위한 I/O 스트림 생성함 5) 스트림을 통해 서버와 클라이언트가 통신함(write, read) 6) 클라이언트가 모든 작업을 마친 후 소켓 종료(close)함 7) 서버는 새로운 클라이언트 접속을 위해 대기(acce.. 2022. 2. 9. Java(31) - 멀티스레드2 1. multi-threading 1) 여러 thread가 동시에 수행되는 프로그래밍. 여러 작업이 동시에 실행되는 효과. 2) thread는 각각 자신만의 작업 공간을 가짐 : context 3) 각 thread 사이에는 공유하는 자원이 있을 수 있음 (자바에서는 static instance) 4) 여러 thread가 자원을 공유하여 작업이 수행되는 경우 서로 자원을 차지하려는 race condition이 발생할수 있음. 5) 이렇게 여러 thread가 공유하는 자원 중 경쟁이 발생하는 부분을 critical section 이라함. 6) critical section에 대한 동기화(일종의 순차적 수행)를 구현하지 않으면 오류가 발생할수 있음. 2. Thread Status (스레드 상태) 3. join.. 2022. 1. 28. Java(30) - review4 1. 중첩 클래스(nested class) 1) 클래스안에 또다른 클래스가 정의되는 것. 2) 특정 클래스를 자신의 클래스 내부적인 용도로만 사용. 3) 멤버로 존재하는 Innner 클래스 : 객체를 생성해야만 사용할 수 있는 형태. 4) static Innner 클래스 : Outer 클래스 객체 생성하지 않아도 Innner 클래스 접근 가능 5) 메서드 지역(local)안에 존재하는 Innner 클래스 - 로컬 변수처럼 인식 - 메서드 호출될때 생성되며 메소드가 종료될때 삭제 됨. 6) 익명 클래스 - 이름이 없는 클래스로 단 한번 임시적으로 사용하는 클래스로 유용 - 인터페이스, 클래스 모두 익명 클래스로 객체를 생성할수 있음. - 인터페이스 구현 없이 생성과 동시에 오버라이드 가능 - 익명 클래스 .. 2022. 1. 28. Java(28) - IO입출력 1. 자바의 입출력을 위한 I/O 스트림 1) 입출력 스트림 - 네트워크에서 자료의 흐름이 물의 흐름과 같다는 비유에서 유래됨. - 자바는 다양한 입출력 장치에 독립적으로 일관성있는 입출력을 입출력 스트림을 통해 제공. - 입출력이 구현되는 곳 : 파일 디스크, 키보드, 마우스, 네트워크, 메모리 등 모든 자료가 입력되고 출력되는 곳. 2) 입출력 스트림 구분 - 대상 기준 : 입력 스트림 / 출력 스트림 - 자료의 종류 : 바이트 스트림 / 문자 스트림 - 기능 : 기반 스트림 / 보조 스트림 2. 입력 스트림과 출력 스트림 1) 입력스트림 : 대상으로부터 자료를 읽어들이는 스트림 2) 출력스트림 : 대상으로 자료를 출력하는 스트림 3) 스트림 종류 - 입스 : FileInputStream, FileR.. 2022. 1. 28. Java(27) - 예외처리 1. 오류의 종류 1) 에러(Error) - 의도치 않게 프로그램이 종료되는 것을 에러라 함. - 하드웨어의 잘못된 동작 또는 고장으로 인한 오류(ex-정전, 배드섹터 등) - 에러가 발생하면 프로그램이 비정상 종료가 됨. - 정상 실행 상태로 돌아갈수가 없음. 2) 예외(Exception) - 사용자가 잘못된 조작 또는 개발자의 잘못된 프로그래밍으로 인한 오류를 말함. - 예외가 발생하면 프로그램이 종료됨. - 단, 예외 처리를 추가하면 정상 실행 상태로 되돌릴수가 있음. 2. 프로그램에서의 예외(오류) 1) 컴파일 오류 (compile error, checked exception) - 프로그램 코드 작성 중 발생하는 문법적 오류. - 예외 처리 코드가 없다면 컴파일 예외 발생함. - eclipse, .. 2022. 1. 28. Java(26) - Stream 1. 스트림 의미 1) 데이터 집합체를 반복적으로 처리 2) 스트림을 이용하면 다수의 스레드 코드를 구현하지 않아도 데이터를 병렬로 처리 3) 스트림은 스트림 데이터와 스트림 연산의 개념을 모두 포함. 2. 컬렉션과 스트림 비교 컬렉션 스트림 1) 처리방식 다운로드 스트리밍 2) 저장공간 필요 불필요 3) 반복방식 외부반복 내부반복 4) 코드구현 명령형 선언형 5) 원본데이터 변경 변경하지 않고 소비 6) 연산병렬화 어려움 쉬움 3. 스트림 특징 1) 자료의 대상과 관계없이 동일한 연산을 수행 배열, 컬렉션을 대상으로 연산을 수행함 2) 한번 생성하고 사용한 스트림은 재사용 할 수 없음. 자료에 대한 스트림을 생성하여 연산을 수행하여 스트림은 소모됨. 다른 연산을 수행하기 위해서는 스트림을 다시 생성해야.. 2022. 1. 28. Java(25) - 람다식 1. 프로그래밍 방법론 1) 절차식 프로그래밍 - 순차적인 명령을 수행하고 간단한 분기만 가능 2) 구조적 프로그래밍 - 특정 변수를 묶어 구조화하고 이를 통해 프로그래밍 효율 높임. 3) 객체지향 프로그래밍 - 객체를 기반으로 프로그래밍 되며 클래스, 속성, 기능등의 현실세계 모델을 반영함. 4) 함수형 프로그래밍 - 객체의 형태를 벗어나 함수형을 확장해 함수를 변수처럼 사용 가능. 2. 함수형 프로그래밍과 람다식(Lambda expression) 1) 자바는 OOP : 기능을 수행하기 위해서는 객체를 만들고 그 객체 내부에 멤버 변수를 선언하고 기능을 수행하는 메서드를 구현. 2) 자바 8부터 함수형 프로그래밍 방식을 지원하고 이를 람다식이라 함. - 자바에서 람다식을 수용한 이유 - 코드가 매우 간.. 2022. 1. 28. Java(24) - 내부클래스 1. 내부 클래스란? (inner class) 1) 클래스 내부에 선언한 클래스로 이 클래스를 감싸고 있는 외부 클래스와 밀접한 연관이 있는 경우가 많고, 다른 외부 클래스에서 사용할 일이 거의 없는 경우에 내부 클래스로 선언해서 사용함. 2) = 중첩 클래스라고도 함. 3) 종류 - 인스턴트 내부 클래스 - 정적(static) 내부 클래스 - 지역(local) 내부 클래스 - 익명(anonymous) 내부 클래스 2. 인스턴트 내부 클래스 1) 내부적으로 사용할 클래스를 선언 (private 선언하는 것을 권장) 2) 외부 클래스가 생성된 후 생성됨 (정적 내부 클래스와 다름) 3) private이 아닌 내부 클래스는 다른 외부 클래스에서 생성할수 있음. 4) 내부 클래스의 객체 생성 외부클래스.내부클.. 2022. 1. 28. Java(22) - review3 1. 객체지향 프로그래밍 1) 추상화 (Abstraction)와 일반화 - 어떤 영역에서 필요로 하는 속성이나 기능을 추출하는 작업 - 데이터 구조, 표현방법에 대한 추상화 - 처리 과정에 대한 추상화 - 추상화의 의도는 단순화이며, 일반화의 의도는 공통점을 뽑아내는 것 2) 캡슐화 (Encapsulation) - 데이터를 감싸서 외부에서 사용 가능한 부분만 제공(information hiding) - 사용하는 코드(클라이언트 코드)가 세부적인 사항을 알 필요가 없음. - 단순한 접근을 제공하여 오류가 생길 부분을 감소화 - (private) 나만 볼수 있는 것, 같은 클래스 내부에서만 접근 가능 # (protected) 같은 패키지나 부모와 자식에게만 접근 가능 즉 상속관계의 클래스만 접근 가능 + (.. 2022. 1. 28. Java(21) - 컬렉션프레임워크 1. 자료(Data)와 자료구조(Data Structure) 1) 자료(데이터)를 어디에 어떻게 관리할지... - 검색, 순회(iterate), 저장, 삭제, 변경,..... 2) 데이터의 형태와 쓰임에 가장 적합한 자료구조를 쓰는 것은 매우 중요. 3) 자료의 효율적인 관리는 프로그램의 수행속도와 밀접한 관련이 있음. 2. 자료구조 종류 1) 한줄로 자료를 관리하기 (선형 자료구조) - 배열(Array) - 연결리스트(LinkedList) - 스택(Stack) - 큐(Queue 2) 트리(tree) 3) 그래프(graph) 4) 해싱(hashing) 3. 배열(Array) 구현 1) 동일한 데이터 타입을 순서에 따라 관리하는 자료 구조. 2) 정해진 크기가 있음. 3) 배열의 i번째 요소를 찾는 인덱스.. 2022. 1. 28. 이전 1 2 3 다음 728x90 반응형