스프링 부트(Spring Boot): 웹 페이지를 정상적으로 렌더링하는지 단위 테스트

스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 웹 페이지를 정상적으로 렌더링하는지 테스트하는 과정입니다. 모의 서버 환경을 만들고, 그 서버에서 웹 페이지를 요청한 후 반환되는 텍스트에 특정 내용이 포함이 되어있는지 확인합니다. 렌더링 엔진은 Thymeleaf 입니다.   참고: 프로젝트 구조, View 파일, 컨트롤러 IndexController.java package com.example.awsboard.web; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public 더보기…

스프링 부트 버전 2.3.1 에서 H2 SQL 문법을 MySQL 문법으로 변경한 후 H2 콘솔 사용하는 방법

스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 스프링 부트 버전 2.3.1 에서 H2 SQL 문법을 MySQL 문법으로 변경한 후 H2 콘솔 사용하기 위해 Datasource를 설정해야 합니다. 1) application.properties 파일에 다음 내용을 추가합니다. # H2 설정 spring.h2.console.enabled=true spring.h2.console.path=/h2 # Datasource 설정 spring.datasource.driver-class-name=org.h2.Driver spring.datasource.url=jdbc:h2:mem://localhost/~/testdb;MODE=MYSQL spring.datasource.username=sa spring.datasource.password= # sql 보기 spring.jpa.show_sql = true 더보기…

스프링 부트에서 H2를 테스트하려고 하는데 Database not found, either pre-create it … 에러가 발생할 때

macOS 기준입니다. 스프링 부트에서 H2 콘솔을 사용하려고 하는데 아래 에러가 발생하는 경우 Database … not found, either pre-create it or allow remote database creation (not recommended in secure environments) 원인은 보안 측면상 웹 콘솔 환경에서 데이터베이스를 생성할 수 없도록 막아놨기 때문에 발생한다고 합니다. 해결 방법은 홈브루(brew)를 통해 별도의 H2를 설치한 더보기…

Spring Boot: Spring JPA + H2 데이터베이스 기초 + 단위 테스트

롬복(Lombok)이 설치되어 있는것을 전제로 합니다. 스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 스프링 부트 Spring Boot: Spring JPA + H2 데이터베이스 기초 + 단위 테스트   1. build.gradle에 디펜던시 추가 dependencies { … // Spring JPA implementation ‘org.springframework.boot:spring-boot-starter-data-jpa’ runtimeOnly ‘com.h2database:h2’ // https://mvnrepository.com/artifact/javax.persistence/javax.persistence-api // 프로젝트에 javax.persistence 가 없는 경우 설치 compile 더보기…

Spring Boot: Gradle 버전 5 이상에서 롬복 설치 + 단위 테스트

스프링 부트 버전: 2.3.1 Gradle 버전: 6.4.1 1. Gradle 버전 확인 Gradle 버전이 5 이상인 경우 아래와 같이 진행하고, 4 이하라면 다른 방법으로 진행해야 합니다.   2. build.gradle에 롬복 부분 추가 dependencies { … // lombok annotationProcessor(“org.projectlombok:lombok”) compileOnly(“org.projectlombok:lombok”) … }   3. 롬복 플러그인 설치 (인텔리제이 아이디어 기준)   4. 더보기…

Spring Boot: JUnit 단위 테스트 기초 (GetMapping 테스트, 인텔리제이 기준)

스프링 부트(Spring Boot) 버전 2.3.1, Gradle 6.4.1 기준입니다. 1. 패키지를 생성 (예: com.example.awsboard.web) 2. 컨트롤러 및 GetMapping 예제 작성 package com.example.awsboard.web; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class BasicController { @GetMapping(“/hell”) public String hello() { return “Hell”; } }   3. 동일한 패키지를 src > test > java 에 패키지 더보기…

macOS 인텔리제이(IntelliJ) 커뮤니티 버전 설치 + 스프링 부트 프로젝트 생성

원래 인텔리제이 프로그램은 유료로 구독해야 하지만 커뮤니티 버전은 인텔리제이 정품의 일부 기능을 제거하고 무료로 제공합니다. 인텔리제이 (IntelliJ) 커뮤니티 버전 설치 젯브레인 툴박스 설치 – https://www.jetbrains.com/ko-kr/toolbox-app/ 젯브레인 툴박스 실행 후 타이틀바에 있는 아이콘 클릭 후, 인텔리제이 커뮤니티 버전을 설치합니다. 테마 선택 등 초기 설정을 진행합니다. 스프링부트 프로젝트 만들기 (인텔리제이 커뮤니티 버전) spring 더보기…

Spring Boot 예제: 데이터베이스 입출력(CRUD)이 가능한 RestController 제작

전체 소스 보기 프로젝트 구조 1. Spring Boot 프로젝트 생성 Spring Boot: 설치 및 기본 설정 (macOS 및 Eclipse 기준)   2. application.properties에 데이터베이스 연결 (mariadb) Spring Boot: mariadb 연결하기 (JDBC-Maven 기준)   3. VO(Value Object; DTO) 작성 (Todo.java) package com.springboot.simpletodo.vo; public class Todo { private int id; private String 더보기…

PHP: BCrypt 해싱값과 평문 비교

password_verify($plain_text, $hashed_text) $plain_text에는 평문값을 입력하며, $hashed_text에는 BCrypt 형식으로 해싱된 텍스트를 집어넣습니다. BCrypt는 특성상 해싱값에 솔트(salt)가 들어가기 때문에 일반적인 텍스트 비교는 솔트값을 모른다면 불가능하며, 위의 방법으로 대조해야 합니다. 평문과 해싱값이 일치하면 true, 아니면 false를 반환합니다.   예제 logic_proc.php 18번 라인에 있습니다. This file contains bidirectional Unicode text that may be interpreted 더보기…

자바 예제: 한글 검색 SQL 만들기 (자음 초성 검색 포함)

한글 유니코드와 관련된 내용은 이 글을 참고하세요: Java 예제: 한글 초성 중성 종성 분리 (자모분리)   만들고자 하는 SQL(mariadb)은 다음과 같습니다. SELECT `id`, `keyword`, `date`, count(keyword) as kcount FROM `recent_search_keyword` WHERE keyword >= ‘가’ and keyword <= ‘깋’ group by keyword order by keyword 자바(또는 Spring)에서 입력된 키워드를 분석해서 위 SQL의 더보기…