본문 바로가기

개발/Spring

(9)
[Spring] JAVA Filter를 이용해 XSS(크로스 사이트 스크립트) 방어 처리 1. 등을 입력 받지 못하도록 막아야 함 2. 지금 당장 자신의 사이트가 XSS 를 방어하고 있는지 확인하는 방법 게시판 입력창 아무대서나 라고 입력하고 저장한 후, 저장한 게시글 상세화면으로 들어갔을때 해당 코드(alert 창)가 실행되는지 확인하면 간단하다. 3. 간단하게 class 2개 를 만들고 web.xml 에 간단한 filter 추가로 해결 할 수 있다. 더보기 더보기 1. CrossScriptingFilter 필터 파일 2. RequestWrapper 필터링을 실행할 파일 3. web.xml 에서 세팅 package com.greatwebguy.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servl..
[Spring Boot] Restful 방식 셋팅 Front와 Back 따로! Backend(Server) - STS STS 설정 1. 프로젝트 생성 boot 2. pom.xml에 spring boot start web + spring boot starter tomcat 추가 4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.4.RELEASE com.example SpringBoot 0.0.1-SNAPSHOT SpringBoot Demo project for Spring Boot 1.8 org.springframework.boot spring-boot-starter org.springframework.boot spring-boot-starter-test test org.junit.vintage..
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 31-40번] 31. 다음이 설명하는 테스트 레벨의 종류는 무엇인가? 사용자 요구사항에 대한 단위 모듈, 서브루틴 등을 테스트하는 단계 인터페이스 테스트, 자료구조 테스트, 실행 경로 테스트, 오류 처리 테스트가 존재 정답) 단위 테스트 참고) 수제비 정보처리기사 실기 7-12페이지 32. 다음이 설명하는 용어를 쓰시오. • 모듈의 독립성을 나타내는 개념으로, 모듈 내부 구성요소 간 연관 정도이다. • 정보은닉 개념의 확장개념으로, 하나의 모듈은 하나의 기능을 수행하는 것을 의미한다. • 유형으로는 우연적, 논리적, 시간적, ..., 기능적 ( )이/가 있다. 정답) 응집도 참고) 수제비 정보처리기사 실기 4-10 페이지 (10과목) 프로그래밍 언어 활용 - 33 33. 다음은 C언어 소스 코드이다. 출력 결과를 쓰시..
[수제비 출처] 2020년 기사 실기 출제예상 문제[Daily 11-20번] (6과목) UI설계 기본 원칙 - 11 >1. 아래는 사용자 인터페이스(UI) 설계 기본 원칙에 대한 설명이다. 괄호 ( )안에 들어갈 설계 기본 원칙을 쓰시오. - ( ① ): 누구나 쉽게 이해하고, 쉽게 사용할 수 있어야 함 - ( ② ): 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작 - ( ③ ): 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작 - ( ④ ): 사용자의 인터랙션을 최대한 포용하고, 실수를 방지할 수 있도록 제작 답) ① 직관성 ② 유효성 ③ 학습성 ④ 유연성 해설) 수제비 정보처리기기사 실기책 6-3페이지 참조 (2과목) 데이터 베이스 이상 현상(Anomaly) - 12 12. 아래는 이상 현상이 나타난 테이블이다. 괄호 ( ) 안에 들어갈 용어를 쓰시오. 정답..
[Spring Boot] Dependency Injection(DI) : '의존성 주입'이란? 인프런으로 Spring boot를 공부하다가, Test를 배우는 도중, 동일한 객체임에도 불구하고 본 파일에서의 객체와 테스트에서의 객체가 다를 경우에 대해 다루는 것을 배웠다. 이럴 때에는 디펜던시 인젝션을 통해 의존성 주입을 해준다고 한다. 공부를 하는 차원에서 간단히 메모해보겠다. 그저 나의 생각을 정리하는 부분이므로, 틀린 지식일 수 있다는 점을 감안하길 바란다. 간단히 얘기해서 어떤 상황이냐면, class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memberRepository = new MemoryMemberRepository(); } new로 해당 클래스 내에 객체 생..
[Spring Boot] 회원 서비스 : 회원가입 public Long join(Member member) { // 같은 이름이 있는 중복 회원은 안 된다 라는 가정 // command + option + v : return을 자동으로 해준다 (쌤이 가장 좋아하는 단축키) Optional result = memberRepository.findByName(member.getName()); // Optional 안에 Member가 있다고 생각하면 된다. // 한 번 감싸서 리턴해주기 때문에 ifPresent 같은 메소드도 사용 가능하다. result.ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); // Optional Tip. Optional이 예쁘지 않으니, 이렇게도 작성 가..
[Spring Boot] 회원 Repository 테스트 케이스 작성 / Assertions 기능 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 // MemberRepository.java package hello.hellopractice.repository; import hello.hellopractice.domain.Member; import java.util.List; import java.util.Optional; public interface MemberRepository { Member save(Member member); // 회원 저장 /* Optional은 JAVA 8 기능 : findById가 Null일 경우, Null을 감싸서 반환하는 기능 */ Optional findById(Long id); // id로 회원을 찾음 Optional findBy..
[Spring Boot] Hello World 부터 Getter, Setter 불러오기 / ResponseBody IntelliJ, Gradle, ThymeLeaf을 사용했다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 package hello.hellopractice.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.sprin..