목록Framework/SpringBoot (13)
능글맞은 구렁이

Spring Security? - 사용자 정의 가능한 인증 및 액세스 제어 프레임워크이다. - Spring 기반 애플리케이션을 보호하기 위한 사실상의 표준이다. JWT : JSON WEB TOKEN - RFC 7519 웹표준으로 지정 - JSON 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 web token이라고 정의할 수 있다. - 헤비하지않고 아주 간편하고 쉽게 적용할 수 있다.(사이드프로젝트에 유용) - header : signature를 해싱하기 위한 알고리즘 정보들이 담겨있다. - payload : 서버와 클라이언트가 주고받는 시스템에서 실제로 사용될 정보를 담고있다. - signature : 토큰의 유횽성검증을 위한 문자열 이 문자열을 통해 서버에서는 이토큰이 유효한 토큰인지 검증할 수..
AssertJ란? 테스트 코드를 작성하도록 돕는 라이브러리이다. AssertJ 장점? 깔끔하고 읽기 쉬운 테스트 코드를 작성할 수 있다. (개발자가 테스트를 하면서 필요하다고 상상할 수 있는 거의 모든 메소드를 제공한다. ) AssertJ 라이브러리 1. 의존성 설정 Gradle Maven java 8 testCompile 'org.assertj:assertj-core:3.6.2' org.assertj assertj-core 3.6.2 test java 7 testCompile 'org.assertj:assertj-core:2.6.0' 2. 메소드 임포트 import static org.assertj.core.api.Assertions.*; 다음과 같이 정적 임포트를 하면 AssertJ의 다양한 API를..
Thymeleaf에서 url을 표현하는 몇가지 방법 1. Absolute URL Absolute URL을 사용하면 특정 url로 직접 이동이 가능합니다. 가장 기본적인 a태그 사용법이라고 보시면 됩니다. 2. Context-relative URL 가장 많이 사용되는 유형인 context-relative URL입니다. 간단히 말해서 우리 서버 내 특정 위치로 이동이 가능하도록 하는 URL입니다. 아래 예시는 서버 내 리소스 /order/list를 호출합니다. 3. Adding Parameter URL 파라미터를 추가하는 방식의 URL입니다. https://www.test.io/order/details?id=1이런식의 파라미터를 만드는 것이죠. 파라미터를 여러개 사용하기 위해서는 아래와 같이 쉼표로 구분합니..

1. SECURITY 1. security활용 1) 인증 : 사용자 식별 예) 사원이 회사 건물 들어가기 위해 사원증, RFID 카드를 이용하여 반드시 인증을 통과. 2) 인가 : 시스템 자원에 대한 접근 통제 예) 직급, 직무에 다라 부여된 권한이 다르기 때문에 회사내에서 열람할 수 있는 문서의 종류도 제한. 직원이 특정 자원에 접근할 때 적절한 권한이 있는 지를 확인하는 과정. 2. 스프링 security 1) 기존방법 : 세션(HttpSession) 을 기반으로 로그인 에 성공한 사용자만 글등록, 목록 검색. 2) 스프링 부트에서 security사용방법 - 스프링 시큐리티를 쉽게 사용할 수 있도록 시큐리티 스타터를 제공 - 프로젝트에 적용하면 시큐리티 관련 의존성, 복잡한 시큐리티 관련 설정들들 자..
1. 화면까지 전달되는 데이터는 PageResultDTO를이용하여 화면에서는 페이지 처리를 진행한다. 2. PageResultDTO 타입으로 처리된 결과에는 시작 페이지, 끝 페이지 등 필요한 정보를 담아서 화면에서는 필요한 내용들만 찾아서 구성이 가능하도록 설계한다. 3. 화면에서 필요한 페이징 처리 구성요소 1) 10개씩 페이지 번호를 출력 2)1에서 10까지는 이전으로 가는 버튼이 나오지 않도록 3)10페이지 이후에는 이전으로 가는 링크 생성 4)마지막 페이지의 링크 계산 즉, 화면에서 시작페이지 번호(start) 화면에서 끝 페이지 번호 (end) 이전/다음이동 링크 여부 (prev, next) 현재 페이지 번호 (page) 페이징 처리를 위한 가장 필요한 정보 : 현재 사용자가 보고 있는 페이지..

