분류 전체보기
-
정렬 알고리즘 (Sorting algorithm) 종류 및 구현 알아보기!IT 2025. 4. 23. 15:23
1. 버블 정렬 (Bubble Sort)가장 단순한 정렬 방식으로, 인접한 두 수를 비교하며 정렬합니다. 성능은 느리지만 구현이 쉬워 교육용으로 많이 사용됩니다.public void bubbleSort(int[] arr) { int n = arr.length; for (int i = 0; i arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }}2. 선택 정렬 (Selection Sort)매 반복마다 가장 작은(또는 큰) 값을 선택해 앞으로 보내는 방식입니다. 버블 정렬보다 비교 횟수는 적..
-
[Java] 리플렉션 (reflection) 에 대해 알아보자!Language/Java 2025. 4. 23. 15:13
Java 리플렉션(Reflection)이란?Java의 리플렉션은 런타임에 객체의 클래스 정보에 접근하거나 메서드를 호출하고, 필드를 읽거나 쓸 수 있게 해주는 기능입니다. 보통은 컴파일 타임에 클래스 정보를 사용하지만, 리플렉션을 사용하면 프로그램 실행 중에 유연하게 객체를 다룰 수 있습니다.ObjectMapper, ModelMapper, MapStruct와 리플렉션1. ObjectMapper (Jackson)ObjectMapper는 JSON과 Java 객체 간의 직렬화/역직렬화를 담당하는 Jackson 라이브러리의 핵심 클래스입니다. 내부적으로 리플렉션을 사용하여 객체의 필드를 분석하고 값을 읽거나 씁니다.ObjectMapper mapper = new ObjectMapper();User user = m..
-
리눅스 데몬(daemon) 이란?Server/Linux 2025. 4. 23. 11:33
🐧 리눅스에서 데몬(daemon)이란?데몬(daemon)은 리눅스 또는 유닉스에서 백그라운드에서 지속적으로 실행되는 프로세스를 말합니다. 시스템 부팅 시 자동 실행되어 사용자 개입 없이 동작합니다.✨ 왜 데몬이 필요한가?데몬은 시스템 서비스 제공에 핵심 역할을 합니다. 데몬 이름역할 sshdSSH 원격 접속 처리 cron예약된 작업 자동 실행 httpd웹 서버 서비스 제공 mysqldMySQL 데이터베이스 실행🔐 데몬의 권한 및 설정✅ 기본 권한대부분의 데몬은 root 권한으로 실행되며, 보안을 위해 전용 사용자 계정을 사용하는 경우도 있습니다.✅ 실행 사용자 변경 예시[Service]ExecStart=/usr/bin/mydaemonUser=www-dataGroup=www-data✅ 권한 제..
-
java 어플리케이션에서 시스템 명령어 사용하려면?Server 2025. 4. 23. 11:29
✅ Java의 ProcessBuilder란?ProcessBuilder는 Java 5부터 추가된 클래스이며, 외부 프로그램이나 쉘 명령어를 실행할 수 있게 도와주는 도구입니다.✨ 언제 사용하나? 운영체제 명령어를 호출해야 할 때 Java 외부 프로그램을 실행해야 할 때 외부 프로그램의 실행 결과를 Java에서 읽거나 처리할 때 백엔드 시스템이 외부 CLI 툴과 연동될 때📌 주요 메서드와 특징 메서드 / 기능설명 command(List)실행할 명령어 설정 directory(File)작업 디렉토리 설정 environment()환경 변수 설정 start()프로세스 시작 redirectInput/Output/Error()입출력 리디렉션 가능🧪 실전 예제✅ 예제 1: 디렉토리 목록 출력Proc..
-
[Mysql] 조인 테이블 조회시 드라이빙? 드리븐? 테이블 설명 및 STRAIGHT_JOIN 힌DB/Mysql 2025. 4. 22. 16:26
드라이빙 테이블과 드리븐 테이블이란?SQL에서 여러 테이블을 조인할 때, 옵티마이저는 효율적인 조인을 위해 조인의 시작 테이블과 그 이후 조인될 테이블을 구분합니다. 이를 각각 드라이빙(Driving) 테이블과 드리븐(Driven) 테이블이라고 합니다.🚗 드라이빙 테이블 (Driving Table) 조인의 시작점이 되는 테이블입니다. 옵티마이저가 가장 먼저 액세스합니다. WHERE 조건의 선택도(Selectivity)가 높은 테이블일수록 유리합니다.🧭 드리븐 테이블 (Driven Table) 드라이빙 테이블의 결과에 따라 조인되는 테이블입니다. 보통 루프 안에서 여러 번 조회됩니다. 인덱스를 잘 걸어야 성능 저하를 방지할 수 있습니다.예시 쿼리에 적용해 보기SELECT * FROM C JO..
-
TCP 3-Handshake 에 대해 알아보자!Web 2025. 4. 22. 13:50
TCP 3-Way Handshake란? TCP(Transmission Control Protocol)는 신뢰성 있는 데이터 전송을 보장하는 연결 지향적인 프로토콜입니다. TCP 연결을 설정하는 과정은 3-Way Handshake라는 3단계 과정으로 이루어집니다. 이 과정은 두 컴퓨터 간의 연결을 확립하고, 데이터가 안전하게 전송될 수 있도록 준비하는 중요한 단계입니다.1. 3-Way Handshake란? TCP 3-Way Handshake는 클라이언트와 서버 간의 신뢰성 있는 연결을 설정하는 과정으로, 총 세 단계로 이루어집니다. 이 과정에서 서로 간에 연결 요청, 승인, 확인 메시지를 주고받습니다.2. 3-Way Handshake 단계 Step 1: SYN (Synchronize) 요청 ..
-
HTTPS 통신시 암호화 범위에 대해 알아보자!Web 2025. 4. 22. 13:48
HTTPS 통신에서 암호화되는 범위는 어디까지일까? 웹사이트에 접속할 때 주소창에 https://가 보인다면, 해당 통신은 TLS(SSL) 기반으로 암호화되고 있다는 뜻입니다. 그렇다면 HTTPS는 실제로 어떤 정보를 암호화하고, 어떤 정보는 암호화되지 않을까요? 이 글에서 간단히 정리해보겠습니다.1. HTTPS는 어떻게 동작할까? HTTPS는 HTTP + TLS 조합으로, TLS(Transport Layer Security) 프로토콜이 중간자 공격이나 패킷 스니핑으로부터 통신을 보호합니다. 이때 HTTP의 내용 전체가 TLS를 통해 암호화되어 전송됩니다.2. 암호화되는 정보 HTTP Header: User-Agent, Authorization, Cookie 등 포함 HTTP Body: POS..
-
JWT(Json Web Token)에 대해 알아보자!Web 2025. 4. 22. 13:42
JWT(Json Web Token)의 장단점과 사용 시 주의할 점 JWT(Json Web Token)는 웹 인증 및 정보 전달에 자주 사용되는 토큰 기반 인증 방식입니다. 특히 무상태(Stateless) 인증 방식으로 백엔드 서버의 부담을 줄여주는 장점이 있어, 많은 현대 웹 애플리케이션에서 사용되고 있습니다.1. JWT란? JWT는 Header.Payload.Signature 구조를 가진 문자열로, 주로 사용자의 인증 정보를 담아 서버-클라이언트 간 전달하는 데 사용됩니다.eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjMsInJvbGUiOiJ1c2VyIn0.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk Heade..