분류 전체보기 474

[JAVA] 컬렉션 프레임워크 개념(List, Set, Map)

1. 자바 컬렉션 프레임 워크란 - 자바에서 컬렉션 프레임워크(Collection Framwork)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합니다. ​ - 쉽게말해, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 일종의 인터페이스로 볼 수 있습니다. ​ 2. 컬렉션 프레임워크 주요 인터페이스 컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 핵심이 되는 주요 인터페이스를 정의하고 있습니다. 1. List 인터페이스 2. Set 인터페이스 3. Map 인터페이스 ​ 구조상의 차이로 List와 Set / Map을 별도로 정의하긴 합니다. 그림으로 그 차이를 보면 이렇습니다. ​ 3. 주요 인터페이..

Java/Java 문법 2021.04.28

[TCP/IP] 6장. 멀티 스레드

1. 스레드 기초 1) 소켓 응용 프로그램과 멀티 스레드 ● TCP 서버 - 클라이언트의 문제점 클라이언트 2개 이상이 서버에 접속할 수는 있으나, "서버가 동시에 클라이언트 2개 이상에 서비스할 수 없다." 서버와 크라이언트의 send(), recv()함수의 호출 순서가 맞아야한다. 데이터를 보내지 않은 상태에서 양쪽에서 동시에 recv()함수를 호출하면 교착 상태가 발생할 수 있다. ● 1번 문제의 해결방법들과 장단점 방법1. 서버가 각 클라이언트와 연결해 통신하는 시간을 짧게 줄인다. 클라언트가 데이터를 전송하기 전에 매번 서버에 접속하고, 전송 후에는 곧바로 접속을 끊는 방식 장점 쉽게 구현 가능 서버의 시스템 자원을 적게 사용 단점 파일 전송 프로그램과 같이 대용량 데이터를 전송하는 응용프로그램..

[JAVA] 자바 Math 메소드 정리 (수학 함수 정리)

자바 대표적인 Math 메소드 Math 클래스의 메소드는 매우 다양하며, 그중에서 많이 사용되는 메소드는 다음과 같습니다. 메소드 설명 static double random() 0.0 이상 1.0 미만의 범위에서 임의의 double형 값을 하나 생성하여 반환함. static double abs(double a) static double abs(float a) static double abs(int a) static double abs(long a) 전달된 값이 음수이면 그 값의 절댓값을 반환하며, 전달된 값이 양수이면 인수를 그대로 반환함. static double ceil(double a) 전달된 double형 값의 소수 부분이 존재하면 소수 부분을 무조건 올리고 반환함. static double fl..

Java/Java 문법 2021.04.26

QGIS 설치 및 실행하기( Shapefile에 대하여 shp, shx, dbf)

졸업작품으로 길안내 지도를 만드는 중 도로정보가 필요해서 알아보는 중 www.juso.go.kr/addrlink/devLayerRequestWrite.do 정부에서 도로명주소 전자지도 데이터를 제공한다는 걸 알게되었다.. 이 데이터가 shp? shx? 라는 처음보는 형태의 파일이 되어있기에 기록을 위해 남긴다. 1. Shapefile shapefile 형식은 지리 정보 시스템 소프트웨어를위한 지리 공간 벡터 데이터 형식입니다. (위키백과) 단순하게, ShapeFile은 공간지리 정보 데이터를 담고있는 디지털 지도이다. shapefile은벡터형식이며점,선,도형으로표현되며, 그 속성을 가지고 있다. shapefile을 하나의 파일포맷이라고 생각하지만 사실, 3개의 확장 포맷을 통틀어 shapefile이라고 ..

QGIS(지리정보) 2021.04.20

[JAVA] 자바 iterator 반복자 / iterator 와 ListIterator

1. iterator(반복자) ​ - iterator란 쉽게말해 자바에서 제공해주는 인터페이스 입니다. ​ - 자바 컬렉션 인터페이스 (쉽게 List, Set 등등으로 이해) 에서는 iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 합니다. ​ 2. iterator 인터페이스 메소드 메소드 설명 boolean hasNext() 해당 이터레이션(iteration)이 다음 요소를 가지고 있으면 true를 반환하고, 더 이상 다음 요소를 가지고 있지 않으면 false를 반환함. E next() 이터레이션(iteration)의 다음 요소를 반환함. default void remove() 해당 반복자로 반환되는 마지막 요소를 현재 컬렉션에서..

Java/Java 문법 2021.04.19

[java] 자바 출력 스트림 (StringBuider 와 bufferedWriter 차이점, bufferedWriter 한계)