프로젝트 구조 만들기 1. 주의사항: 1) 규칙정하기 :어떤 방식으로 코드를 작성할껀지 2) 파라미터, 리턴타입 등에 대한 약속정하기 2. 프로젝트의 와이어프레임 1) 프로젝트와이어 프레임이란? 화면설계서라는 뜻이다. 2) 화면설계서 ㄱ)부트스트랩/개발 ㄴ)화면의 URL, 전달되는 파라미터, 리턴타입 등 미리결정 ㄷ)데이터베이스 설계에 필요할 컬럼들 PK FK정의 ㄹ) 화면구성 :부트스트랩사용 a) 데이터베이스: guestbook b) 데이터베이스 연동 : JPA (따라서 테이블 따로 만들필요없음) c) Entity Class :1개사용 ㅁ) 구현내용 : CRUD / 페이징 / 검색 목록화면 : 전체 목록을 페이징 처리해서 조회 가능, 제목/내용/작성항목으로 검색과 페이징 처리 등록 화면: 새로운 글 등..
1. JSP의 include와 같이 특정 부분을 가져와서 포함 시키는 형태(include방법) ※ 1), 2)은 포함하는 HTML 1) th:insert - th:~~의 바깥쪽 태그는 유지하면서 태그의 시작과 끝 내부에 삽입하는 방식 2) th:replace - 기존 내용을 대체하는 방식 ※ 3) 포함되는 HTML 3) th:fragment - 포함하는 HTML에서 사용할 이름 2. 특정부분을 파라미터 형태로 전달하여 내용에 포함하는 형태(Thymeleaf가 지원해준다.) 1) th:fragment 2) 그외 th:block - HTML 의 역할을 하는 Thymeleaf지원태크 ※참고: 기존 버전에는 th:include가 있었지만 3.0버전 이후로는 사라짐 사용방법 1. include방식 포함되는 HTM..

View Templaste 란?(=View) 화면을 담당하는기술로 웹페이지를 하나의 틀로 만들고 하나의 변수를 삽입하게 한다. 즉, 틀이 되는 페이지가 변수의 값에 따라서 수많은 페이지로 바뀔수 있다. ( Dependencies : Mustache ) MVC패턴란? Model, View, Controller로 클라이언트가 서비스를 요청하면 컨트롤러가 해당 서비스를 찾아 보여줄 데이터를 Model에 저장하여 View를 통하여 보여주는 패턴~! MVC패턴이 무엇인지 실습해보자 1. 프로젝트 생성 (설정환경: Springboot, JDK8, Gradle) 2. Mustache사용하기 Mustache를 사용하기 위해선 plugins를 먼저 다운받아야 한다. Help-> FInd Action : plugins검색..
스프링 MVC와 thymeleaf 1. 스프링 부트에서 별도의 설정을 통해 JSP등을 사용할 수 있지만, 스프링 부트는 원래 목적이 보다 빠르고 편리하게 개발하는 것을 지향하기때문에 JSP보다는 쉽고 간결하게 UI를 해결할 수 있는 Template 플러그인을 사용하여 개발한다. 기본적으로 FreeMarket, Mustache등을 이용하여 개발한다. 그 중에서 thymeleaf를 사용하는이유는 첫번째. JSP와 유사하게 ${}을 별도 설정 없이 바로 사용 가능 두번째, Model에 담긴 객체를 JavaScript에서도 수비게 처리 가능 세번째, 연산, 포멧과 관련된 기능에 대한 추가 개발 없이 사용할 수 있도록 지원해준다. 네번째, 개발도구 (즉, ~~.HTML) 파일로 생성하는데 문제가 없고, 해당 파일..
1. Query란 1. 쿼리 메서드는 말 그대로 '메서드의 이름 자체가 질의문'이 되는 기능이다. 2. findBy.. / getBy... 등으로메서드의 이름을 시작하고 컬럼과 키워드를 연결하는 것으로 메서드 작성한다. 예) findByMnoBetweenOrderMnoDesc 3. 주로 findBy~~deleteBy~~getBy~~와 같은 이름으로 시작하고, 필요한 필드 조건이나 AND, OR와 같은 키워드를 조합하여 메서드의 이름만으로도 쿼리조건을 만들어 낼 수 있다. 4. 메서드의 피라미터(매개변수)는 키워드에 따라서 갯수가 결정된다. 예) Between의 경우 범위를 지정하는 두가지 값이 필요하기 때문에 findByStartDateBetween과 같은 메서드 이름을 작성할 수 있다. 실제 SQL은 ..