전체 글 87

[ JAVA ] 네트워킹 (Networking)

네트워킹 네트워킹이란 두 대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성하는 것을 말한다. 네트워킹의 개념은 컴퓨터들을 서로 연결하여 데이터를 손쉽게 주고받거나 또는 자원프린터와 같은 주변기기를 함께 공유하고자 하는 노력에서 시작되었다. 자바에서 제공하는 java.net패키지를 사용해 네트워크 어플리케이션의 데이터 통신 부분을 쉽게 작성할 수 있으며, 간단한 네트워크 어플리케이션은 단 몇 줄의 자바코드 만으로도 작성이 가능하다. 클라이언트/서버 클라이언트/서버는 컴퓨터간의 관계를 역할로 구분하는 개념이다. 서버 : 서비스를 제공하는 컴퓨터 클라이언트 : 서비스를 사용하는 컴퓨터 서비스는 서버가 클라이언트로부터 요청받은 작업을 처리하여 그 결과를 제공하는 것을 뜻한다. 서버가 제공하는 서비스의 종류에..

[ JAVA ] 직렬화란

객체를 저장하거나 메모리, 데이터베이스 혹은 파일로 옮기려면 어떻게 해야할까? 이럴 때 필요한 것이 직렬화다. 직렬화란? 직렬화란 객체를 데이터 스트림으로 만드는 것을 뜻한다. 즉 객체에 저장된 데이터를 스트림에 쓰기위해 연속적인 데이터로 변환하는 작업을 말한다. 솔직히 이렇게 말하면 어려운것 같다.. 쉽게 말하면, 직렬화란 현재 데이터의 상태를 영속적으로 저장하거나 다른 환경으로 전달(네트워크 통신 등)하기 위해 어떠한 정해진 포맷으로 변환하는 과정을 말한다. 그리고 이 변환된 데이터를 다시 원래 데이터로 변환 가능하며, 이러한 과정을 역직렬화라고 한다. 그리고 자바에서는 직렬화란? 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데..

[ JAVA ] 입출력

입출력이란? I/O란 INPUT과 OUTPUT의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 1. 스트림 (Stream) 한마디로 정의 하면 스트림이란 데이터를 운반하는데 사용되는 연결통로이다. 스트림의 특징 스트림은 단방향통신만 가능하다. 따라서 입력과 출력을 동시에 처리 할 수 없다. 입력과 출력을 동시에 수행하려면❕❓ 입력을 위한 입력스트림과 출력을 위한 출력스트림, 2개의 스트림이 필요하다. 그리고 스트림은 먼저 보낸 데이터를 먼저 받게 되어 있으며 중간에 건너뜀 없이 연속적으로 데이터를 주고받는다. 큐와 같은 FIFO(First In First Out)구조로 되어 있다고 생각하면 이해가 쉽다. 2. ..

[JAVA] 람다식