백준 1874번 알고리즘 문제를 풀다가 짧게 2가지의 차이점에 대해서 기록해 놓을려고 한다. ​ 먼저 1. BufferedWriter - BufferedReader 와 BufferedWriter 를 함께 쓰는 사람이 굉장히 많다 나도 그렇고, ​ - 만능처럼 생각하며 사용을 해왔는데 BufferedWriter의 한계점을 발견하였다. ​ (결론) - BufferedWriter 는 비동기적 버퍼 스트림이므로, 입력받은 데이터가 받아져서 버퍼가 꽉차버리면, 버퍼안에 있는 데이터를 자동적으로 비운다.(출력한다.) ​ - flush() 함수를 사용하는 이유는 버퍼가 다차지 않았는데 출력을 하기 위해서 이다. ​ ​ 2. StringBuider - StringBuider는 한마디로 변경가능한 문자열이다. ​ Str..

Java/Java 문법 2021.04.19

[java] 자바, 큐 (Queue, Deque)

큐(Queue) FIFO(First in First out) 쉽게 말해서 큐는, 먼저들어간 데이터가 먼저 나가는 자료구조 형태이다.(선입선출) ​ 1. java에서의 큐 (클래스 사용법) Queue q = new LinkedList(); E : 자료형 ​ 2. 큐 함수 [삽입] q.offer(Data); ​ [추출] q.poll(); //맨 앞에 데이터 추출 후 삭제 q.peek(); //맨 앞에 데이터 조회만(삭제 x) ​ [크기] q.size(); q.isEmpty(); /비어있는지 확인 q.size(); q.isEmpty(); /비어있는지 확인 ​ 덱,데크(Deque) Stack + Queue​ ​ 1) 스택과 큐의 혼합형(?) ​ 2) 스택의 장점과 큐의 장점을 둘다 사용할 수 ..

Java/Java 문법 2021.04.19

[JAVA] 스택 Stack

스택이란 선입후출(FILO) 먼저 들어온게 나중에 나온다. 들어오는 입구와 나가는 입구가 같은 구조 Stack은 데이터를 쌓는 형식으로 저장하는데 따라서 조회, 추가, 삭제 모두 가장 위에 있는 즉 가장 최근의 값에서 이루어 진다. 스택 구조에서 가장 상단에 있는 데이터를 Top이라고 한다. ​ JAVA 스택 클래스 스택의 생성 Stack Stack_name = new Stack(); 스택 클래스 public Element push(Element item); // 데이터 추가 public Element pop(); // 최근에 추가된(Top) 데이터 삭제 public Element peek(); // 최근에 추가된(Top) 데이터 조회 public boolean empty(); // stack의 값이 비..

Java/Java 문법 2021.04.19

[TCP/IP] 5장. 데이터 전송하기

응용 프로그램 프로토콜과 데이터 전송 1. 응용 프로그램 프로토콜 응용프로그램 프로토콜은, 응용 프로그램 수준에서 주고받는 데이터의 형식과 의미 그리고 처리 방식을 정의한 프로토콜이다. TCP/IP 표준 프로토콜과 비슷하나, 응용 프로그램마다 자유롭게 정의한다는 점, 즉 표준화되어있지 않다는 점이 다르다. 응용 프로그램 프로토콜의 기본은 "주고받을 메시지 형식"을 정하는 것이다. ex) 그림판 [주고 받아야할 정보] 1. 직선의 시작과 끝 2. 선의 두께와 색상 struct DrawingMessage1 { int type; // = LINE int x1, y1; // 직선의 시작점 int x2, y2; // 직선의 끝점 int width; // 선의 두께 int color; // 선의 색상 }; type..

[TCP/IP] 4장. TCP 서버- 클라이언트

TCP 서버-클라이언트 구조 1. 동작과 개념 서버는 먼저 실행하여 클라이언트가 접속하기를 기다린다. (listen) 클라이언트는 서버에 접속(connect)하여 데이터를 보낸다. (send) 서버는 클라이언트 접속을 수용하고(accept) 클라이너트가 보낸 데이터를 바당서(recv)처리한다. 서버는 처리한 데이터를 클라이언트에 보낸다. (send) 클라이언트는 서버가 보낸 데이터를 받아서(recv) 처리한다. 데이터를 주고받는 과정을 모두 마치면 접속을 끊는다. (closesocket) 2. 동작 원리 1) 서버는 소켓을 생성한 후 클라이언트가 접속하기를 기다린다. 이때 서버가 사용하는 소켓은 특정 포트번호(ex 9000번)와 결합되어 있어서 이 포트 번호로 접속하는 클라이언트만 수용할 수 있다. 2)..