전체 글323 Spring https 설정 사설 인증서 application.properties에 다음 코드를 입력 # 필수 설정 server.ssl.key-store= SSL 키 저장소 경로 server.ssl.key-store-password= SSL 키 저장소 비밀번호 # 선택 설정 server.ssl.key-store-type= SSL 키 저장소 유형(기본-JKS) server.ssl.key-alias= SSL 키 저장소명 설정 server.ssl.key-store-provider= SSH 키 스토어 제공자 지정 - 키 저장소 타입은 개발 환경에서 자체 서명된 인증서 및 키를 사용하는 경우 PKCS12를 주로 사용 CA 인증서 application.properties에 다음 코드를 입력 # 필수 설정 server.ssl.trust-stor.. 2023. 12. 22. java.util.Iterator 정의 - 컬렉션을 순회하는 데 사용되는 인터페이스 (반복문) 주요 메소드 - hasNext() = 다음 순서 데이터가 있는지 확인 - next() = 현재 순서 데이터 반환 - remove() = 현재 순서 데이터 삭제 ※ List, Set, Queue, Map, Entry 등의 클래스 객체들은 iterator()를 통해 데이터를 순회할 수 있음 반복문과의 비교 - 컬렉션에서 요소 제어 가능 - next()를 통해 뒷 순서로 이동 가능 - hasNext()를 통해 더 많은 요소가 있는지 확인 가능 - 특정 순서가 없기 때문에 처음 실행 했을 때 먼저 해당하는 데이터와 나중에 실행했을 때 먼저 해당하는 데이터가 다를 수 있음 ex) 첫 번째 순회 실행 -> 3, 두 번째 순회 실행 -> 5 ListIter.. 2023. 12. 21. java.util.Map.Entry 정의 - Map에 저장된 모든 key-value 쌍을 각각의 객체로 얻을 수 있도록 해주는 클래스 주요 메소드 - Map.entrySet() = Map → Entry 변환 - getKey(), getValue() = 해당 엔트리의 키/값 반환 - setValue(A) = 해당 엔트리의 값을 A로 변경 - equal(entry2) = 참조한 entry와 entry2가 서로 같은지 여부 반환 (키,값 모두 같아야함) 특징 - 각각의 key와 value가 연결되어 하나의 객체로 표현되어 서로 연관되어 있다는 것을 명시할 수 있음 - Map의 데이터를 Entry로 변환한 뒤 Iterator를 이용하여 반복문을 수행할 수 있도록 하기 위해 주로 사용 public String uplodadFile(Multipart.. 2023. 12. 21. Multipart Multipart 정의 - HTTP Request Header Content-Type의 한 종류로 Client가 POST 요청을 보낼 때 HTTP Request의 하나의 Body를 여러 부분으로 나누어 여러 종류의 데이터를 동시에 전송하는 방식 - 주로 파일 업로드와 관련된 데이터 전송에 사용 - 멀티파트 요청은 Header Content-Type에 multipart/form-data 값을 가지며 여러 개의 파트로 구성됨 - 각 파트는 Header와 Body로 구성되며 Header에는 메타 데이터, Body에는 데이터가 포함 MultipartFile 정의 - org.springframework.web.multipart.MultipartFile - Client에서 서버로 전송된 파일 데이터를 다룰 수 있도.. 2023. 12. 20. 파일 서버 정의 - 네트워크를 통해 파일 및 데이터를 저장하고 관리하는 역할을 하는 서버 - OS에 따라 Windows 파일 서버, Unix 파일 서버, Linux 파일 서버가 존재 OS 종류에 따른 파일 서버 - Windows - Windows 간 파일 서버 구축 → 윈도우 공유 기능을 이용하여 CIFS 사용 - Linux - Linux 간 파일 서버 구축 → 리눅스 nfs-utils을 이용하여 NFS 사용 - Linux - Windows 간 파일 서버 구축 → Samba를 이용하며 SMB/CIFS를 사용 CIFS(Common Internet File System) - SMB의 확장된 버전 (SMB와 거의 동일시하게 부름) ※ SMB(Server Message Block) = Windows 시스템이 다른 시스템의.. 2023. 12. 20. java.net.URL 정의 - Java에서 URL을 표현하는데 사용하는 클래스 ※ URL(Uniform Resource Locator) = 인터넷 상의 리소스의 위치를 가리키는 규약 (고유 리소스 주소) URL url1 = new URL("https://www.example.com"); URL url2 = new URL(url1, "/path/resource"); // https://www.example.com/path/resource 주요 메소드 - getProtocol() = 프로토콜 조회 (http, https, ftp 등) - getHost() = 호스트 조회 - getPort() = 포트 번호 조회 - getPath() = 경로 조회 - getQuery() = 쿼리 스트링 조회 - getFile() = 파일 부분 조.. 2023. 12. 20. java.io.File 정의 File file = new File("C:\\example.txt"); - Java에서 파일 및 디렉터리의 경로 및 속성을 조작하는 데 사용되는 클래스 - 파일 시스템의 경로를 나타내며, 파일이나 디렉터리의 생성, 삭제, 검사, 탐색 등의 기본적인 파일 작업을 지원 주요 메소드 - createNewFile() = 파일 생성 (반환 타입 = Boolean) - mkdir() = 디렉터리 생성 (최하위 디렉터리만, 반환 타입 = Boolean) - mkdirs() = 디렉터리 생성 (지정한 경로에 없는 디렉터리 모두, 반환 타입 = Boolean) Ex) 폴더 경로가 A/B/C일 때, mkdir → C만 생성하여 A와 B 둘 중 하나만 없어도 에러가 발생 mkdirs → C 포함 지정한 경로에 없는 .. 2023. 12. 20. java.io.InputStream & OutputStream Stream - 입출력 장치에서 데이터를 읽고 쓰기 위해 자바에서 제공하고 있는 클래스 - 단방향으로 흐르기 때문에 입출력을 동시에 진행하기 위해서는 2개의 스트림(입력, 출력)이 필요 java.io.InputStream - Java에서 데이터의 타입과 상관없이 입력 스트림을 다루는 데(데이터 읽음) 사용되는 클래스 → 모든 데이터(이미지, 동영상 포함)를 바이트 단위로 처리 하위 클래스 - FileInputStream = 파일에서 바이트 단위로 데이터를 읽어오는데 사용 - ByteArrayInputStream = 바이트 배열에서 바이트 단위로 데이터를 읽어오는데 사용 - BufferedInputStream = 입력 스트림에 버퍼링 기능 추가 - PipedInputStream = 파이프로부터 바이트 단위.. 2023. 12. 20. java.io.Reader & Writer java.io.Reader - Java에서 텍스트 기반의 입력 스트림을 다루는 데 사용되는 클래스 → 텍스트 데이터를 문자 단위로 처리 - 인코딩 필요 시 InputStreamReader를 사용하여 바이트 스트림을 문자 스트림으로 변환 ※ 비슷한 기능을 하는 InputStream은 모든 데이터(이미지, 동영상 포함)를 바이트 단위로 처리 ※ 텍스트 데이터 = Reader, 모든 종류의 데이터 = InputStream 주요 메소드 - read() = 데이터(텍스트) 읽기 - skip(Long n) = 입력 스트림의 현재 위치에서 n개 건너 뛰고 읽기 - close() = 입력 스트림 닫기 - mark() = 입력 스트림에서의 현재 위치 마킹 - markSupported() = 입력 스트림에서 마킹한 부분이.. 2023. 12. 20. java.util.Properties 정의 - 키-값 쌍으로 이루어진 데이터(.properties)를 저장하고 관리하는 데 사용되는 클래스 - Properties 객체는 key=value의 쌍으로 데이터를 저장하며 키와 값 모두 문자열로 구성 Properties properties = new Properties(); properties.put("key1", "value1"); properties.put("key2", "value2"); String value1 = properties.getProperty("key1"); 주요 메소드 - get(key) = 해당 key에 대한 value 반환 (반환 타입 = Object) - getProperty(key) = 해당 key에 대한 value 반환 (반환 타입 = String) - remove(k.. 2023. 12. 19. BufferedReader/BufferedWriter Buffer - 데이터를 한곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 영역 - Buffer를 사용하지 않을 경우 데이터가 입/출력 될때마다 바로 전송되지만 Buffer를 사용할 경우에는 Buffer에 정해진 용량이 가득 차거나 개행 문자(\)가 인식되어야 모아진 데이터가 한 번에 전송됨 - 쓰레기를 생길 때마다 버리는 것(버퍼 X)과 쓰레기를 한번에 모았다가 버리는 것(버퍼 O)의 차이 → Buffer를 사용하는 것이 더 효율적 BufferedReader - java.io.BufferedReader - Java에서 입출력 스트림에서 데이터를 읽을 때 버퍼링을 제공하는 클래스 - 주로 텍스트 파일이나 문자열에서 데이터를 읽을 때 사용 - readLine()을 통해 데.. 2023. 12. 19. java.net.HttpURLConnection 정의 - java.net.HttpURLConnection = Java에서 URL 요청을 위한 클래스 - 데이터의 타입 및 길이 제한 거의 X → 데이터의 길이를 예상하기 어려운 스트리밍 데이터를 교환할 때 주로 사용 - 서버가 연결을 종료하기 전에 동일한 클라이언트에서 다시 연결할 경우 기존에 연결된 소켓을 재사용 주요 메소드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; public class HttpPostExample { publi.. 2023. 12. 19. KVM과 QEMU Hypervisor(하이퍼바이저) - 가상화 기술을 사용하여 여러 개의 OS를 단일한 호스트 시스템에서 동시에 실행할 수 있게 하는 소프트웨어 레이어 Emulation과 Simulation - Emulation = 실제 하드웨어나 소프트웨어의 동작을 모방하여 시스템을 복제한 뒤 VM에서 해당 시스템의 동작을 재현하는 것 - Simulation = 호스트 머신에 존재하는 하드웨어 및 아키텍처를 이용하여 가상머신에 제공하는 것 QEMU(Quick-Emulator) - 다양한 종류의 하드웨어를 소프트웨어로 구현해둔 Hypervisor - Binary Translation을 수행함으로써 호환성 문제 해결 → 다양한 OS를 VM에서 실행할 수 있도록 함 ※ Binary Translation(이진 변환) = 하나의.. 2023. 12. 14. com.jcraft.jsch 정의 - Java에서 SSH(Secure Shell) 프로토콜을 사용하여 원격 시스템과 통신할 수 있게 해주는 라이브러리 클래스 종류 - com.jcraft.jsch.JSch = JSch 라이브러리의 핵심 클래스로, SSH 연결을 설정하고 SSH 세션을 얻기 위한 메서드를 제공 - com.jcraft.jsch.JSchException = JSch 라이브러리에서 발생할 수 있는 예외 - com.jcraft.jsch.Session = SSH 연결 자체 (연결 후 실제로 데이터를 주고받는 작업은 Session 객체를 통해 이뤄짐) ※ Session 인스턴스는 JSch 객체를 통해 생성됨 import com.jcraft.jsch.JSch; import com.jcraft.jsch.Session; JSch jsc.. 2023. 12. 13. 용어 정리 LVM(Logical Volume Manager) 리눅스 시스템에서 논리적인 볼륨 관리를 제공하는 소프트웨어 기술 ZFS(Zettabyte File System) Sun Microsystems에서 개발한 파일 시스템 및 볼륨 매니저 데이터 무결성, 고성능, 효율적인 스냅샷 및 복제 기능 등을 제공 ZFS Pool = ZFS가 여러 개의 디스크를 하나로 묶은 물리적인 Storage Pool Quorum(쿼럼) 클러스터 또는 분산 환경에서 노드 간의 투표를 통해 다수의 동의를 얻는 것 (노드 다수결) Swap Memory RAM이 가득 찼지만 더 많은 메모리가 필요할 때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 디스크 공간 실제 디스크 공간을 메모리처럼 사용하는 개념 KBM(Kernel-bas.. 2023. 12. 13. 이전 1 2 3 4 5 6 7 8 ··· 22 다음