🔻 Spring Boot는 단순히 실행되며, 프로덕션 제품 수준의 스프링 기반 어플리케이션을 쉽게 만들 수 있다.🔻 Spring Boot 어플리케이션에는 Spring 구성이 거의 필요하지 않다.(내장 톰켓, 디팬더시 버전 자동 다운로드)🔻 Spring Boot j
SpringBoot에 DevTools 셋팅을 해보겠습니다.DevTools의 LiveReload 기능이 제일 많이 쓰입니다. LiveReload 기능은 소스에 변화가 있을 때 application이 자동으로 브라우저 새로 고침을 트리거 할 수 있게 해주는 프로토콜입니다.
H2 데이터베이스란? 이번에는 h2 DB 연결방법을 포스팅해 본다. h2 DB는 RDBMS 지만 in-memory 방식이다. 즉, 인 메모리(in-memory) 데이터베이스의 경우, 데이터는 시스템 메모리에 저장되며 프로그램을 끄면 데이터가 없어져 버린다. 일반
spring boot는 기본적으로 jsp를 지원하지 않는다.그래서 jsp를 사용하기 위해 따로ㅓ 사용자가 설정해줘야 한다.pom.xml(maven)2.application.ymljsp 파일 경로 아래 그림처럼 src/main폴더 하위에 webapp/WEB-INF/vie
Thymeleaf와 달리 JSP는 스프링부트가 자동 설저을 지원하지 않으며 권장하지도 않는다.왜 SpringBoot는 JSP를 권장하지 않을까?우선 JSP를 사용하면 JAR 패키징을 할 수 없어 WAR 패키징을 해야 한다. 물론,WAR 패키징으로도 임베디드 톰켓으로 실
템플릿 엔진(Template Engine) Thymeleaf에 대해 알아보기 전에 먼저 템플릿 엔진에 대해 알아보자. 웹 서비스를 만들 때에는 서버의 데이터와 정적자원(html, css, image)을 조합해야 하는데, 서버에서 데이터를 보내 웹 서비스를 만드는 방법에는 크게 2가지가 있다. 1. SPA(Single Page Application) ...
이번에는 Tymeleaf를 이용하여 SpringBoot 프로젝트 실습한 내용을 기혹해봅니다.페이징 처리하는 데 Tymeleaf는 어떻게 처리하는지를 중점으로 정리해봤습니다.Gradle, MYSQL build.gradleapplication.ymlBoardBoardRep
JPQL 예시코드 Querydsl의 장점 Spring Data JPA가 기본적으로 제공해주는 CRUD 메서드 및 쿼리 메서드 기능을 사용하더라도, 원하는 조건의 데이터를 수집하기 위해서는 필연적으로 JPQL을 작성하게 됩니다. 간단한 로직을 작성하는데 큰 문제는 없
spring boot 2.3 version 이상부터는 spring-boot-starter-web 의존성 내부에 있던 validation이 사라졌습니다.때문에 사용하시는 spring boot version이 2.3 이상이라면 validation 의존성을 따로 추가해주셔야
사실 Exception 처리는 웹 어플리케이션의 입장에서 바라 보았을 때, 에러가 났을 때 처리할 수 있는 방법은 많지 않다.에러 페이지4xx Error or 5xx ErrorClient가 200 외에 처리를 하지 못 할 때는 200을 내려주고 별도의 에러 Messag
Server - Server 끼리 통신하는 방법을 배워보자. 요즘에는 MSA방식으로 웹개발이 이루어지니, Server들이 많아지면서 그들끼리 data들을 주고 받는 일이 많아졌다.그러면서 스프링은 restTemplate라는 객체로 통신하게끔 라이브러리를 지원하고 있다.
Swagger란 개발한 REST API를 편리하게 문서화해주고, 이를 통해서 관리 및 제3의 사용자가 편리하게 API를 호출해보고 테스트 할 수 있는 프로젝트이다.Spring Boot에서는 간단하게 springfox-boot-starter 를 gradle depende
application.ymlMainApplication.java결과
build.gradle web, jpa, mysql, lombok 디팬더시 적용 application.yml mysql username, password 사용자 임의 대로 설정하면 된다. todolist Model(TodoEntity) TodoEntity
일반적으로 REST API를 만들게 되면 SpringBoot에서는 @RestController를 이용하여 JSON 형식으로 값을 반환하게 됩니다. 일반적으로 데이터를 반환할 때 상태값을 넘겨주는게 ResponseEntity 객체입니다.ResponseEntity는 HTT
기본적으로 JAR, WAR 모두 Java의 jar 옵션 (java -jar)을 이용해 생성된 압축(아카이브) 파일로, 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일(리소스, 속성 파일 등)을 패키징 한 것입니다.JAVA 어플리케이션이 동작할 수 있도록 자바
https://velog.io/@mooh2jj/todoList-프로젝트-설명내에서 TodoList backend 리팩토링을 진행해보았습니다. 그전 코드는 이 블로그를 참조하면 됩니다.TodoEntityBaseTimeEntity 추가 BaseTimeEntityc
Entity - Dto mapping converting을 위해 자주 사용됩니다. map() 메서드 하나만으로 Entity - Dto 간 여러 필드가 매핑이 돼서 아주 편리합니다.build.gradleMapperConfigModelMapper를 빈으로 등록해주어야 합
SpringBoot에서는 JPA를 통해 페이징 처리를 쉽게 활용할 수 있습니다.예제 소스는 TodoList-backend 소스를 사용하였습니다.@RequestParam : pageNo, pageSize, sortBy처리 로직 정리PostResponse 만들어줘야 하는
Exception 처리에 대해서 customize한 Excetption 클래스들을 소개합니다.RuntimeException 상속한 커스터마이징한 Exception들ResourceNotFoundException(NotFount용 Exception)BlogAPIExcept
https://velog.io/@mooh2jj/SpringBoot-Exception-처리2 외에 Exception 처리에 대해서 customize한 Excetption 클래스들을 소개합니다. enum을 추가해서 더 정리가 쉽게 되었습니다. ErrorCode를
1) 필터 필터는 체인처럼 엮어있기 때문에 필터 체인이라고도 불리는데, 모든 request는 이 필터 체인을 반드시 거쳐야 한다. spring security는 filter 기반으로 동작하기 때문에(AOP) spring MVC와 분리되어 관리 및 동작한다.2) Secu
단방향 - hash 방식, 단뱡향은 복호화가 안된다는 뜻!양방향 hash -> salt를 쓰는 이유!: 똑같은 문자열의 패스워드라도 hash 값이 다르게 할 수 있다!현재는 Bcrypt 암호화 알고리즘을 많이 사용하는 추세: hash, 단방향이기 때문에!설정1) 인터페
CSRF, 기존 시스템의 보안 문제??CORS, 도메인 확장시 api로서의 문제?? http 헤더에 넣어서??Web, Mobile 등 다양한 클라이언트 : Web, Mobile 쿠키 처리 방법이 다르다.Session 의 한계Scale out의 한계 -> 서버 확장시 세
만약 로그인을 직접 구현하면 다음을 전부 구현해야 한다.로그인시 보안비밀번호 찾기비밀번호 변경회원정보 변경회원가입 시 이메일 혹은 전화번호 인증1) 로그인시 보안, 회원가입시 이메일 or 전화번호 인증 절차 비밀번호 찾기, 변경 회원정보 변경 등이 번거로운 절차 없이
src > main > java > com.example.dsgadmin > mapper > XXXMapper 파일예시resources > mybatis > XXX.xml 설정예시호출Service
Entity : ImageDataControllerServiceRepositoryUtils : ImageUtils결과POST 이미지 첨부GET파일 이미지을 Body를 통해 보여줌.
구글 계정만 있으면 Gmail SMTP Server를 통해 무료로 이메일을 전송할 수 있다.springboot를 쓸려면 다음과 같이 설정과 지메일 send code를 사용해야 한다. 간단한 테스트를 위해 작성하면 다음과 같이 작성하면 된다.gradleapplicatio
스프링의 Logging Framework에서 가장 유명한 라이브러리가 바로 slf4j(Simple Logging Facade For Java) 입니다.slf4j는 다양한 자바 로깅 시스템을 사용할 수 있도록 해주는 파사드 패턴의 인터페이스라고 생각하시면 될 것 같습니다
ELK는 위 그림과 같이, 분석 및 저장 기능을 담당하는 ElasticSearch, 수집 기능을 하는 Logstash, 이를 시각화하는 도구인 Kibana의 앞글자만 딴 단어이다. ELK는 접근성과 용이성이 좋아 최근 가장 핫한 Log 및 데이터 분석 도구들이다.1)
SpringBatch 알아야 하는 내용 정리batch란?일괄처리라는 뜻! 절대 스케쥴러라는 뜻을 포함하지 않음.스케쥴러는 batch를 보완할 때 쓰임. 즉, 주기적으로 일괄처리할 때 batch에 추가하는 것. ex. cron1) Job > 여러 Step (2종류: T
rabbitMQ 디렉토리를 만들어 Consumer, Producer 를 만들어 냅니다.ProducerConsumerController
개발자가 파일을 읽어서 설정값으로 사용할 수 있도록 개발을 해야겠지만, 스프링 부트는 이미 이런 부분을 다 구현해두었다. 개발자는 application.properties 라는 이름의 파일을 자바를 실행하는 위치에 만들어 두기만 하면 된다. 그러면 스프링이 해당 파일을
build.gradleapplication.yml