프로젝트 8

Mockito 환경에서 JavaMailSender 테스트 방법

UserService 단위 테스트 임시 패스워드 발급 테스트 진행 중 이메일이 실제로 전송이 되는지 테스트를 해야하는데 실제 객체는 Mock로 띄울 수 없기 때문에 @Spy로 UtilEmail을 실제로 띄웠다. // 실제 UserService 본코드 @Transactional public User 임시패스워드발급(PasswordResetReqDto passwordResetReqDto) { ... 생략 // 3. 임시 비밀번호 이메일로 전송 (받는 사람, 제목, 내용) utilEmail.sendEmail(userEntity.getEmail(), "임시 비밀번호 발급", "임시 비밀번호 : " + tempPw); } utilEmail.sendEmail( )을 테스트해볼건데 생성자로 JavaMailSender..

iframe 내부 클릭 금지

iframe이란 inline frame의 약자이다. iframe 요소를 이용하면 해당 웹 페이지 안에 어떠한 제한 없이 또 다른 하나의 웹 페이지를 삽입할 수 있다. iframe 내부에 크롤링한 링크를 걸어줄건데 iframe 내부에서 사이트 이동을 막아주고 싶다. 아무것도 클릭못하고 해당 게시글만 볼 수 있게!! 어떻게 해야하나 찾아보니 sandbox 속성으로 제한 사항을 걸어줄 수 있네 sandbox sandbox=" " 공백은 모든 제한 사항 적용 따옴표안에 요소들 하나씩 넣어서 제한을 해제 시켜줄 수 있음 (콤마로 구분) 1. allow-forms : 폼 데이터를 제출할 수 있도록 허용 2. allow-pointer-lock : Pointer Lock API를 사용할 수 있도록 허용 3. allow..

애자일 방법론

Agile 민첩한, 날렵한이라는 뜻을 가지고 있으며 소프트웨어 개발면에서 유연하게 일하는 방식이라고 볼 수 있다. 2001년 2월 켄트 백을 포함한 미국의 소프트웨어 개발자 17명이 미국 유타의 스노우버드 리조트에 모여 애자일 연합을 결성한다. 상호작용, 소프트웨어 중시, 고객과의 협력, 변화 대응 등 쉽게 적응하고 유연하게 대처하자는 것이 이들의 주요 목적이었다. 고객사의 갑질, 버그하나 잡으려면 결재를 기다려야 하는 갑갑한 현실 속에서 민첩하게 반응하고 신속하게 대응한다! 층층시야 결재라인을 받지 않고, 실무자가 진행한다! 라는 발상으로 시작한 것이다.

[프로젝트] 팀원과 다른 DB 사용할 때 체크해야 할 코드

build.gradle mariaDB dependencies { implementation 'org.springframework.boot:spring-boot-starter-mail' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-mustache' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'o..

[프로젝트] 인터셉터로 에러 처리 시 파일 리턴하기

인터셉터를 이용해 /s가 붙은 주소의 요청을 받으면 인증 체크를 손쉽게 했었다. // CustomApiException package site.metacoding.everytimeclone.handler.ex; public class CustomApiException extends RuntimeException { public CustomApiException(String message) { super(message); } } // CustomException package site.metacoding.everytimeclone.handler.ex; public class CustomException extends RuntimeException { public CustomException(String m..

[프로젝트] JPA 페이징 + 검색기능 구현 (fetch)

https://github.com/jaewon2336/jpa-paging-search GitHub - jaewon2336/jpa-paging-search Contribute to jaewon2336/jpa-paging-search development by creating an account on GitHub. github.com 1. 글 목록을 뿌리기 위한 간단한 화면 구현 mustache 템플릿 엔진 사용 Everytime Home logout 검색 번호 제목 내용 작성일 새글쓰기 이전 다음 2. 엔티티 생성 테스트를 위한 엔티티이기 때문에 자세한 설정은 하지 않았다. package site.metacoding.pagingsearch.domain; import java.time.LocalDateTim..

[프로젝트] Github 협업하는 방법

협업 => 코드 합치기 : CI (Continuous Integration) 요즘은 깃헙에 CI를 많이 한다. a, b, c가 협업을 시작하기 전에 가장 먼저 해야 할 일은 다음과 같다. 1. git init 2. git remote add origin 저장소 (원격 origin) 3. git pull (내려받기) = git clone 위의 1, 2, 3은 clone과 같은 과정이다. 내려받으면 모두 1번 2번의 히스토리(형상)를 갖게된다. 이방식 말고 다른 방식이 있다. 저장소를 복제(fork)하는 것이다. 대규모 협업을 할 때 사용하는 방식이다. a도 자기만의 저장소가 있고, b도, c도 자기만의 저장소에 깃헙 형상을 복제한다. 복제한 저장소를 downStream, 원 저장소를 upStream이라고 ..