스프링부트 8

스프링부트: Junit을 이용해 테스트 하기

Test란? 개인이 간단하게 어떤 서비스를 구현한다고 하면 코드는 길어봐야 수천줄 정도 나오겠지만, 회사의 서비스는 만줄은 우습게 넘어갈 정도로 방대한 양의 코드가 동작한다. 헌데 긴 코드에 무턱대고 새로운 코드를 끼워넣으면, 그 코드가 어떻게 작동하는지 확인하기 위해 재실행하는데 리소스가 많이 들 뿐만 아니라, 오류가 발생할 경우 원인이 무엇인지 찾기도 어려워진다. 이런 일을 방지하기 위해 프로그램을 작은 단위로 쪼개서 옳바르게 동작하는지 미리 확인하는 것이 바로 Test다. 과거에는 개발자들이 직접 테스트 환경을 만들어야 했으나, 테스트를 필요로하는 개발자들이 늘어남에 따라 스프링부트에서는 테스트 환경이 내장되어 있기에 따로 할일은 없다. 방법(인텔리제이에서 만드는 방법) 1. 테스트하고 싶은 클래스..

공부/javascript 2023.01.27

JPA 사용법(1) -- JPA 사용법

JPA란? 자바와 관계지향 데이터베이스간의 언어적인 차이를 해소시키기 위한 api. 관계지향적인 DB를 객체지향적으로 해석해주며, 객체지향적인 JAVA를 관계지향적으로 변환해주는 일종의 번역기 역할을 한다고 생각하면 된다. JDBC와의 차이 JDBC는 데이터베이스와 소통하기 위한 api이고, JPA는 소통하는 관계지향적 db를 객체지향적으로 바꾸는 api로 기술적인 개념이라고 봐야한다. 형식(이미 db에 만들어진 테이블이 있다고 가정하겠다) 1. 테이블과 1:1대응될 테이블과 이름이 같은 Entity클래스를 하나 만든다. package com.study.springboot; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lo..

공부/springboot 2023.01.26

MVC -- Model(2) : 데이터 받아오기

형식 1. html파일에서 보내고자 데이터들을 보내는 요청사항 이름을 지정해준다. 2. @RequestMapping 등을 이용하여 요청사항에 대한 응답 함수를 짠다. 코드를 직접 보며 확인해보자. 로그인 화면입니다. 데이터 입력 html 로그인 결과 화면 username 값 password 값 데이터 출력 html 데이터 수신의 3가지 방식 1. 기본형 - HttpServletRequest를 통한 입력값 받기 @RequestMapping("/loginAction1") public String loginAction1(HttpServletRequest request, Model model){ // 받아온 데이터 변수로 저장 String username = request.getParameter("usernam..

공부/springboot 2023.01.25

데이터의 전송 타입( Get/ Post)

form태그를 통한 이해 html form태그의 method를 통해 입력받은 데이터의 전송 타입을 정할수 있다. post와 get 둘로 나뉘어 지는데, 두 방식의 가장 큰 차이점은 데이터의 가시성이다. get방식은 서버로 보내는 데이터를 URL에 담아서 전송한다. 따라서 사용자는 물론 제 3자도 어떤 데이터를 보냈는지 쉽게 확인 가능하다. post방식은 서버로 보낼때 HTTP메세지의 바디 태그에 담아서 보낸다. 여서기 HTTP메세지는 데이터의 전송 목적으로만 일시적으로 사용되는 일종의 포장 박스처럼 생각하면 된다. 그러나 은닉일뿐 암호화가 아니기에 보안에 더 뛰어나다고는 볼 수 없다. 둘의 차이를 확인해보자. 1.get방식 2. post 방식 언뜻 보면 post방식이 더 보안적일것 같지만, post방식 ..

공부/springboot 2023.01.25

MVC -- Model(1): 데이터 전송하기

Model 클래스 model 클래스는 mvc패턴을 따라 웹을 설계할수 있도록 스프링프레임워크에서 지원하는 클래스이다. mvc의 m을 맡고잇는 model은 데이터를 보관하는 역할을 한다. model은 데이터를 controller로 보내거나 받으며, controller는 데이터를 가공하고, view는 받은 데이터를 토대로 화면을 구현하거나, 입력된 controller로 데이터를 보낸다. model에 의해 불러와지는 데이터는 크게 4가지 종류로 존재한다. 내장객체의 생명주기 1. application : 웹브라우져 닫을때까지 객체가 살아있다. 2. session : 로그아웃을 하거나 브라우져를 닫을때까지 살아있다. 3. request : 요청에 대한 응답이 있을때까지 살아있다. 4. model : reques..

공부/springboot 2023.01.25

타임리프 사용법

StaticWeb(정적 웹페이지) static폴더에 html파일을 만들어야 한다 안의 데이터가 입력값이나 다른 요인에 따라 동적으로 변하지 않는 정적인 웹페이지를 말한다. **스프링부트는 따로 맵핑해주지 않아도 초기 값으로 index.html을 초기 페이지로 감지한다. 이는 templates폴더에 있건, resources폴더에 바로 넣건 알아서 찾아진다. **맵핑(mapping) : 미리 url을 지정해두고, 사용자로부터 어떤 요청이 왔을때 자동적으로 해당 url로 가도록 설정하는 것. 스프링부트에 오신 것을 환영합니다. 서브페이지로 이동 파일 다운로드 링크(png,jpg,pdf,zip) 이미지파일 다운로드 링크 서브페이지 입니다. package com.study.springboot; import org..

공부/java 2023.01.22

46일차 복습

public class Member { private String name; public Member(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } //싱글톤 만들기 private static Member m = null; public static Member getInstance() { if( m == null ){ m = new Member("홍길동"); } return m; } } 먼저 들어가기에 앞서, 설명을 위한 Member클래스부터 만들자. name필드를 포함한 생성자 함수, get/set함수, 싱글톤 패턴이..

공부/springboot 2023.01.19

45일차 복습

스프링부트 복습. 집에서 복습하고 티스토리에 정리까지할 시간이 도저히 나지 않아서 먼저 복습부터 했다. 이번 설 연휴에 한번 티스토리를 정리하면서 대대적인 개편을 해봐야겠다. 기존의 스프링에서 사용자 편의성을 크게 증가시킨것이 스프링 부트다.따라서 기능적인 차이는 크게 없으나, 스프링 부트를 사용하는 것이 훨씬 편하다. 스프링은 자바에서 서버를 구동하고 코드를 실행하기 위한 프레임 워크다. 자바로 돌아가는 서버와 구동코드라고 생각하면 된다. 시작 https://start.spring.io/ 위 사이트에서 손쉽게 스프링부트 시작 셋팅을 할 수있다. 1. Maven vs Gradle 필요한 라이브러리를 가져오고, 빌드를 관리하는 툴이다. 과거에는 Maven이 주류였으나, 이제는 Gradle가 대세가 되었다...

공부/springboot 2023.01.17