Spring Boot
-
Spring boot : @SessionAttributesSpring Boot 🍃 2023. 12. 11. 00:01
보고 배운 곳 : https://sun-22.tistory.com/53 @SessionAttribute != @SessionAttributes 이 둘은 다른 동작을 하는 메서드이다. @SessionAttribute 는 컨트롤러 밖에서 생성된 세션 값에 접근 @SessionAttributes 는 컨트롤러에서 다루는 객체를 세션에 넣어 공유 이번 글에서는 @SessionAttributes 를 사용하는 것에 대해서만 학습. 학습하게 된 이유는 중복 저장 방지를 위해서다. 학습 후 느낀 점을 먼저 얘기해본다면, 이러한 방식은 아주 가벼운, 중요하지 않은 데이터를 다룰 때 적용 해보면 좋을 것 같다는 생각이 들었다. 중복 저장 테스트를 위한 처리 우선 테스트를 위해 Entity에 설정해둔 unique 옵션을 해제..
-
Spring boot : data.sqlSpring Boot 🍃 2023. 12. 11. 00:01
참고한 블로그 application.yml 설정 spring: jpa: defer-datasource-initialization: true sql: init: mode: always spring.jpa.defer-datasource-initialization sql 파일 실행을 jpa hibernate 작업 완료 후에 할 지 여부 설정 spring.sql.init.mode sql 파일을 읽을지 여부 설정. in-memory database 가 아닌 데이터베이스를 사용하게 될 경우 , true 로 해주어야 sql 파일 자동 실행 가능
-
Spring boot & thymeleaf : context path 변경Spring Boot 🍃 2023. 12. 10. 00:02
참고한 블로그 spring boot context path 설정하기 application.yml 기준 server: servlet: context-path: /mission Thymeleaf 변경될 여지가 있는 context path 적용하기 url 을 입력할 때 @{} 기호를 사용하면 된다. 적용 전 로그아웃 a태그 클릭시 url -> localhost:8080/ 적용 후 로그아웃 a태그 클릭시 url -> localhost:8080/mission/
-
Docker : Spring Boot 프로젝트 이미지 생성 & 서버 실행OS/Ubuntu 2023. 12. 10. 00:01
local : windows 1. Spring Boot Project jar 파일 생성 1-1. jar 이름 설정 spring boot 프로젝트의 build.gradle 파일을 열고, 다음의 내용을 작성해준다. bootJar { archiveFileName = '이름작성.jar' } 1-2. project build 1-2-1. intelliJ를 통해서 build 1-2-1-1. clean 인텔리제이 우측의 Gradle - Tasks - build - clean 을 순서대로 눌러준다. 1-2-1-2. build 인텔리제이 우측의 Gradle - Tasks - build - build 를 순서대로 눌러준다. jar 파일 생성 확인! 1-2-2. windows terminal로 build 1-2-2-1. 파..
-
ubuntu 22 : apache 2 + tomcat 띄우기OS/Ubuntu 2023. 12. 10. 00:01
🤨🔎 Spring Boot 내장 톰캣을 사용해야 하기 때문에 tomcat 설치는 하지 않는다. apache2가 설치되어있고 https를 적용한 상태에서 진행 본론 tomcat 실행을 위한 java 설치 └ docker 사용시 미해당 apache에 tomcat 실행 설정 도움 받은 블로그 ubuntu java 설치 연동 관련 : apache2 proxy windows jar 생성 서브도메인 보안 인증 추가 : certbot 이용 아파치 서브 도메인 설정 참고 0 아파치 서브 도메인 설정 참고 1 아파치 서브 도메인 설정 참고 2 아파치 서브 도메인 설정 참고 3 0. 도메인 계획 zhyun.kim == www.zhyun.kim 개인 블로그 띄울 계획 project.zhyun.kim 과제물 띄울 계획 고민 ..
-
Spring Boot: RetrySpring Boot 🍃 2023. 12. 9. 00:01
보고 배운 블로그: wonyong-jang.github API 서비스의 재처리에 대한 고민 API 사용시 시스템 안정성을 높이기 위해 재처리를 어떻게 처리할까에 대한 고민을 해야한다. 재처리를 할 때는 보통 다음 사항들에 대해 고려해보게 된다. 재시도를 몇 번 실행할 것인가? 재시도 하기 전에 지연 시간을 얼마나 줄 것인가? 재시도를 모두 실패했을 경우 어떻게 처리할 것인가? Spring Retry 를 사용하는 방법으로는 Annotation을 사용하는 방법과 RetryTemplate을 사용하는 방법이 있다. 자세히 알려주는 블로그: wonyong-jang.github Retry 실습 어노테이션을 사용하는 방법에 대해서만 실습 ! 의존성 추가 // Spring Retry implementation 'org..
-
Spring Boot: TestContainers 🍃🐳🧑🔧Spring Boot 🍃 2023. 12. 9. 00:01
보고 배운 인강 CRUD 테스트 코드를 작성할 때 어떤 DB 환경이 좋을지에 대한 고민 다양한 선택지들 운영환경과 유사한 스펙의 DB ( 개발 환경 DB ) 사용 👉 버전 이슈, 초기 설정 등등 초기 세팅이 복잡하다는 단점이 있다. 인메모리 DB (ex. h2) 사용 👉 운영환경과 다르기 때문에 통합테스트 환경에선 docker 또는 TestContainers 를 사용하게 된다. Docker 사용 👉 container 관리를 별도로 해주어야하기 때문에 관리포인트가 늘어나는 단점이 있고, docker를 실행하기 위해 docker-compose 와 같은 스크립트를 별도로 작성해주어야하는 단점이 있다. TestContainers 이용 👉 TestContainers 는 운영 환경과 유사한 DB 스펙으로 독립적인 ..
-
Spring Boot: profile 환경 나누기Spring Boot 🍃 2023. 12. 9. 00:01
보고 배운 인강 정리 잘 되어있는 블로그 어플리케이션 설정을 local , develop , production 환경 등으로 구분할 때 사용한다. application.yml 또는 application.properties 파일에서 내용을 작성해주면 된다. 이번 글에서는 profile을 common , local , prod 의 3가지로 구분하여 작성하고자 한다. common : 모든 환경에서 공통으로 적용 local : 테스트 환경에서 적용 prod : 운영 환경에서 적용 실습에 사용한 파일 : application.yml yml 파일에서 --- 문자열을 사용하면 문자열 위에 작성된 내용과 아래에 작성된 내용이 별도의 파일에서 작성된 것 처럼 해석된다. # 실행 할 환경 정보 작성 spring: prof..
-
Spring Boot : Spring DocSpring Boot 🍃 2023. 12. 9. 00:01
Spring Boot v2.* 최신 버전 확인을 위한 공식문서 링크 gradle implementation "org.springdoc:springdoc-openapi-ui:1.7.0" // spring-boot-starter-data-rest 사용시 추가 implementation "org.springdoc:springdoc-openapi-data-rest:1.7.0" maven org.springdoc springdoc-openapi-ui 1.7.0 org.springdoc springdoc-openapi-data-rest 1.7.0 시큐리티 인증 하지 않을 리소스 등록 httpSecurity .requestMatchers(PathRequest.toStaticResources().atCommonLoca..