약 한달 정도 밀려버린 TIL... 아 TIL이 아닌 MIL인가...
습득한 지식 및 내용
nvl("값", "지정값")
: nvl 함수는 값이 null인 경우 지정값을 출력하고, null이 아니면 원래값을 그대로 출력함
: 여기서 중요사항!!!
-> nvl
함수는 데이터가 존재할 때
사용할 수 있음
-> 그러면 테이블에 데이터가 아예 존재하지 않을 때는 어떻게??
-> 컬럼명 앞에 그룹함수(max) 씌워줌
-- 예시
select NVL(MAX(컬럼명), '0')
from table;
escapeXml="false"
보안
: escapeXml="false"
를 주면 태그를 허용하는 상태가 됨
: 기본적으로 escapeXml이라는 값이 true로 처리가 되고, 이 속성은 <
, >
와 같은 값들을 <
, >
등으로 변경하여 화면에 뿌려주게 됨
: 이것은 XSS 방어가 되지 않음. But, 태그를 원하는 대로 뿌려줘야할 경우도 있을텐데 어떻게 해야할까??
: 관련 내용을 찾아보니 웹에디터를 사용할 경우 web.xml에 filter-mapping을 걸어주고, 예외로 웹데이터에서 사용하는 URL을 제외하라고 한다.
: 그외 특정 태그만 허용한다든가 하는 하는 별도의 기능을 구현하거나 오픈소스인 Naver Lucy 필터를 적용하여 특정 태그만 허용하도록 설정하는 것도 고려할 수 있음
Eclipse의 workspace
vs IntelliJ의 project
차이
Eclipse의 workspace
: workspace 내에 여러 개 project import 가능
IntelliJ의 project
: 한 개의 project에 대해 작업
: 여러 개 project import 가능한지 확인 필요
-> 최근에 찾아보니 IntelliJ에서 멀티 프로젝트를 구성할 수 있는 Multi-Project Workspace 플러그인이 있다고 한다. 아직 사용해보지 않았는데 이클립스처럼 하나의 workspace 안에서 여러 개의 프로젝트를 열 수 있으니 편리할 것 같다.
cf) 참고자료: https://plugins.jetbrains.com/plugin/24765-multi-project-workspace
redirectAttributes.addAttribute
vs redirectAttributes.addFlashAttribute
: addAttribute
는 값을 지속적으로 사용해야할 때, addFlashAttribute
는 일회성으로 사용해야할 때 사용해야함
: addAttribute
의 경우에 requestparameters로 값을 전달하므로 addAttribute를 사용하여 일부를 추가하면 request.getParameter에서 해당 값에 액세스할 수 있음
ex) localhost:8080/요청URL?redirect한값=redirect한값
: addFlashAttribute
의 경우에는 flash 속성에 객체를 저장할 수 있음. 이는 요청 매개변수(requestparameters)로 값을 전달하지 않고 객체로 값을 그대로 전달하게 됨. 그리고 addFlashAttribute는 일회성으로 한번 사용하면 redirect 후 값이 소멸됨
ex) localhost:8080/요청URL
(뒤에 redirect한 값들은 redirect 후 소멸됨)