람다식이란? 간단하게 말해서 메서드를 하나의 식으로 표현한 것이다. 람다식은 함수를 간략하면서도 명확한 식으로 표현할 수 있게 해준다. 메서드를 람다식으로 표현하면 메서드의 이름과 변환값이 없어지므로, 람다식을 익명함수라고도 표현한다. int[] arr = new int[5]; Arrays.setAll(arr, (i) -> (int)(Math.random()*5+1); /*위 람다식이 하는 일을 메서드로 표현하면 아래와 같다*/ int method(){ return (int)(Math.random()*5) +1; } 위 코드를 보면 메서드보다 람다식이 간경하면서도 이해하기 쉽다는 것에 이견이 없을 것이다. 게다가 모든 메서드는 클래스에 포한되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비..

카테고리 없음 2023.03.15

[ JAVA ] 쓰레드란?

먼저, 쓰레드를 설명하기전에 프로세스부터 알아보자! 프로세스란? 간단히 말하자면 실행 중인 프로그램 이다. 운영체제로 부터 시스템 자원(메모리)을 할당받는 작업의 단위이며 실행된 프로그램을 의미한다. 프로세스의 구성 프로세스 = 실행중인 프로그램 (자원[데이터 + 메모리] + 쓰레드) 할당 시스템 자원 CPU시간, 운영시 필요한 주소공간 Code, Data, Stack, Heap 의 구조로 되어있는 독립된 메모리 영역이 있다. 특징 - 프로세스는 각각 독립된 메모리 영역 (Code, Data, Stack, Hea) 구조를 할당 받고, 최소 1개의 메인 쓰레드를 가지고 있다. - 각 프로세스는 별도의 주소공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근 할 수 없다. - 한 프로세스..

[JAVA] Collections

Collections 를 배우기 전, 컬렉션의 중복되는 의미들을 살펴봅시다. collection: 객체가 저장되고 반복되는 자료 구조를 나타냄 Collection: Set, List, Queue가 상속받는 java.util.Collection 인터페이스이다. 이는 상속임. 구현이 아니라. 즉, Collection를 직접 구현한 것은 없음. Collections(대문자 C, s로 끝남): collections에 사용할 정적 유틸리티 메소드의 모음이 있는 java.util.Collections 클래스이다. 특징 - 컬렉션 프레임워크 타입의 객체에서 사용하거나 컬렉션을 반환하는 static 메소드들로 구성되어있음. → 쉽게 말해 컬렉션 프레임워크 타입의 객체(중복되는 의미에서 1번)에 대한 객체생성, 정렬, ..

카테고리 없음 2023.02.01

[JAVA] Properties 란?

Properties 란? Properties는 HashMap의 구버전인 Hashtable을 상속받아 구현한 것으로, Hashtable은 키와 값을 (Object, Object)의 형태로 저장하는데 비해 Properties는 (String, String)형태로 저장하는 보다 단순화된 컬렉션 클래스이다. 주로 애플리케이션의 환경설정과 관련된 속성을 저장하는데 사용되며 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공한다. 그래서 간단한 입출력은 Properties를 활용하면 몇 줄의 코드로 쉽게 해결할 수 있다. 간단한 예제로 사용하는 방법을 알아보자! public class PropertiesEx1 { public static void main(String[] args) { Properties prop =..

[JAVA] TreeMap 이란

TreeMap은 이진트리를 기반으로 한 Map 컬렉션이다. TreeSet과의 차이점은 TreeSet은 값만 저장 한다. 하지만 TreeMap은 키와 값의 쌍으로 이루어진 데이터를 저장한다. 그래서 검색과 정렬에 적합한 컬렉션 클래스이다. TreeMap은 일반적으로 HashMap보다 성능이 떨어진다. TreeMap은 데이터를 저장할 때 즉시 정렬하기에 추가나 삭제가 HashMap보다 오래 걸린다. 하지만 정렬된 상태로 Map을 유지해야 하거나 정렬된 데이터를 조회해야 하는 범위 검색이 필요한 경우 TreeMap을 사용하는 것이 효율성면에서 좋다. TreeMap 사용방법 TreeMap 선언 //TreeMap생성 TreeMap tmap1 = new TreeMap(); //타입 파라미터 생략가능 TreeMap ..

[JAVA] LinkedList

배열은 가장 기본적인 형태의 자료구조로 구조가 간단하고, 사용하기 쉽고 데이터를 읽어오는데 걸리는 시간이 가장 빠릅니다. 하지만 단점도 있다. 1. 크기를 변경할 수 없다. - 크기를 변경할 수 없으므로 새로운 배열을 생성해서 데이터를 복사해야한다. - 실행속도를 향상시키기 위해서는 충분히 큰 크기의 배열을 생성해야 하므로 메모리가 낭비된다. 2. 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸린다. - 차례대로 데이터를 추가하고 마지막에서부터 데이터를 삭제하는 것은 빠르지만, 배열의 중간에 데이터를 추가하려면, 빈자리를 만들기 위해 다른 데이터들을 복사해서 이동해야 한다. 위와 같은 배열의 단점을 보완하기 위해 나타난 자료구조가 LinkedList이다. 배열은 모든 데이터가 연속적으로 존재하지만 ..

[JAVA] ArrayList 사용방법

ArrayList란? ArrayList는 Object배열을 이용해서 데이터를 순차적으로 저장한다. 배열에 저장할 공간이 없다면 더 큰 새로운 배열을 선언하여 기존 배열의 내용을 복사하여 붙여놓은 다음 새로운 내용을 순서대로 저장한다. List 인터페이스를 상속받아 사용함. ArrayList는 객체가 추가되어 용량을 초과하면 자동으로 부족한 크기만큼 용량이 늘어남. 배열은 데이터를 추가, 삭제 시 반복문으로 인덱스를 한 칸씩 밀거나 당기는 식으로 공간을 조절하지만 ArrayList는 이 과정을 자동으로 처리해주어서 편리하게 사용이 가능함. 즉, 장점과 단점을 정리해 보자면 장점 데이터에 순서가 있음 데이터의 중복 저장 허용 index를 통한 검색 빠름 단점 데이터 추가, 삭제가 느림 ArrayList 선언..

728x90