전체 글 400

[Java] JSP (Java Server Page)

JSP (Java Server Page) JSP 란? Java Server Page이며 서버 사이드 템플릿 엔진이다. HTML안에 Java 코드나 EL, JSTL을 사용하여 동적인 페이지를 구성한다. JSP 프로젝트 생성 (인텔리제이) build.gradle 코드 추가 dependencies { // JSP implementation 'jakarta.servlet:jakarta.servlet-api' implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' implementation 'org.glassfish.web:jakart..

Java 2024.04.13

[Hanaro] 61일차 / Spring Boot (Test, Scheduler)

테스트 주도 개발 (Test Driven Development, TDD) 테스트 관련 어노테이션 및 클래스 @WebMvcTest @Controller, @RestController가 설정된 컨트롤 클래스를 테스트한다. @Service, @Repository에는 사용할 수 없다. MockMvc 웹 API를 테스트할 때 가상의 HTTP 요청을 만들어주는 클래스이다. @Disabled 테스트 메소드를 비활성화 시키는 어노테이션 @BeforeAll 테스트 클래스 기준으로 테스트 메소드들이 실행되기 전에 한번만 실행 @AfterAll 테스트 클래스 기준으로 테스트 메소드들이 실행된 후에 한번만 실행 예로 리소스 정리 같은 코드 작성 @BeforeEach 각 테스트 메소드가 실행되기 전에 매번 실행 @AfterEa..

[Hanaro] 60일차 / Spring Boot (JPA, HttpSession, Logging)

JPA 데이터 저장소 ArrayList→ MySQL 변환 실습 Model 사용 프로젝트 변환 build.gradle- dependencies 추가 Spring Data JPA, Lombok, MySQL, H2, Spring Web, Spring Web Services, Thymeleaf application.properties 추가 # thymeleaf spring.thymeleaf.cache=false # jpa spring.jpa.hibernate.ddl-auto=update spring.jpa.generate-ddl=false spring.jpa.show-sql=true spring.jpa.database-platform=org.hibernate.dialect.MySQL8Dialect # prett..

[Hanaro] 58일차 / Spring Boot (Thymeleaf Layout), JSP

Thymeleaf Layout 타임리프로 레이아웃 설정하기 application.properties 추가 spring.thymeleaf.cache=false spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.suffix=.html build.gradle 추가 implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect' template 폴더에 layout.html, first.html 생성 layout.html first.html 화면 templates 폴더 안의 fragments 폴더 생성 head.html 생성 head.html 타이틀 header.html 생성 헤더입니다. foote..

[Spring Boot] URI 어노테이션

URI 어노테이션 2가지 (경로 설정) @RequestParam URI 형식 localhost:8080/update-form?index=1 메서드 구현 // 관리자 페이지 - 회원목록 상세 출력 // localhost:8080/update-form?index=1 @GetMapping("/update-form") public String viewUpdateForm(@RequestParam int index, Model model) { model.addAttribute("index", index); Member member = memberList.get(index-1); model.addAttribute("member", member); return "update-form"; } html에서 경로이동 설정 ..

[Spring DB] DB 관련 어노테이션, 데이터 모델링 클래스

DB 관련 어노테이션 @Entity DB 테이블과 1:1로 매칭되는 JPA 클래스 @Table 클래스 이름이 테이블 이름으로 자동으로 설정되는데, 이럴때 테이블명 직접 지정할 때 사용 @Id 기본키 id 열로 사용 @GeneratedValue(strategy = GenerationType.IDENTITY) GenerationType 종류 IDENTITY MySQL, MariaDB, PostreSQL, H2DB SEQUENCE Oracle, PostreSQL AUTO 자동 선택 @Column(name=”컬럼명”) 해당 멤버 변수의 컬럼명 지정 @DateTimeFormat(pattern = “yyyy-mm-dd”) Date 데이터를 가져올 때 날짜 형식 사용자 지정 가능 @RequestParam @Model..

[Database] Spring Boot 프로젝트와 MySQL DB 연결 (MVC, DTO)

MySQL 데이터베이스 연동 MVC application.properties 추가 spring.jpa.hibernate.ddl-auto= none 기본 값, 데이터베이스 구조는 변경되지 않는다. update Hibernate 주어진 엔터티 구조에 따라 데이터베이스를 변경한다. create 매번 데이터베이스를 생성하지만 닫을 때 DROP 하지 않는다. create-drop 데이터베이스를 생성하고 SessionFactory가 닫힐 때 삭제합니다. validate 엔티티와 스키마가 다르다면 예외발생 예시 # thymeleaf spring.thymeleaf.cache=false # jpa spring.jpa.hibernate.ddl-auto=none spring.jpa.generate-ddl=false spri..

[Spring Boot] Model에서 Rest API로 변환

개념 정리 이전까지는 @RequestParam으로 사용자 입력 값을 가져오고, Model을 사용하여 addAtribute로 데이터를 보내서 출력했다. 하지만 REST API를 사용한다면 JSON 형식의 데이터를 주고 받는다. @RequestBody로 사용자 입력 값을 가져오고 @ResponseBody로 데이터를 보내준다. 그리고 View만 출력하는 ViewController와 REST API 메서드만 모여있는 ApiController를 구분해서 구현한다. ApiController 클래스는 @RestController 어노테이션을 준다. (@RestController = @Controller + @ResponseBody) RestController의 주요 메소드는 GET, POST(create), DELE..

728x90