Purple Bobblehead Bunny

Backend 81

[AJAX] JQuery 통신 데이터 전송 GET,POST,JSON,

JQuery와 AJax를 활용하여 페이지에서 데이터를 주고 받을 수 있다. JQuery를 사용하기 위해 script 주소를 추가 해 줘야 한다. 🚀 AJax GET, POST 방식으로 데이터 보내기 데이터를 받아오는 가장 기본적인 형식이다. $(document).ready(function(){ $.ajax({ type: // 데이터 전송 타입 url : // 데이터를 주고 받는 파일 주소 data: // 보낼 데이터 (데이터 값을 보내지 않을 경우 명시하지 않아도 된다) dataType: // 문자 형식으로 받기 (데이터를 받아오지 않는 경우 명시하지 않아도 된다) success: function(result){ }, error:function(){ } }) }); 1. GET $(document).re..

Backend/AJAX 2023.02.26

[Spring] 테스트 주도 개발

🚀 TDD(Test Driven Development) 란? 위키피디아에서 정의된 내용은 다음과 같다. 테스트 주도 개발(Test-driven development, TDD)은 매우 짧은 개발 사이클을 반복하는 소프트웨어 개발 프로세스 중 하나이다. 우선 개발자는 바라는 향상 또는 새로운 함수를 정의하넌 자동화된 테스트 케이스를 작성한다. 그런 후, 그 케이스를 통과하기 위한 최소한의 양의 코드를 생성한다. 그리고 마지막으로 그 새 코드를 표준에 맞도록 리팩토링한다. 이 기법을 개발 했거나 '재발견'한 것으로 인정되는 Kent Beck은 2003년에 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말했다. 사전적인 정의를 보고선 쉽게 이해가 가지 않을 수도 있다. 테스트 주도 개발(Test Dr..

Backend/SPRING 2023.02.07

[AJAX] AJAX가 뭐야?

🚀 일단 AJax를 알기 전 사전 지식이 필요하다 html,css,javascript,dom.xml 등 여러 기술 등을 함께 사용하는 개발 기법이다 AJax(Asynchronous JavaScript and XML)의 약자이다. 빠르게 동작하는 동적인 웹 페이지를 만들기 위한 개발 기법이다. JavaScript를 이용한 비동기 통신, 클라이언트와 서버간에 데이터를 주고 받는다. 웹 페이지 전체를 다시 로딩하지 않고도, 웹페이지의 일부분만을 갱신할 수 있다. 즉, AJax를 이용하면 백그라운드 영역에서 서버와 통신하여, 그 결과를 웹 페이지의 일부분에만 표시할 수 있다. 이 때 서버와는 JSON, XML, HTML, 텍스트 파일 등 다양한 형태의 데이터를 주고 받을 수 있게 된다. 쉽게 풀면, 자바스크립트..

Backend/AJAX 2023.02.06

[Spring] DAO, Mapper

🚀 Spring Framework로 프로젝트를 진행하고자 해서 패키지 구조를 짜는 도중 의문점이 생겼다 이전 프로젝트에서 패키지 구조를 Controller.java / Service.java / Mapper.java / Mapper.xml 로 사용을 했다. 이 구조가 스프링 공부를 하고 첫 프로젝트의 구조였다. 다른 구조를 찾아봤더니 Controller.java / Service.java / DAO.java / Mapper.xml 로 짜여져 있었다. 육안으로만 확인하면 Mapper.java와 DAO.java만 바꾸면 된다 생각을 하지만 자세히 보면 Mapper.java는 인터페이스 형태이고 DAO.java는 인터페이스와 클래스가 결합이 된 형태이다.그 외 다른 점이 분명 있을 것이다. 두 가지를 비교해보..

Backend/SPRING 2023.02.03

[Spring] Spring Security

🚀 인증과 인가 인가(Authorization) 인증이 완료된 사용자의 권한을 설정하는 과정 인증(Authentication) 내가 누구인지 식별하고, 입증하는 과정 접근 주체(Principal) 보호된 대상에 접근하는 시스템 역할(Role) 권한 부여 🚀 Spring Security Filter 클라이언트가 요청을 보내면 서블릿, JSP등이 처리 한다. Spring MVC에서 요청을 가장 먼저 받는 것이 DispatcherServlet인데, 요청 받기 전에 다양한 Filter가 존재할 수 있다. Filter는 클라이언트와 자원 사이에서 요청과 응답정보를 이용해 다양한 처리를 하는데에 목적이 있다. Spring Security는 다양한 기능을 가진 필터들을 10개이상 제공을 한다. 이렇게 제공되는 필터들..

Backend/SPRING 2023.02.01

[Spring] GET POST 한글처리

🚀 스프링은 한글 뿐만 아니라 UTF-8에서 지원하는 모든 국제어 사용이 자유롭고 POST/GET방식 모두 처리가 가능하다. 우선 이클립스에서 모든 문서가 UTF-8로 생성이 될 수 있도록 설정을 바꾼다. 이 설정을 하게 되면 이제 모든 문서가 UTF-로 작성이 된다. 이제 첫번째로 POST방식의 한글 처리한다 . GET에 비해 POST 방식은 ContentType만 설정해도 간단히 인코딩할 수 있다. 🚀 POST POST 전송 방식에서 인코딩은 web.xml에 스프링이 제공하는 CharacterEncodingFilter를 사용한다. encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFil..

Backend/SPRING 2023.01.31

[Spring] Model

🚀 Model key와 value로 이루어져있는 HashMap Model의 addAttribute()를 통해 view에 전달 할 데이터를 저장 Servlet의 request.setAttribute() 🚀 Model 사용 방법 @RequestMapping으로 매핑 한 메서드의 파라미터로 Model 객체 전달 model.addAttribute 를 통해 model에 값을 저장 Model은 Hashmap 형태이므로 key값을 통해 value값에 접근할 수 있다. @RequestMapping("model") public String model(@ReqeustParam member, Model model){ model.addAttribute("member", member); return "result"; } vie..

Backend/SPRING 2023.01.17

[SpringBoot] 에러 페이지 설정

개발 시 많이 보게 되는 페이지.. 에러가 발생하게 되면 해당 에러에 맞는 에러 페이지를 보여주도록 설정한다. 에러 페이지를 관리 할 Controller를 생성하여 ErrorController 인터페이스를 상속받아 에러 컨트롤러를 생성한다. package com.jun.study import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.http.HttpStatus; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import javax.servlet...

Backend/SPRINGBOOT 2023.01.09

[SpringBoot] SpringBoot, JWT 오류 The signing key's size is 240 bits which is not secure enough for the HS256 algorithm

SpringBoot JWT 공부를 하다가 오류를 발견 했다.... 오류 코드를 보면.. io.jsonwebtoken.security.WeakKeyException: The signing key's size is 240 bits which is not secure enough for the HS256 algorithm. The JWT JWA Specification (RFC 7518, Section 3.2) states that keys used with HS256 MUST have a size >= 256 bits (the key size must be greater than or equal to the hash output size). Consider using the io.jsonwebtoken.se..

Backend/SPRINGBOOT 2022.11.14

[SpringBoot] 게시판 만들기 9. 검색

JPA Repository에서는 다음과 같은 키워드로 검색 하는 기능을 제공 하고 있다. findBy(컬럼 이름) -> 컬럼에서 키워드를 넣어서 찾는다(정확한 키워드명을 검색) findBy(컬럼 이름)Containing -> 컬럼에서 키워드가 포함된 것을 찾는다(키워드 중 일부분만 검색해도 가능) 우선 Repository로 가자 return type을 Page로, 제네릭을 써서 보드 객체를 담고, 매개변수로 keyword, pageable을 담는다. pageable을 쓰는 이유는, 검색을 해도 그 검색 된 키워드 목록을 페이지로 보여주기 위해서다. Service로 가서, 추가를 해 준다. 위 설명처럼 JPA Repository에서는 findByContaining 기능이 있다. 검색 단어를 위한 searc..

Backend/SPRINGBOOT 2022.11.01