loading
본문 바로가기

Language19

[ Java ] 해시맵 ( HashMap ) [ Java ] 해시맵 ( HashMap ) 📚 Table of Contents 해시맵 ( HashMap ) 이란? 맵 : 키( Key ) 와 값( Value ) 두 쌍으로 데이터를 보관하는 자료구조이다. 해싱( Hashing ) : 키가 해시 함수를 거쳐 해시 코드로 매핑되는 과정 해시 함수( Hash function ) : 임의의길이 데이터를 고정 길이 데이터로 매핑하는 함수 해시맵 특징 Key, Value 두 쌍으로 데이터를 저장한다. Key는 유일해야 한다. ( 중복 X ) 데이터의 검색 속도가 빠르다. 대용량 데이터 관리에 좋다. HashTable vs HashMap HashMap과 사용법이 거의 동일한 컬렉션인 HashTable이 있다. 둘은 같은 자료구조이지만 자바에서 차이가 존재한다. Th.. 2023. 12. 14.
[ Java ] 버퍼 ( Buffer ) [ Java ] 버퍼 ( Buffer ) 📚 Table of Contents 버퍼 ( Buffer ) 란? 스트림은 내부에 버퍼( buffer ) 라는 임시 메모리 공간을 가지고 있다. 위키백과 : 버퍼( buffer )는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리의 영역이다. 버퍼는 컴퓨터 안의 프로세스 사이에서 데이터를 이동시킬 때 사용된다. 보통 데이터는 키보드와 같은 입력 장치로부터 받거나 프린터와 같은 출력 장치로 내보낼 때 버퍼 안에 저장된다. 버퍼는 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 메모리 영역으로 입출력 시에 많이 사용된다. 예를 들어 입력 버퍼 사용 시 입력한 데이터가 프로그램으로 바로 전달되는.. 2023. 12. 6.
[ Python ] Python 설치 ( window ) [ Python ] Python 설치 ( window ) 📚 Table of Contents 파이썬 설치 (window 기준) 파이썬 공식 다운로드 페이지 Download Python The official home of the Python Programming Language www.python.org 설치 파일 다운로드 설치 필수 설정 설치 시 Add Python to PATH 클릭 필수 만약 Disable path length limit 문구가 뜨면 클릭 후 동의 한다. 설치 확인 win + R 누르기 cmd 입력 터미널에서 python 버전 확인 python -v python3 -v 파이썬 개발환경 구축 python 사용을 좀 더 편리하게 도와줄 3가지의 툴을 설치한다. Git for window.. 2023. 11. 25.
[ Python ] Python (파이썬) 소개 [ Python ] Python (파이썬) 소개 📚 Table of Contents 파이썬이란? 귀도 반 로섬(Guido Van Rossum)이라는 네덜란드 사람이 1990년에 만든 프로그래밍 언어이다. ' 파이썬 '은 소대 신화 파르나소스 산의 동굴에 살던 뱀을 의미한다. 파이썬 특징 인터프리터 언어이다. 인터프리터(Interpreter)란 '프로그래밍 언어의 코드를 바로 실행하는 컴퓨터 프로그램 또는 환경'을 의미한다. 코드를 한 줄 한 줄씩 결과를 확인하고 에러가 발생하면 바로 고칠 수 있는 환경이다. 이와 다른 언어로 컴파일언어(compiled language)인 C, C++는 코드를 다 적은 후 한 번에 실행하는 방식으로 속도는 빠르지만 배우기 어렵다. 비교적 느리다. 한 줄 씩 번역하며 실행하.. 2023. 11. 25.
[ Java ] 스트림 ( Stream ) [ Java ] 스트림 ( Stream ) 📚 Table of Contents 스트림 ( Stream ) 이란? 스트림(Stream)은 Byte 형태로 데이터를 운반하는데 사용되는 연결통로로써 단방향 통신을 하며, 큐의 FIFO 구조로 되어있다. 또한 입력과 출력을 통시에 수행하려면 입력을 위한 입력 스트림(input stream)과 출력을 위한(output stream), 모두 2개의 스트림이 필요하다. 마지막으로 Source - 입력 스트림 input Stream- 출력 스트림 output Stream- Sink 순서로 데이터가 흐른다. Java에서 스트림(Stream)은 람다를 활용할 수 있는 기술 중 하나이다, 스트림은 `데이터의 흐름` 이다. 배열 또는 컬렉션 인스턴스에 함수 여러 개를 조합해서.. 2023. 11. 23.
[ Java ] HashSet 이란? [ Java ] HashSet 이란? 📚 Table of Contents HashSet은 Set 인터페이스에서 지원하는 구현 클래스이다. 때문에 Set의 성질을 그대로 상속받는 다는 것이 특징이다. HashSet 특징 중복 허용 안함: 같은 요소를 중복해서 추가할 수 없다. 순서 보장 안함: HashSet은 요소들의 순서가 없다. 널(null) 값 허용: HashSet에는 하나의 널 값만 저장할 수 있다. HashSet 구현 및 주요 메서드 HashSet 생성 // 타입을 지정 가능 HashSet hsset = new HashSet(); // 타입을 생략하여 사용 가능 -> 빈 HashSet생성 시 사용 HashSet hsset1 = new HashSet(); // 초기 용량(Capacity) 설정 Ha.. 2023. 11. 22.
[ Java ] 13. 예외 처리 ( exception handling ) [Java] 13. 예외 처리 ( exception handling ) 📚 Table of Contents 01. 오류 종류 논리 에러 (Logic Error) 논리적 에러는 이른바 '버그'라고 생각하면 된다. 프로그램이 실행하고 작동하는 데는 아무런 문제가 없는 오류이지만, 결과가 예상과 달라 사용자가 의도한 작업을 수행하지 못하게 되어 서비스 이용에 지장이 생길 수 있다. 논리적 오류는 컴퓨터 입장에서는 프로그램이 멀쩡히 돌아가는 것이니 에러 메시지를 알려주지 않는다. 따라서 개발자는 프로그램의 전반적인 코드와 알고리즘을 체크 필요가 있다. 컴파일 에러 (Complillation Error) 컴파일 에러는 컴파일 단계에서 오류 발견하면 컴파일러가 에러 메시지 출력해 주는 것을 말한다. 컴파일 에러 발.. 2023. 11. 9.
[ Java ] 12. 자바 입출력 [Java] 12. 자바 입출력 📚 Table of Contents 01. 자바 입출력과 스트림 스트림이란? 자바에서 모든 입출력은 스트림(Stream)을 통해 이루어진다. 입출력 장치는 매우 다양하여 장치에 따라 입출력 부분을 일일이 다르게 구현하면 프로그램 호환성이 떨어질 수 밖에 없다. 이런 문제를 해결하기 위해 자바는 입출력 장치와 무관하고 일관성 있게 프로그램을 구현할 수 있도록 일종의 가상 통로인 스트림을 제공한다. 자료를 읽어 들이려는 소스(source)와 자료를 쓰려는 대상(target)에 따라 각각 다른 스트림 클래스를 제공한다. 입, 출력 스트림 어떤 대상으로부터 자료를 읽어 들일 때 사용하는 스트림이 입력 스트림이다. 편집 화면에 사용자가 쓴 글을 파일에 저장할 때는 출력 스트림을 사.. 2023. 11. 9.
[ Java ] 11. 내부 클래스 ( inner class ) [ Java ] 11. 내부 클래스 ( inner class ) 📚 Table of Contents 01. 내부 클래스란 내부 클래스(inner class)란 하나의 클래스 내부에 선언된 또 다른 클래스를 의미한다. 내부에 정의된다는 점을 제외하고는 일반적인 클래스와 다르지 않다. 우리가 어느 클래스에 변수나 상수가 필요하다면 클래스 멤버로서 클래스 내에서 선언하여 사용해 왔듯이, 선언 주체를 변수에서 클래스로 바꾼다면 그것이 내부 클래스인 것이다. 이처럼 내부 클래스는 보통 두 클래스가 서로 긴밀한 관계가 있거나, 하나의 클래스 또는 메서드에서만 사용되는 클래스일 때 이용되는 기법이다. class Outer { // 외부 클래스 ... class Inner { // 내부 클래스 ... } ... } 내.. 2023. 11. 9.
[ Java ] 10. 인터페이스 ( interface ) [ Java ] 10. 인터페이스 ( interface ) 📚 Table of Contents 01. 인터페이스 인터페이스도 추상 클래스와 비슷하게 다른 클래스를 작성하는데 도움을 주는 목적으로 작성한다. 다만 인터페이스는 추상 클래스보다 추상화 정도가 높아 추상 클래스와 다르게 구현부가 있는 일반 메서드, 일반 변수 멤버 등을 가질 수 없다. 즉, 인터페이스는 구현된 게 아무것도 없는 기본 설계도라고 할 수 있다. 인터페이스 또한 인스턴스를 생성할 수 없다. // 인터페이스 선언 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; ... public abstract 메소드이름(매개변수목록); ... } // 인터페이스 구현 class 클래스이름 im.. 2023. 11. 9.