본문 바로가기
728x90

분류 전체보기138

스프링 이메일 인증 이번 포스팅에서는 회원가입때 사용하기 위한 이메일 인증에 대해서 알아보겠습니다. 우선 결과를 먼저 보여드리겠습니다. 포스트맨을 이용해 emailCheck url에 email을 작성한 뒤 보냅니다. 밑의 사진은 저의 이메일주소로 온 인증번호입니다. 메일로 온 인증번호와 포스트맨의 리턴된 값이 같은 것을 알 수 있습니다. 이메일 인증을 구현하기 위해서 email 라이브러리를 먼저 가져와야 합니다. build.gradle에 위의 문장을 추가합니다. https://mvnrepository.com/repos/central 이곳에서 spring-boot-starter-mail을 검색한뒤 가장 많은 사람이 사용한 버젼을 가져오면 됩니다. 이제 추가적으로 .yml파일에 메일에 관련된 내용을 추가해야합니다. .yml 파.. 2021. 11. 12.
[백준 17928] 오큰수[java] 문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 해결 방법 스택을 어떻게 활용해야 할지 어려운 문제였다. 스택을 쓰지 않고 풀 수 있을거 같아서 풀고 제출했는데... 정답이 틀렸다니... 위의 이유로 스택을 활용하는 방법에 대해서 고민해봤습니다. stack 활용 1. 배열의 index를 스택의 원소로 이용합니다. 2. for문을 0부터 n-1까지 반복합니다. 0~n-1 -> i 3. while문을 사용하고 스택이 비어있지 않고 stack.peek값보.. 2021. 11. 5.
[백준 1874] 스택 수열 [java] 문제 https://www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 해결 방법 처음에 정말 어렵게 접근했다가 도저히 안풀려서 구글링을 하고 좌절했다....(이렇게 쉬운 문제였을 수가...) 스택과, 배열을 잘 이용하면 쉽게 풀 수 있는 문제이다. 입력받은 숫자들의 수열은 배열에 넣고 for문을 통해 1~n까지 반복한다. 이때 stack에는 1부터 순서대로 넣고 인덱스 값과 리스.. 2021. 11. 5.
jpa - 플러시, 준영속 상태 플러시 jpa의 플러시에 대해서 알아보겠습니다. 플러시란 - 영속성 컨텍스트의 변경내용을 데이터베이스에 반영합니다. 플러시가 발생할 때 - 변경 감지 - 수정된 엔티티 쓰지 지연 SQL 저장소에 등록 - 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송 (등록, 수정, 삭제 쿼리) 영속성 컨텍스트를 플러시하는 방법 - em.flush() - 직접호출합니다. - 트랜잭션 커밋 - 플러시를 자동 호출합니다. - JPQL 쿼리 실행 - 플러시 자동 호출 Member member = new Member(200L, "memberA"); em.persist(member); em.flush(); System.out.println("======짠======"); tx.commit(); 위의 코드를 실행할 경우 위의.. 2021. 10. 16.
JPA - 영속성 컨텍스트2 저번 포스팅에 이어서 영속성 컨텍스트에 대해서 더 자세하게 알아보겠습니다. 1차 캐시 - 영속성 컨텍스트 안에는 1차 캐시가 있습니다. - 1차 캐시는 @Id와 그에 매칭되는 Entity가 있습니다. - em.persist(member)를 하면 바로 데이터베이스에 저장되는 것이 아닙니다. - 우선 1차 캐시에 저장되었다가 transaction.commit를 했을 때 쿼리문이 발생합니다. // 비영속 Member member = new Member(); member.setId(100L); member.setName("hello"); // 영속 em.persist(member); System.out.println("=====쿼리문?====="); tx.commit(); 위의 코드를 실행시켰을 때 tx.com.. 2021. 10. 16.
JPA - 영속성 컨텍스트 JPA - 자바 ORM기술입니다. ORM : 객체와 관계형 데이터베이스를 매핑해주는 기술입니다. 객체 프로그래밍과 데이터베이스는 같게 설계될 수 없는 구조입니다. 현재 데이터베이스의 핵심 기술은 관계형 데이터베이스입니다. 마찬가지로 프로그래밍의 핵심은 객체입니다. 이런 두 관계 사이에서 패러다입의 불일치가 발생했습니다. 이런 불일치를 해소하기 위해 ORM기술이 사용되었고 자바에서 사용할 수 있는 JPA가 만들어졌습니다. JPA에서 가장 중요한 2가지가 있습니다. 1. 객체와 관계형 데이터베이스 매핑 2. 영속성 컨텍스트 JPA에서 영속성 컨텍스트가 베이스가 되기 때문에 영속성 컨텍스트에 대해서 우선 정리를 해보겠습니다. 영속성 컨텍스트 JPA를 이해하는데 가장 중요한 용어 "엔티티를 영구 저장하는 환경".. 2021. 10. 15.
728x90