표현식

  • 변수 : ${...}
  • 선택 변수 : *{...}
  • 메시지 : #{...}
  • Link URL : @{...}

text operation

  • 문자열 연결 : +
  • 문자 대체 : |이렇게 묶어주세요|

boolean 연산

  • Binary : and, or
  • 부정 : !, not

조건 연산

  • if-then : (if) ? (then)
  • if-then-else : (if) ? (then) : (else)
  • Default : (value) ?: (defaultValue)

 

'Web > Front' 카테고리의 다른 글

[ERROR] 500에러 관련  (0) 2021.07.30
[ERROR] static파일 적용 관련  (0) 2021.07.30
[HTML, Javascript] jQuery  (0) 2021.07.28
[HTML] Thymeleaf  (0) 2021.07.27
[HTML] 기본 태그  (0) 2021.07.27

Template Engine(템플릿 엔진)

  • 템플릿 양식과 특정 데이터 모델에 따른 입력 자료를 합성하여 결과 문서를 출력하는 소프트웨어
  • web template engine은 웹 문서가 출력되는 템플릿 엔진
  • view code(html)와 data logic code(DB connection)를 분리해줌

[출처] https://gmlwjd9405.github.io/2018/12/21/template-engine.html

종류

Layout Template Engine vs Text Template Engine

  • Layout Template Engine : 중복되는 include 코드를 사용하지 않고도 지정된 페이지 레이아웃에 따라 페이지 타일을 조합하여 완전한 페이지로 만들어줌
  • Text Template Engine : 템플릿 양식에 적절한 특정 데이터를 넣어 결과 문서를 출력(Thymeleaf, JSP)

ServerSide Template Engine vs ClientSide Template Engine

  • ServerSide Template Engine : 서버에서 DB 혹은 API에서 가져온 데이터를 미리 정의된 Template에 넣어 html을 그려 클라이언트에 전달
  • ClientSide Template Engine : html 형태로 코드를 작성할 수 있으며, 동적으로 DOM을 그리게 해주는 역할

 

필요성

  • 많은 코드를 줄일 수 있다.
  • 재사용성이 높다
  • 유지보수에 용이하다

'Web > Spring' 카테고리의 다른 글

[배경] JPA  (0) 2021.07.27
[배경] Maven  (0) 2021.07.27
[배경] Spring Security  (0) 2021.07.27
[배경] Spring 실행 순서  (0) 2021.07.27
[배경] MVC Pattern  (0) 2021.07.27

Thymeleaf

  • "웹(Servlet)환경과 웹이 아닌 환경 모두애서 작동할 수 있는 Java XML/XHTML/HTML5 template engine"
  • spring MVC구조에서 View 담당
  • src/main/resources/templates 경로를 기본 경로로 인식(의존성 추가하면)

 

간단한 사용법

 

Maven Dependencies 추가(pom.xml)

<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

 

application.yml에 추가

<!--application.yml-->
thymeleaf:
    prefix: classpath:templates/
    suffix: .html
    cache: true
    
<!--application-local.yml-->
  thymeleaf:
    cache: false

 

.html에 추가해서 사용

<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <title>Thymeleaf Test</title>
</head>
<body>
<p th:text="'타임리프 테스트 '" />
</body>
</html>

 

'Web > Front' 카테고리의 다른 글

[ERROR] 500에러 관련  (0) 2021.07.30
[ERROR] static파일 적용 관련  (0) 2021.07.30
[HTML, Javascript] jQuery  (0) 2021.07.28
[Thymeleaf] 기본 문법  (0) 2021.07.27
[HTML] 기본 태그  (0) 2021.07.27

<a>: 하나의 페이지에서 다른 페이지를 연결할 때 사용하는 하이퍼링크를 정의

href= “javascript:void(0)” 는 링크기능을 무효화

 

<body>: 해당 html문서의 텍스트, 하이퍼링크, 이미지, 리스트 등과 같은 모든 콘텐츠를 포함하는 영역(문서 안에 하나만 가능)

 

<div>: html문서에서 특정 영역이나 구획을 정의, css와 함께 자주 쓰임

 

<form>: 사용자로부터 입력을 받을 수 있는 html 입력 폼을 정의

 

<input>: 사용자로부터 입력을 받을 수 있는 입력필드를 정의

 

<nav>: 다른 페이지 또는 현재 페이지의 다른 부분과 연결되는 네비게이션 링크들의 집합

 

