Backend/Spring 36

리덕스 Redux. 구조분해 연산자.

"" (문자열 리터럴)과 {} (중괄호)  input type="text" value="0" readOnly>input> 문자열 리터럴 "": value="0"은 입력 필드의 값을 "0"으로 설정.값이 하드코딩됨: 이 경우, value 속성은 항상 문자열 "0"을 가진다. React 상태나 props에 의존하지 않으며, 이 값은 고정되어 있다.만약 value={}로 적는다면중괄호 {}: {}를 사용하면 JavaScript 표현식을 JSX 내에서 평가하게된다. 예를들어 value={this.props.number}는 this.props.number라는 JavaScript 표현식을 평가하여 value 속성에 설정해준다.동적 값: value 속성에 설정된 값이 컴포넌트의 상태나 props에 따라 동적으로 변할..

Backend/Spring 2024.08.01

@MVC - MyBatis : 미니게시판

db작업create table springboard( num int primary key, author varchar(10) not null, title varchar(30) not null, content text, bwrite datetime default now(),  readcnt int default 0);  프로젝트 생성  프로젝트 세팅application.propertiesspring.application.name=sprweb17mybatis_miniboardserver.port=80spring.thymeleaf.cache=false#mariadb server connectspring.datasource.driver-class-name=org.mariadb.jdbc.Driverspring.d..

Backend/Spring 2024.07.22

@MVC DB연동4 : Spring DATA JPA JpaRepository CRUD

세팅작업 properties build 체크. build 고쳤을경우 build> refresh 필!   package pack.model;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.Id;import jakarta.persistence.Table;import lombok.Data;@Data@Entity@Table(name="sangdata")public class Sangpum { @Id private int code; @Column(nullable = false) private String sang; private int su; private int dan; // 변수 ff..

Backend/Spring 2024.07.22

@MVC DB연동4 : Spring DATA JPA JpaRepository

프로젝트 생성시 dependencies 세팅 이번엔 Spring Data JPA를 추가해주었다. 테이블 만들기 application.properties# JPA Hibernate settingspring.jpa.hibernate.ddl-auto=update기존에없던 테이블을 새로만들어줄때 적는 세팅코드. update는 기존유지. create하면 기존테이블을 drop하고 새로만듦.   ProductVo.javapackage pack.model;import jakarta.persistence.Column;import jakarta.persistence.Entity;import jakarta.persistence.GeneratedValue;import jakarta.persistence.GenerationTy..

Backend/Spring 2024.07.21

@MVC DB연동4 : Spring DATA JPA CrudRepository

스프링 데이터 JPA : CrudRepositorySpring Data JDBC 라이브러리는 CrudRepository 인터페이스를 제공한다.CrudRepository는 스프링 데이터 JPA에서 제공하는 기본 CRUD (Create, Read, Update, Delete) 작업을 처리하기 위한 인터페이스이다. CrudRepository는 엔티티 객체의 기본적인 데이터 조작을 간단하게 수행할 수 있도록 설계되어 있다. 다음은 CrudRepository의 주요 메소드   질문 : CrudRepository는 인터페이스인데, 예를 들어 count() 추상 메소드의 경우 count에 대한 재정의를 한 적이 없는데 어떻게 결과가 나오는 걸까? CrudRepository는 스프링 데이터 JPA에서 기본 CRUD 작..

Backend/Spring 2024.07.21

@MVC DB연동2 JdbcDaoSupport

JdbcDaoSupport를 이용해 db연동 Constructor Injection. why?   이건 (가상의) 필드주입 코드.@Repositorypublic class DataDao extends JdbcDaoSupport { @Autowired private DataSource dataSource; 생성자 주입의 가장 큰 장점이 불변성을 보장한다는점이다. 생성자주입은 객체 생성 시점에 의존성을 주입하므로, "DataSource"와 같은 의존성을 final로 선언할 수 있다. 이로인해 객체의 상태를 보장할 수 있게 된다. 그 이외에도 테스트용이성, 명확한 의존성 명세등의 장점이 있다. 필드 주입의 경우 다음과 같은 문제점이 발생할 수 있다. Testability: 필드 주입은 DataSou..

Backend/Spring 2024.07.21

Spring MVC. @RestController. @GetMapping @PostMapping @ReQuestMapping.

spring mvc 아키택쳐 ①  웹브라우저에게 정보요청을 받은 디스패쳐서블릿은 어느 컨트롤러에 해당 요청을 전송할지 결정 ② 디스패쳐 서블릿은 핸들러 매핑에 어느 컨트롤러를 사용할건지 물어봄. (URL로 링크)③ 결정된 컨트롤러는 해당요청을 수행하게 됨④ 해당요청을 처리한 컨트롤러는 디스패쳐서블릿에 결과를 보냄. 이 과정에서 ModelandView 가 생성된다. ⑤ ModelAndView는 실제 JSP정보를 갖고 있지 않기 때문에 ViewResolver가 실제 JSP이름으로 변환하여 해당 view를 검색함.⑥ 검색한 결과를 View에 전송⑦ View는 모든 과정에서 처리된 결과를 화면으로 표현함 ⑧ 마지막으로 디스패쳐서블릿이 웹브라우저에 최종결과를 출력.  ++ 동료 HS님께서 의문을 가지셨던 Mode..

Backend/Spring 2024.07.16

Application yml. Thymeleaf 란? status. jar 배포.

++ 환경설정 파일application.yml  vs application.properties properties와 yml의 대표적인 차이는 내부 구조가 있다. properties의 경우엔 각 줄마다 key=value의 형태로 이루어져 있지만, yml의 경우엔 들여쓰기로 구분되는 계층 구조 및 key: value의 형태로 이루어져 있다.  스프링 부트가 돌아가는걸 이렇게도 확인해볼수 있다.  흐름파악하기.  @어노테이션의 흐름을 파악하기 위한 실습이었다. 해당 소소파일은 sprweb5를 참고하면 된다. https://github.com/yoonah0327/spring_source GitHub - yoonah0327/spring_sourceContribute to yoonah0327/spring_sourc..

Backend/Spring 2024.07.16

@MVC DB연동 1

차례로 DB연동을 시도해보자. 우선 가장 전통적인 방법. 문제직급입력시, 직원목록과 인원수가 출력되게 하시오.   값을 입력받을 수 있도록 칸 생성및 get방식으로 넘겨준다.  index.html 직급입력 :  ListController.javapackage pack.controller;import java.util.ArrayList;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.GetMapping;impo..

Backend/Spring 2024.07.16

thymeleaf layout. 머릿글 바닥글. th:block.

Thymeleaf Layout Dialect를 이용하면 하나의 레이아웃을 여러 페이지에 똑같이 적용할 수 있다. 공통적으로 적용되는 레이아웃을 미리 만들어놓고 현재 작성 중인 페이지만 레이아웃을 끼워넣으면 된다.대표예시가 머릿글 바닥글이 있다.  파일의 흐름은 다음과 같다.index.html 타임리프연습. test5 하이퍼링크 >>> testcontroller.java로 이동@getmapping 작업. >>>show5.html로 이동.layout 링크 호출. header, footer.html을 다음의 위치에 만들어준다.  layout1.html  머릿글 바닥글은 으로 처리해주었고, 본문은 로 설정해두었다.    머릿글, 바닥글용도. 고정. 정적.  th:block은 타임리프에서 템플릿 ..

Backend/Spring 2024.07.16