💻 <!-- dev -->/Spring

    [Spring] Spring의 추가적인 기능 알아보기 - log4j

    ✔️ Spring_Project에서 진행함 Logging 👉🏻 서버에서 필요에 의해 기록을 남기는 행위 👉🏻 기록할 수 있는 곳: 파일, 콘솔창, 이메일 등 Logger 👉🏻 필요에 의해 로깅을 자유자재로 수행하는 도구 👉🏻 종류: Log4j, Logback, ... 👉🏻 Spring에서는 Logging 기술을 통합하여 slf4j로 관리함 🙆🏻‍♀️ pom.xml 파일에 해당 어노테이션에 대한 내용도 있습니다 (기본 설정) ⌨️ TestClass package com.kh.spring; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; // import 시 slf4j 관련 패키지의 것으로 추가해야 함 public..

    [Spring] Spring의 추가적인 기능 알아보기 - JUnit

    ✔️ Spring_Project에서 진행함 Spring에서 기본 제공하는 폴더 👉🏻 main: 웹 사이트 제작 시 이용 👉🏻 test: 개발자가 테스트를 할 내용이 있을 때 이용 (지금부터 사용할 폴더) 애플리케이션 테스트 1️⃣ 단위 테스트 개발하는 과정에서 이루어지는 메소드 단위의 코드가 잘 작동되는지 테스트 2️⃣ 통합 테스트 모든 코드를 취합한 후에 모든 기능들이 제대로 잘 작동되는지 테스트하는 개념 3️⃣ 시스템 테스트 모든 코드들을 취합 후 비기능적 요소들이 제대로 잘 작동되는지 테스트하는 개념 ex) 사용상의 편의, 보안적 측면, 요구사항 반영, ... 4️⃣ 인수 테스트 실제 사용자의 입장에서 테스트를 수행하는 개념 ex) QA 업무 (테스트 케이스를 나열 후 검사하는 업무) JUnit 👉..

    [Spring] EL구문을 활용 - 아이디 저장 쿠키

    🔥 아이디 저장 쿠키 기능 🔥 ✔️ Spring_Project에서 진행함 📌 현재 상황 👉🏻 아이디 저장... 원츄 💻 header.jsp 👉🏻 아이디 저장 체크박스를 추가 회원가입 로그인 ${ loginUser.userName }님 환영합니다 마이페이지 로그아웃 HOME 공지사항 자유게시판 사진게시판 Login × ID : Password : 아이디 저장 로그인 취소 👉🏻 모양을 만들어 주었습니다 ❗️ 로직 생각해 보기 👉🏻 요청 시 전달값 중에 saveId가 y라면 saveId라는 키값으로 현재 아이디값으로 쿠키 생성 👉🏻 요청 시 전달값 중에 saveId가 y가 아니라면 쿠키 삭제 💻 MemberController 👉🏻 기존 메소드에서 saveId를 매개변수로 추가로 받아 줌 👉🏻 쿠키를 응답 데이..

    [Spring] Interceptor를 사용하여 페이지 허점 잡기(로그아웃 시에도 마이페이지 접속됨)

    📌 현재 상황 👉🏻 로그인하지 않았음에도 localhost:8006/spring/myPage.me 접속 시 마이페이지가 뜸 📖 Controlelr 실행 전/후의 요청을 낚아채는 Interceptor 💻 LoginInterceptor 클래스 생성 👉🏻 interceptor의 패키지 구조 하나 더 생성 후 만들 것! 👉🏻 HttpSession을 통해 loginUser가 있을 때만 접속 가능하게 만들 수도 있음 👉🏻 스프링 방식 적용도 가능함! package com.kh.spring.common.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.se..

    [Spring] Controller 실행 전/후의 요청을 낚아채는 Interceptor

    🙋🏻‍♀️ Interceptor란? 👉🏻 DispatcherServlet과 Controller 사이에서 해당 Controlelr가 실행되기 전 혹은 실행된 후에 요청을 낚아채서 실행할 내용을 작성 가능 👉🏻 Spring에서만 사용 가능함 👉🏻 주요 쓰임새: 로그인 여부 판별, 권한/직급 체크 Interceptor와 Filter의 차이점 👉🏻 존재 시점의 차이 ✔️ Filter : Servlet에서 발생한 개념 요청이 Servlet에 도달하기 전에 가로채서 선처리하는 시점 ✔️ Interceptor : Spring에서 발생한 개념 요청이 Controller의 메소드에 도달하기 전에 가로채서 선처리 또는 후처리하는 시점 요청의 흐름 사용자 👉🏻 View 👉🏻 "Filter"👉🏻 DispatcherServle..

    [Spring] Spring에서 Ajax 사용하기 3-3 활용 - 댓글 작성 기능

    🔥 댓글 작성 기능 🔥 ✔️ Spring_Project에서 진행함 📌 을 진행하기 전에 로그인 안 된 상태인데 댓글 쓸 수 있는 거 매우 킹받음 💻 boardDetailView 👉🏻 로그인 전후로 조건 나누어 로그인 전인 경우 댓글을 등록할 수 없게 막아두기 👉🏻 로그인 된 상태일 경우 댓글 작성 요청용 ajax를 사용하기 위해 addReply 함수를 script에 선언 ✔️ 내용을 적었을 때만 등록 가능하게 하는 설정 추가 👉🏻 form 태그 내에서는 required 속성이 적용되지만 form 태그 밖에서는 required 속성이 소용 없음! 👉🏻 댓글 내용이 있는지 먼저 검사 후에 있다면 ajax 요청 보내기! (textarea 요소에 value 속성값 기준으로 공백 제거 후 길이가 0이 아닌 경우)..

    [Spring] Spring에서 Ajax 사용하기 3-2 활용 - 🔥 댓글 리스트 조회 기능 🔥

    🔥 댓글 리스트 조회 기능 🔥 ✔️ Spring_Project에서 진행함 💻 pom.xml 👉🏻 Ajax 관련 두 개의 라이브러리 추가 후 Update Project com.googlecode.json-simple json-simple 1.1.1 com.google.code.gson gson 2.10 💻 Reply 👉🏻 sqlDeveloper의 테이블 참고해서 클래스 구성할 것 👉🏻 롬복을 사용하되 모든 필드를 매개변수로 가지는 생성자는 생성하지 않을 것 💡 @AllArgsConstructor를 적지 않는 이유? 보통 기본 생성자로 생성 후 setter로 넘겨 주는 꼴이기 때문에 모든 필드를 매개변수로 가지는 생성자는 만들지 않아 볼 것 package com.kh.spring.board.model.vo;..

    [Spring] Spring에서 Ajax 사용하기 3-1 - GSON 활용(조회 요청 후 조회된 회원 리스트를 응답받아서 출력해 보기)

    한 번에 ArrayList에 담아 리턴하고 싶다면 GSON을 쓰는 게 좋음! ⌨️ index.jsp 👉🏻 값이 잘 넘어오는지만 확인해 볼 용도 3. 조회 요청 후 조회된 회원 리스트를 응답받아서 출력해 보기 회원 전체 조회 아이디 이름 나이 전화번호 💻 AjaxController @ResponseBody @RequestMapping(value="ajax3.do", produces="application/json; charset=UTF-8") public String ajaxMethod3() { // DB를 통해 모든 회원의 정보를 조회했다라는 가정하에 ArrayList 생성 ArrayList list = new ArrayList(); // JDK 8 버전 쓸 때는 문법상 생략이 가능했으나 6 버전에서는 ..

    [Spring] Maven을 이용하여 GSON 다운로드

    1. Maven Repository 접속 https://mvnrepository.com/ 2. gson 검색 3. 가장 최신 버전인 2.10 버전을 쓸 것 (버전 자체가 크게 중요하지는 않은 듯함) 4. Maven 구문 복사 com.google.code.gson gson 2.10 5. pom.xml dependency 영역에 붙여넣기 6. Update Project 7. Package Explorer의 Maven Dependencies에 gson 추가된 것 확인 가능 8. Gson import 시 잘될 것

    [Spring] Spring에서 Ajax 사용하기 3 - JSON과 GSON(조회 요청 후 조회된 한 회원의 객체를 응답 받아서 출력해 보기)

    1️⃣ DB로부터의 조회 없이 데이터의 흐름만 살펴보기(JSON) 👉🏻 내가 일일이 필드명을 키값으로 지정해 데이터를 넣어 줘야 하는 JSON 👉🏻 내가 여러 개의 데이터를 보내더라도 하나의 문자열로 보임 💻 콘솔에 출력할 용도의 index.jsp 2. 조회 요청 후 조회된 한 회원의 객체를 응답 받아서 출력해 보기 조회할 회원번호: 조회 💻 Member 클래스 생성 package com.kh.ajax.model.vo; public class Member { private String userId; private String userPwd; private String userName; private int age; private String phone; public Member() { } public M..