<ul>: 순서가 없는 html 리스트를 정의

 

<li>: html리스트에 포함되는 아이템을 정의

 

<span>: html문서에서 인라인 요소들을 하나로 묶을 때

 

<script>: client-side scripts를 정의

 

&nbsp; 공백(진짜 공백과 기호를 번갈아가면서 써라)

&it; 부등호(<)

&gt; 부등호(>)

&amp; 앰퍼샌드

&quot; 쌍따옴표(“)

 

'Web > Front' 카테고리의 다른 글

[ERROR] 500에러 관련  (0) 2021.07.30
[ERROR] static파일 적용 관련  (0) 2021.07.30
[HTML, Javascript] jQuery  (0) 2021.07.28
[Thymeleaf] 기본 문법  (0) 2021.07.27
[HTML] Thymeleaf  (0) 2021.07.27

TDD(Test-Driven Development, 테스트 주도 개발)

[출처] https://daseuul.tistory.com/30

  • fail → test pass → refactoring의 사이클을 반복
  • 기능별로 구현이 이루어지기 때문에 유지보수/디버깅이 쉽고, 기능별 모듈화에 좋다.

fail : 지금 구현하고자 하는 기능에 실패하는 테스트 코드를 작성

pass : 실패하는 테스트 코드가 통과하는 제대로 된 코드를 작성

 

Unit Test

  • 기능(method)을 테스트하는 method(TDD의 fail단계)
  • 프로그램 전체를 실행시킬 필요가 없이 테스트 코드로 확인이 가능!
  • 버그를 줄이고, 코드의 퀄리티를 높인다.

 

❗ 이 테스트에 익숙해지면 디버깅을 큰 틀(기능 단위)로 잡아서 하는 것처럼 쉽게 할 수 있을 것 같다...

(아직 디버깅이나 이런 테스트에 취약하다.. 열심히 공부해보자!) ❗

'Web' 카테고리의 다른 글

Web Development  (0) 2021.07.27

Spring Security

Spring기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임 워크

'인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리

 

Authorization(인증)과 Authentication(인가)

인증: 해당 사용자가 본인이 맞는지를 확인하는 절차

인가: 인증된 사용자가 요청한 자원에 접근 가능한지를 결정하는 절차

" 인증 성공 후 인가"

Principal(접근주체, 아이디): 보호받는 Resource에 접근하는 대상

Credential(비밀번호): Resource에 접근하는 대상의 비밀번호

" Credential 기반의 인증방식"

 

 

주요 모듈

 

[출처] https://mangkyu.tistory.com/76

[SecurityContextHolder] : 보안 주체의 세부 정보를 포함하여 응용프로그램의 현재 보안 컨텍스트에 대한 세부 정보가 저장된다.

[SecurityContext] : Authentication을 보관하는 역할

[Authentication] : 현재 접근하는 주체의 정보와 권한을 담는 인터페이스

[UsernamePasswordAuthenticationToken] : Authentication을 implements한 AbstractAuthenticationToken의 하위 클래스(user의 id = principal, password = credential)

[AuthenticationProvider] : 실제 인증에 대한 부분을 처리

[Authentication Manager] : 인증에 대한 부분을 처리

[UserDetails] : 인증에 성공하여 생성된 객체, UsernamePasswordAuthenticationToken을 생성하기위해 사용

[UserDetailsService] : UserDetails 객체를 반환(DB와 연결해 처리)

[Password Encoding] : 패스워드 암호화에 사용될 PasswordEncoder 정의

[GrantedAuthority] : 현재 사용자(principal)가 가지고 있는 권한(ROLE_ADMIN)

참고) https://mangkyu.tistory.com/76

 

[SpringBoot] Spring Security란?

대부분의 시스템에서는 회원의 관리를 하고 있고, 그에 따른 인증(Authentication)과 인가(Authorization)에 대한 처리를 해주어야 한다. Spring에서는 Spring Security라는 별도의 프레임워크에서 관련된 기능

mangkyu.tistory.com

 

'Web > Spring' 카테고리의 다른 글

[배경] Maven  (0) 2021.07.27
[배경] Template Engine  (0) 2021.07.27
[배경] Spring 실행 순서  (0) 2021.07.27
[배경] MVC Pattern  (0) 2021.07.27
[배경] Servlet  (0) 2021.07.27

+ Recent posts