목록Computer Science/Spring (7)
on my way
XSS (Cross-Site Scripting) 공격 대비하기: Lucy-XSS 사용 사례XSS (Cross-Site Scripting)는 웹 애플리케이션에서 자주 발생하는 취약점 중 하나로, 공격자가 악의적인 스크립트를 다른 사용자의 브라우저에서 실행하도록 만들 수 있습니다. 이를 방지하기 위해 여러 가지 방법이 존재하며, Lucy-XSS 라이브러리를 활용한 XSS 방어 방법을 소개하고, 실제 코드 예시를 통해 구현 방법을 설명하겠습니다.Lucy-XSS란?Lucy-XSS는 네이버에서 제공하는 XSS 필터링 라이브러리로, 웹 애플리케이션에서 입력된 데이터를 필터링하여 XSS 공격을 방지합니다.이 라이브러리는 XSS 공격에 사용될 수 있는 다양한 HTML 태그와 속성들을 자동으로 제거하거나 무력화하는 역할..

Spring Boot와 Thymeleaf를 이용한 화면 구성이번 포스팅에서는 Spring Boot와 Thymeleaf를 사용하여 웹 애플리케이션의 화면을 구성하는 방법에 대해 알아보겠다. Thymeleaf는 JSP를 대체하는 템플릿 엔진으로, 화면을 구성하는 데 편리한 다양한 기능을 제공한다.Thymeleaf란?Thymeleaf는 서버 사이드 자바 템플릿 엔진으로, HTML, XML, JavaScript, CSS 등을 처리할 수 있는 템플릿을 제공한다. 주로 Spring Framework와 함께 사용되며, 자연스러운 HTML을 유지하면서 동적인 웹 페이지를 쉽게 생성할 수 있게 해준다.특징:HTML 템플릿: HTML 파일을 그대로 사용하며, Thymeleaf 속성을 추가하여 동적인 콘텐츠를 생성한다.표현..

1. 프로젝트 생성필요한 의존성을 선택하고 프로젝트를 생성했다.MySQL(MariaDB) 드라이버와 함께 Lombok, Spring Boot DevTools, Spring Web, Spring Data JPA를 추가했다.2. MySQL 설정2.1 스키마 생성먼저 MySQL Workbench를 사용하여 새로운 스키마를 생성했다.스키마 이름은 bootex로 지정했다.스키마를 생성한 후, 해당 스키마에 대한 사용자 권한을 설정했다.사용자 testuser에게 bootex 스키마에 대한 모든 권한을 부여했다.2.2 사용자 권한 설정이 설정을 통해 testuser가 bootex 스키마에 접근하고 데이터를 조작할 수 있는 권한을 부여했다.2.3 연결 설정MariaDB Workbench에서 새로운 연결을 설정했다.호스..

스프링 부트 시작하기스프링 부트를 시작하기 위해 우선 Spring Initializr(http://start.spring.io/)를 이용해 프로젝트를 생성했다. Spring Initializr는 필요한 의존성 라이브러리와 기본적인 프로젝트 구조를 자동으로 생성해주는 매우 유용한 도구다.프로젝트 생성 프로젝트 생성 시 Gradle 또는 Maven을 선택할 수 있다.Gradle과 Maven은 빌드 도구로, 프로젝트의 의존성을 관리하고 빌드 과정을 자동화하는 역할을 한다.생성된 프로젝트는 압축 파일 형태로 제공되며, 이를 다운로드하여 원하는 디렉토리에 압축을 풀었다.압축 파일 유형JAR (Java ARchive): 자바 압축 파일로, 자바 프로그램을 실행할 수 있는 단일 파일로 패키징한 것이다.WAR (Web..

프로그램 동작 원리 Naver API를 받아와야 한다. 아래는 사용 예제 // NaverAPI.javapackage util;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.io.UnsupportedEncodingException;import java.net.HttpURLConnection;import java.net.MalformedURLException;import java.net.URL;import java.net.URLEncoder;public class NaverAPI { // 네이버 책 검색 API를 호출..

기술 스택Spring Framework: 5.2.25JDK: 11Tomcat: 9.0MySQL: 8.xMyBatis: ORM FrameworkLombok: 코드 축약 라이브러리JUnit: 단위 테스트 프레임워크jQuery (Ajax): 비동기 요청 처리REST API: 댓글 시스템 구현 회원CREATE TABLE Members ( memberId INT NOT NULL AUTO_INCREMENT, memberEmail VARCHAR(100) NOT NULL, memberPwd VARCHAR(100) NOT NULL, memberName VARCHAR(20) NOT NULL, memberGender CHAR(1) NOT NULL, memberBirthDate DATE..