전체 글
-
무료 WYSIWYG(위지윅) 에디터 알아보자!Web 2025. 4. 25. 16:49
✅ 무료로 사용할 수 있는 WYSIWYG 에디터 추천웹 프로젝트나 블로그에서 사용할 수 있는 무료 WYSIWYG 에디터를 소개합니다. HTML 변환은 물론, 보안과 확장성도 고려해 선택해 보세요.1. Toast UI Editor 마크다운 기반의 에디터 React, Vue, JS 지원 보안 필터링 내장 GitHub 바로가기2. TinyMCE 전통적인 HTML WYSIWYG 에디터 플러그인 확장 쉬움 기본 무료, 상용 플랜 있음 공식 사이트3. Quill 빠르고 가벼운 에디터 오픈소스 / 커스터마이징 용이 공식 사이트4. CKEditor 5 완성도 높은 UI 마크다운 & HTML 지원 무료 플랜 + 상용 플랜 공식 사이트자신의 프로젝트에 맞는 에디터를 선택하고, XSS 필터링 기능..
-
위지윅(WYSIWYG) 에디터와 XSS 취약점에 대해 알아보자Web 2025. 4. 25. 16:21
✅ WYSIWYG 에디터와 XSS 취약점, 그리고 안전하게 사용하는 방법웹 개발에서 위지윅(WYSIWYG: What You See Is What You Get) 에디터는 텍스트를 HTML 형태로 손쉽게 작성할 수 있어 매우 유용합니다. 하지만 이 편리함 뒤에는 XSS(Cross-Site Scripting) 취약점이라는 보안 위협이 숨어 있습니다. 이번 글에서는 왜 이러한 취약점이 생기는지, 그리고 이를 어떻게 방지할 수 있는지에 대해 알아봅니다.🔍 1. 왜 XSS 취약점이 발생하나요? (예시 포함)WYSIWYG 에디터는 사용자가 입력한 내용을 HTML로 변환해서 저장합니다. 이 과정에서 악성 스크립트가 필터링되지 않으면, 브라우저가 이를 실행하게 되어 XSS가 발생합니다.📌 예시 상황이 코드가 필터링..
-
[docker] docker-compose (도커컴포즈) 란?Server/Docker 2025. 4. 24. 17:59
🐳 도커 컴포즈(Docker Compose)란?Docker Compose는 여러 개의 컨테이너를 docker-compose.yml 파일 하나로 정의하고, 한 번에 실행할 수 있도록 해주는 도구입니다.예를 들어, 웹 애플리케이션을 구성할 때 웹 서버, DB 서버를 각각 컨테이너로 관리하면서도, 하나의 명령어로 손쉽게 실행/중지할 수 있습니다.🔧 Docker Compose 설치 방법📌 Linux에서 설치sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/..
-
[docker] 자주 사용하는 명령어Server/Docker 2025. 4. 24. 17:45
자주 사용하는 Docker 명령어 정리1. 도커 버전 확인docker --version설치된 도커의 버전을 확인합니다.2. 도커 이미지 목록 확인docker images로컬에 저장된 도커 이미지 리스트를 확인할 수 있습니다.3. 컨테이너 목록 확인docker ps현재 실행 중인 컨테이너들을 확인합니다. -a 옵션을 붙이면 중지된 컨테이너까지 모두 표시됩니다.4. 이미지로 컨테이너 실행docker run [옵션] 이미지이름이미지를 기반으로 컨테이너를 생성하고 실행합니다. 예: docker run -d -p 8080:80 nginx5. 실행 중인 컨테이너 접속docker exec -it 컨테이너ID bash컨테이너 내부로 터미널 접속을 할 수 있습니다.6. 도커 컨테이너 시작/중지docker start 컨테..
-
[Java] Serializable 이란?Language/Java 2025. 4. 23. 17:50
✅ 자바에서 Serializable을 사용하는 이유1. 객체를 저장하거나 전송할 수 있게 하기 위해 Serializable을 구현하면 자바 객체를 바이트 형태로 변환할 수 있어 다음과 같은 작업이 가능합니다: 파일에 저장 네트워크를 통해 전송 메모리에 저장하여 캐싱2. 특정 상황에서 필요 RMI(Remote Method Invocation) HTTP 세션 저장 객체 복사 시✅ Serializable의 장점 간단한 구현 (implements Serializable) 자바 표준 직렬화 도구 제공 재사용성 향상✅ 사용 시 주의사항 serialVersionUID 명시 권장 모든 필드는 직렬화 가능한 타입이어야 함✅ 예제 코드// Person.javaimport java.io.Serializ..
-
정렬 알고리즘 (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✅ 권한 제..