공부/Spring

2 - 게시판 CRUD 만들기 (작성)게시글 작성 - CRUD(CREATE)1 - 폼 데이터란?폼 데이터(form data) 태그에 실려 서버로 전송되는 데이터 DTO(Data Transfer Object) 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받음이 객체를 DTO(Data Transfer Object)라고 함 2 - 폼 데이터를 DTO로 받기입력 폼 만들기컨트롤러 만들기DTO 만들기폼 데이터를 DTO에 담기 1. 입력 폼 만들기 제목 내용 Submit 2. 컨트롤러 만들기@Controllerpublic class ArticleController { @GetMapping("/articles/n..
1 - 스프링부트 개요1. 스프링부트란?스프링 프레임워크대규모의 엔터프라이즈 애플리케이션시 개발환경을 제공해서 기능 개발에만 집중할 수 있도록 함서버 성능, 안정성, 보안을 매우 높은 수준으로 제공하는 도구설정이 복잡 등 단점 → 스프링 부트 출시스프링 부트스프링 프레임워크를 개선한 것(개발 환경 설정 간소화, 웹 애플리케이션 서버 내장 등)자바 웹 프로그램을 더욱 쉽고 빠르게 만들기 위해 개발된 도구원하는 기능을 찾아 조립하기만 하면 편리하게 자바 웹 프로그램을 만들 수 있음2. 스프링부트 개발 환경 설정1단계 : JDK 설치JDK(Java Development Kit): 자바 코드의 번역과 실행을 담당하는 자바 개발 도구2단계 : IDE 설치IDE(Integrated Development Envir..
JWT란? JWT(JSON Web Token) 어떠한 사용자가 아이디와 비밀번호를 사용하여 로그인을 하면,사용자의 정보를 가진 토큰이 발행되어 서버에 요청을 보낼때마다 세션, 쿠키 대신에 JWT 토큰을 이용해서 서버로 보내어 요청을 보낸 사용자가 누구인지 특정을 할 수 있다. JWT의 구조 👉 HEADER . PAYLOAD . SIGNATURE 헤더 내용 서명 Header(헤더) 토큰의 헤더는 typ와 alg 두 가지 정보로 구성된다. alg는 Signature를 해싱하기 위한 알고리즘을 지정하는 것. Payload(페이로드) 토큰의 페이로드에는 **토큰에서 사용할 정보의 조각들인 클레임(Claim)**이 담겨 있다. 클레임은 총 3가지로 나누어지며, JSON(Key/Value) 형태로 다수의 정보를 넣..
Entity Entity Class @Entity : 데이터베이스의 테이블과 매핑되는 객체라는 선언. @Table(name = “”) : 테이블 이름과 클래스 이름이 다를 때 사용. Entity Properties @id : primary key로 사용할 속성 @GeneratedValue(strategy = ) : 자동으로 값 생성 GenerationType.AUTO : (default) DBMS를 보고 JPA가 알아서 결정(오라클 : 시퀀스) GenerationType.IDENTITY : DBMS가 생성, Auto increment GenerationType.SEQUENCE : DB의 sequence 사용 @Column : property는 해당 이름으로 컬럼이 생성되는데 추가 정보를 정의한다. nam..
View Template Engine Controller가 전달해준 데이터를 기반으로 동적인 html 문서를 생성해 주는 엔진 조건문, 반복문 등으로 문서를 완성한다. 기존 jsp는 View라고 하기에는 너무 많은 기능을 사용할 수 있어서 스프링에서 스펙 아웃 되었다. Spring framework은 Thymeleaf를 기본 제공한다. 프로젝트에 추가 build.gradle 에 추가 후 Gradle refresh implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' Thymeleaf의 기본 확장자는 html html 태그에 다음과 같이 namespace를 추가하여 사용한다. 일반 html과 동일하게 동작하지만 th: 로 표기된 항..
# RESTFul Server 만들어보기 데이터베이스 없이 고정 데이터를 반환하는 Server를 작성해본다. 패키지 관리법 계층형패키지 vs 도메인형 패키지 프로젝트 규모가 작다면 어떤 방법을 사용해도 문제 없다. 프로젝트가 커진다면 도메인형 패키지를 고려하는 것이 좋다. 이 글에서는 도메인형으로 만들어볼 예정 패키지 추가 lecture - controller, dto teacher - controller, dto 각 도메인 내부에 repository, service, entity 등의 패키지가 추가된다. Lecture LectureDto package com.example.myschool.lecture.dto; import lombok.AllArgsConstructor; import lombok.Get..
Spring Boot DBCP DBCP : Data Base Connection Pool 매번 Connection을 만드는 것이 아니라 서버가 감당할 수 있을 만큼의 Connection Pool을 미리 만들어두고 이를 사용-반환 하면서 데이터베이스를 사용하는 것 Spring boot 프로젝트는 기본적으로 HikariCP를 사용한다. 설정 항목 application.propertites DB url, username, password(필수로 작성) driverClassName : jdbc class name (사용 DBMS에 따라서 달라짐) connectionTimeout : default (30초) maximumPoolSize : 최대 Connection 수 default 10 Database libra..
프로토콜 : 정해진 규약 혹은 약속 HTTP 프로토콜 통신 규약(프로토콜, Protocol) : 네트워크 상에서 복수의 컴퓨터(앱) 사이에서 데이터를 통신하기 위한 약속 HTTP(Hypertext Transfer Protocol) 서버 - 클라이언트 간의 통신 규약 클라이언트가 요청하면(Request) 서버가 데이터를 응답한다(Response) Request, Response의 규약만 준수한다면 Server, Client는 어떠한 코드로 작성되던지 HTTP 프로토콜을 만족하는 것이다. 서버 주소 서버의 주소는 http:// 로 시작한다. 도메인 이름 ( .com, .net 등) 또는 ip 주소를 사용한다. Default 포트 번호는 80번 이다. 예 http://hello.com # http 프로토콜을 ..
Future0_
'공부/Spring' 카테고리의 글 목록