Java Selenium StaleElementReferenceException
[에러 메시지] org.openqa.selenium.StaleElementReferenceException: stale element reference: stale element not found 오늘 회사에서 크롤링을 하다가 해당 오류에 직면했다. 이 오류의 원인은 여러가지가 있기에 찾기 힘들다. DOM이 변경되어 이전에 참조한 요소...
[에러 메시지] org.openqa.selenium.StaleElementReferenceException: stale element reference: stale element not found 오늘 회사에서 크롤링을 하다가 해당 오류에 직면했다. 이 오류의 원인은 여러가지가 있기에 찾기 힘들다. DOM이 변경되어 이전에 참조한 요소...
🥝 무중단 배포 무중단 배포는 말 그대로 서비스가 중단되지 않은 상태zero-downtime로, 새로운 버전을 사용자들에게 배포하는 것을 의미한다. 무중단 배포를 하기 위해서는 최소 서버가 2대 이상을 확보해야한다. v1 서비스를 종료 시키는 시점부터 v2를 시작하기 전까지 애플리케이션은 중단된다. 이렇게 서비스가 중단되는 시간을 다운타임dow...
Spring Framework와 SpringBoot의 차이점이 무엇일까? SpringBoot는 Spring Framework를 편리하게 사용하게 도와주는 도구인 것은 알았지만 구체적으로 차이점이 무엇인지는 궁금해하지 않았다. Spring Framework Whatever happened next, the framework needed a ...
🤔 GraphQL이란? GraphQL은 페이스북에서 만든 API를 위한 쿼리 언어이다. 예를 들어 스포티파이에서 아이들을 검색하면 아티스트, 앨범, 곡 등 다양한 데이터에 대한 결과를 노출한다. REST API를 이용한다면 해당 화면을 구성하기 위해 여러 개의 엔드포인트에 검색 요청을 해야할 것이다. GET https://www.spotif...
JAR 파일 복사해서 서버 띄우기 1. 서버 빌드 $ ./gradlew clean build 2. JAR 파일 원격지에 복사하기 나는 홈에 ec2서버를 설정하였기에 홈으로 하였다. # scp <jar 파일 경로> <host 이름>:<파일이 저장될 ec2 실행경로> $ scp build/libs/TeybatGu...
최근 면접을 보면서 Spring Security에서 Session 방식과 JWT 방식의 차이점을 상태유지 관점에서 설명해달라는 질문을 들었다. 나는 동작방식에 대해서만 알았는데 상태유지 관점이라니.. 면접이 끝나고 면접 질문들을 복기하면서 찾아보았다. 그저 머리로만 알고 있었던 내용을 정리하면서 새로운 내용도 알아보려 한다. Spring Securi...
AWS로 시작하는 인프라 구축의 정석을 읽고 정리한 글입니다. 사용자가 늘어날 경우 1대의 웹 서버로는 요청을 깔끔하게 처리할 수 없는 경우가 있다. 이럴 때는 웹 서버를 여러 대 준비해서 성능을 높이는 방법을 이용할 수 있다. 이렇게 성능을 향상하는 방식을 스케일 아웃scale-out이라 부른다. 주요 역할 로드밸런서load bala...
인스턴스에 접속하기 먼저 pem 키 파일의 권한을 변경한다. $ chmod 600 pem-name.pem 그리고 아래의 명령어를 사용하여 ec2에 접속한다. AWS 인스턴스의 종류에 따라 사용자 이름(ec2-user)의 이름이 달라지므로 인스턴스 종류를 잘 확인하고 적어넣는다. $ ssh -i <pem경로> ec2-user@<...
📌 JWT 토큰 관리 JWT Token을 관리하려면 어떻게 하는 것이 좋을까? 기존에 JWT를 이용해서 로그인/회원가입 기능을 개선시킨 경험이 있다. Access Token과 Refresh Token을 발급하여 Token의 수명이 다 하면 새 Token을 발급해주면 된다. 나는 이 Token들을 관리하기 위해 Redis를 사용하였다. RedisCo...
Querydsl Spring으로 개발을 하다 보면 JPA만으론 안될 때가 많다. 나 같은 경우에는 requestBody에 있는 값이 null인지 아닌지 여부에 따라 데이터를 조회하는 경우 어떻게 처리할까 고민하다가 querydsl을 사용하게 되었다. querydsl을 사용해서 동적 쿼리를 생성하면 비즈니스 로직에서 null을 검사할 필요 없이 직관적...