spring
-
MyBatisSpring Boot 🍃 2023. 12. 3. 00:01
객체 지향 언어인 자바의 관계형 데이터베이스 프로그래밍을 좀 더 쉽게 할 수 있게 도와 주는 개발 프레임 워크. JDBC를 통해 데이터베이스에 엑세스하는 작업을 캡슐화하고 일반 SQL 쿼리, 저장 프로 시저 및 고급 매핑을 지원하며 모든 JDBC 코드 및 매개 변수의 중복 작업을 제거한다. Mybatis에서는 프로그램에 있는 SQL쿼리들을 한 구성파일에 구성하여 프로그램 코드와 SQL을 분리할 수 있는 장점을 가지고 있다. 특징 복잡한 쿼리나 다이나믹한 쿼리에 강하다 프로그램 코드와 SQL 쿼리의 분리로 코드의 간결성 및 유지보수성 향상 resultType, resultClass등 Vo를 사용하지 않고 조회결과를 사용자 정의 DTO, MAP 등으로 맵핑하여 사용 할 수 있다. 보고 배운 곳 : khj93..
-
에러 기록: Spring Security Login 동작시 error Redirect에러기록 2023. 12. 3. 00:01
알고봤더니 원래 에러가 나는 부분은 아니었고, 초기 프로젝트 파일을 공유하는 과정에서 files 폴더가 공유되지 않아서 생긴 오류였던걸로 보인다. 스프링 시큐리티 언제공부하지 이 에러는 기본으로 주어진 프로젝트를 처음 실행했을 때 부터 났던 에러라서 안고치고 넘길려고 했는데, 과제를 하면서 로그인 컨트롤러를 건드리다보니 이 에러때문에 로그인 히스토리에 데이터가 저장이 안되고 로그인중인 상태가 되어버리는 경우가 생겨서 😠 건드리게 되었다.😠 😠 문제의 화면 😠 보고 배운 사이트 : inflearn/questions 방금 적어둔 사이트에 의하면 이 화면이 나타나는 이유는 리다이렉트 시 요청하는 리소스 중에서 찾지 못한 리소스가 생기기 때문인걸로 보인다. 나의 경우 로그인 후 redirect 되는 화면인 첫번..
-
에러 기록 : spring-boot-starter-mail 계정 인증 실패에러기록 2023. 12. 3. 00:01
먼저 의심해볼 부분은 계정 로그인 보안 설정에서 2단계 인증 - 앱 비밀번호를 설정 한 후, email 발송 계정의 비밀번호에 앱 비밀번호를 저장했는지 확인해 볼 것 application.yml 설정 파일에서 spring.mail.properties.mail.debug = true 로 설정해주면 관련 기능이 실행 될 때 로그를 볼 수 있다. 오 너무 신기하다 DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false 220 smtp.gmail.com ESMTP j3-.11 - gsmtp DEBUG SMTP: connected to host "smtp.gmail.com", port: 587 EHLO 192.0.0.1 250-s..
-
application.yml 파일에 속성 파일 추가Spring Boot 🍃 2023. 12. 3. 00:01
보고 배운 블로그 : oingdaddy.tistory 추가할 yml 파일 생성 추가 할 설정 파일의 이름은 하고싶은데로 작성하면 된다. 확장자만 .yml 지켜줘야됨 나는 secret.yml 이라고 작성! secret.yml email: id : your_gmail_id@gmail.com pwd : your_gamil_password application.yml 파일에 include 및 값 사용 application.yml spring: config: import: classpath:secret.yml mail: username: ${email.id} password: ${email.pwd} include가 잘 되었다면 , 변수 불러올 때 아래 처럼 자동완성으로 바로 나타난다.
-
에러 기록 : com.sun.xml.internal.ws not found에러기록 2023. 12. 3. 00:01
프로젝트를 다운받아서 실행해보려고 했는데 아래줄에 import 된 com.sun.xml.internal.ws 패키지를 찾을 수 없다는 에러가 떴다. import com.sun.xml.internal.ws.spi.db.DatabindingException; 1. pom.xml에 dependency 추가 com.sun.xml.ws jaxws-rt 4.0.1 javadoc을 보니 패키지 경로가 변경된 것 같아서 수정해주었다. https://javadoc.io/static/com.sun.xml.ws/jaxws-rt/4.0.0-M4/com.sun.xml.ws/com/sun/xml/ws/spi/db/package-summary.html 2. import문 수정 import com.sun.xml.ws.spi.db.D..
-
spring boot: 스케줄링Spring Boot 🍃 2023. 12. 2. 00:01
@Scheduled Scheduled 어노테이션 사용으로 , 이 어노테이션을 이용하여 스케줄링 프로그램을 작성할 수 있다. @Scheduled 어노테이션은 cron 표현식의 String 문자열을 인자로 받아서 동작한다. @Scheduled 어노테이션을 사용하기 위해서는 Application 클래스에 @EnableScheduling 어노테이션을 붙여주어야 한다. cron 표현식 리눅스 및 유닉스 기반 운영 체제에서 스케줄 작업을 지정하는 데 사용되는 표현식. cron 표현식 구성 초 분 시 일 월 요일 초 (0-59) 분 (0-59) 시 (0-23) 일 (1-31) 월 (1-12) 요일 (0-7, 일요일=0 또는 7) 사용 될 수 있는 기호 * : 모든 값. , : 값의 리스트. 쉼표로 구분된 여러 값을 ..
-
트랜잭션 transactionSpring Boot 🍃 2023. 12. 2. 00:01
데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 CRUD 작업 모두 데이터베이스의 상태를 변화시키게 됨 트랜잭션을 이루는 4가지 속성 속성에 대한 이해 필요 원자성 Atomicity 트랜잭션의 작업 처리 결과가 모두 DB에 반영 되거나, 모두 DB에 반영 되지 않아야 함. 일관성 Consistency 트랜잭션의 작업 처리 결과는 항상 일관적이어야 한다. 독립성 Isolation 여러개의 트랜잭션들이 하나의 DB에서 작업할 때 서로에게 영향을 미쳐선 안된다. 지속성 Durability 트랜잭션이 성공적으로 완료되어 DB에 변화가 생겼다면, 그 변화는 영구적이어야 한다. 트랜잭션 수행 후 실행될 수 있는 연산 2가지 커밋 Commit 트랜잭션이 성공적으로 작업을 완료했다고 판단하면 지금까지의 작업을..
-
스프링 부트 핵심 가이드 2주차 : 4~5장책 공부/스프링 부트 핵심 가이드 2023. 12. 2. 00:01
📖 책 정보 나를 위한 모바일 가이드 04장 스프링 부트 애플리케이션 개발하기 1. 프로젝트 생성 2. 메이븐 Maven 3. 그레이들 Gradle 4. MVC 패턴 간략하게 알아보기 5. 웹서버 port 번호 변경하기 05장 API를 작성하는 다양한 방법 1. GET / DELETE API 만들기 2. POST / PUT API 만들기 3. ResponseEntity 활용 4. Swagger : REST API 명세를 문서화 해주는 도구 5. Logback : 로깅 라이브러리 04장 스프링 부트 애플리케이션 개발하기 프로젝트 생성 메이븐 Maven 그레이들 Gradle MVC 패턴 간략하게 알아보기 웹서버 port 번호 변경하기 키워드 spring initializr 인텔리제이 IDEA 얼티밋 Arti..
-
controller에서 날짜 입력 받을때 형식 지정Spring Boot 🍃 2023. 12. 2. 00:01
@DateTimeFormat 어노테이션을 이용해서 입력받을 날짜 형식을 지정할 수 있다. void getDate( @RequestParam @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date ) { System.out.println(date); } 만약 controller에서 dateFormat으로 지정한 형태와 다른 형태인 데이터를 보내면 에러남! controller 에서 2023-05-22 형태로 데이터 입력 받을 준비를 했는데 👇 클라이언트에서 2023/05/22 형태로 보냈을 때 👇 클라이언트에서 2023-05-22 형태로 보냈을 때