Jsoup 으로는 정적 웹 에서의 크롤링만 가능하다.동적 web 크롤링을 하려면 selenium 을 사용해야 한다.🔗 selenium 으로 크롤링 하기dependency목표 urlhttps://www.acmicpc.net/ranklist크롤링을 하기위해서 대
yml 파일에 특정 값을 암호화해주는 라이브러리외부 저장소에 프로젝트를 저장하고 공개할 때 민감한 정보를 노출시키지 않기 위해서 사용한다.bean 의 값은 암호화와 복호화를 하는 method 의 name 값을 뜻한다.특정 text 를 암호화 하기 위해서 암호키가 필요하
🔗 카카오 메시지 공식 문서카카오톡 메시지 API 를 사용하면 실제 서비스가 appliation 에서 일어나기 때문에 공유 API 를 사용하는 것 보다 조금 복잡하다.친구 가져오기 API 호출가져온 값을 정리해 application 에서 클라이언트에게 직접 랜더링친구
권한 설정카톡 소셜로그인 → 토큰값 생성카카오 서버에 친구목록 요청메시지 보낼 친구 선택메시지 전송🔗 카카오 메시지 api 를 사용한 나에게 메시지 보내는 방법위 링크를 참고해 토큰값 생성까지 완료하면 된다.⚠️ 만약 약관 동의를 하지 않은 사용자가 추가 동의를 받고
🔗 카카오톡 푸시알림 공식문서왼쪽 상단 매뉴버튼 → 하단의 푸시 알림 → 활성화를 해주면 FCM key 와 APNs 인증서 또는 인증키를 등록해달라고 한다.FCM keyFirebase Cloud Messaging 의 약자로 Google 에서 제공하는 안드로이드 푸시
🔗 Kakao message API 공식 문서(https://developers.kakao.com/docs/latest/ko/message/common실질적으로는 카카오톡 앱에서 메시지 전송요청이 실행되는 방법이다.카카오가 제공하는 카카오톡 친구 목록 페이지
🔗 Line Notify로그인은 라인에서 등록한 이메일로 할 수 있다.로그인 후 My page 로 들어가면 토큰 발급 버튼을 볼수 있다.my page 에서 generate Tocken 을 누르면 자기 자신과 1:1 로 메시지를 보내는 기능만 활성화 되어있다.일단 특
JSON Web Token 라이브러리JWT 토큰을 발급받기 위해 사용했던 추상 객체로, Spring Security 라이브러리를 의존하면 사용할 수 있었다.2022 년 2월 21일에 업데이트된 Spring Security 5.7.0-M2 버전 이후부터 서비스가 종료되었
모바일 앱이 없던 시절엔 브라우저와 서버간의 통신이 대부분 이였다.클라이언트는 ID, PW 로 인증을 완료하고 브라우저에 저장된 세션값을 쿠키에 담아서 요청하는 방법으로 로그인을 유지했다.이렇게 하면 간단한 CPU 연산만으로 로그인을 유지시킬 수 있었다.모바일 앱은 기
🔗 repositoryGradle - GroovyJava 17Spring boot 3.0.6JarDependenciesSpring WebLombokSpring Boot DevTools
시크릿 키 생성시크릿 키는 되도록 길게 만드는 것이 좋다.시크릿 키는 절대로 외부에 노출되어선 안된다.git ignore 나 암호화를 사용해 보안을 유지시키자🔗 Jaypt 로 암호화 하기시크릿 키의 존재 유무를 확인하는 test 케이스 생성시크릿 키는 applicat
Map 을 JSON 으로 변환시켜주는 객체Claims (Client 정보) 를 Map 에 저장하기 때문에 변환 과정이 필요하다.Map<String, Object> claimsJWT 에 저장하려는 client 의 정보int seconds토큰의 만료 시간claims
이전 포스딩의 토큰 생성에 이어서 토큰 유효성을 검증하고, 디코딩하는 method 를 구현했다.
외부 서버와 통신을 하기위해선 HTTP 메시지를 이용해야 한다.기존에는 메시지를 작성하고 요청, 응답 받기 위해 RestTemplate 을 사용했었다.ReestTemplate 을 직접 사용할 때 매우 복잡하고, 응답 받은 값을 직접 하나하나 매핑해줘야 되는 점이 불편했
객체의 변화를 Spring Event Lestener 를 통해 Snapshot 객체에 기록🔗 적용 방법기록한 Snapshot 객체를 List 에 담아 Model 을 통해 HTML 에 전달Google Charts 를 사용해 Snapshot 에 기록된 수치를 차트로 변환
Google 에서 앱 비밀번호 설정 → Google 메일 설정google → 계정관리 → 보안 → 2단계 인증 → 앱 비밀번호 설정앱 선택 : 메일기기선택 : 비밀번호16자리 기기용 앱 비밀번호를 저장해준다.Gmail → 우측상단 톱니바퀴 → 모든 설정 보기 → 전달
Swagger 는 REST 웹 서비스의 설계, 빌드, 문서화, 소비하는 일을 도와주는 오픈소스 프레임워크이다.간편하게 프로젝트에서 지정한 URL 들을 HTML 파일로 정리해준다.spring boot 3.x.x 부터는 spring doc 을 사용해야 한다.참고로 1.7.
/actuator 경로로 브라우저를 통해 들어가면 모니터링 되고있는 메트릭 정보를 확인할 수 있는 url 을 json 형식으로 제공 하고있다.안내하고 있는 url 중 prometheus url 로 접속해보면 프로메테우스가 조회한 메트릭 정보를 확인할 수 있다.text
String value 에 암호화, 복호화 할 값을 넣어주면 됩니다.복호화 value 값에 아무값도 없다면 test 에 실패하기 때문에 평상시엔 주석으로 해뒀다 필요할 때 만 활성화 해서 확인하면 된다.
테스트 할 때 필요한 실제 객체를 흉내내는 가짜 객체를 만들어 테스트의 효율을 높히기 위해 사용한다.서비스 로직의 부하가 많이걸려, 시간도 너무 오래걸리는 경우서버간 통신이 제대로 되고있는지 확인해야하는 경우요청을 보낼 API 가 작업중인 경우 등등 ...Mock 객체
progressive web apps 의 줄임말로 모바일 환경에서 네이티브 앱과 비슷한 사용자 경험을 제공하는 기술이다.웹과 앱의 장점을 결합한 기술이다.푸시 알림 기능일반적인 앱처럼 푸시알림 기능을 사용할 수 있다.브라우저를 닫은 상태에서도 푸시알림을 보낼 수 있기
feign 을 사용하면 편리하게 외부 api 에 요청과 응답을 받을 수 있다.하지만 내부에서 컨트롤 할 수 없는 외부환경으로의 요청이기 때문에 항상 오류가 발생할 가능성을 염두해야 하고,오류처리를 필수로 해줘야 한다.Error Decoder 를 사용하면 깔끔하고 편리하
LombokEureka ServerEureka Client서버 실행 객체에 어노테이션을 설정해준다.아래 설정을 완료하고 8761 포트로 접속하면 Eureka 관리 페이지에 접속할 수 있다.서버 실행 객체에 어노테이션을 설정해준다.서버포트값에 0 을 입력하면 매번 랜덤으
Spring Cloud Gateway 를 통과하는 모든 요청에 대한 정보를 추적하고,유효한 요청인지 검증하기 위해서 Filter 기능이 필요하다.Global Filter 에서는 요청자의 ip, url 을 확인한다.Custom Filter 에서는 요청자의 JWT 의 유효
🔗 Mockito 환경설정게시물을 생성하는 객체인 PostCreateService 의 게시물 생성 메서드인 write 를 검증할 계획인다.코드를 살펴보면 DB 에 저장하기 위해 repository 를 의존하고,연관관계에 있는 객체를 생성하기 위해 다른 CreateUs
🔗 Mockito 환경설정@SpringBootTest테스트 코드를 실행하기 전에 컨테이너를 실행해 실제 앱이 실행될 때 처럼 컨피그 객체를 빈으로 등록해 컨테이너에 저장한다.@AutoConfigureMockMvcMockMvc 를 설정해 HTTP 요청을 테스트 하는데