
Transactional을 걸어야하는 경우와 Lock
🥑 들어가며 최근 간단한 프로젝트를 시작했다. 친구와 함께 시작했던 팀프로젝트의 기간이 늘어지게 되면서 시작하게 되었다. 서버는 개발할게 아직 많이 남아있지만 TS와 Nest 공부겸 다른 팀프로젝트를 시작하기도 했고, 각자 부트캠프와 회사 일 때문에 사실상 개발기간이 1년 이상 늘어났다고 생각한다. 늘어난 기간과 함께 TS와 Nest가 어렵기도 하고...
🥑 들어가며 최근 간단한 프로젝트를 시작했다. 친구와 함께 시작했던 팀프로젝트의 기간이 늘어지게 되면서 시작하게 되었다. 서버는 개발할게 아직 많이 남아있지만 TS와 Nest 공부겸 다른 팀프로젝트를 시작하기도 했고, 각자 부트캠프와 회사 일 때문에 사실상 개발기간이 1년 이상 늘어났다고 생각한다. 늘어난 기간과 함께 TS와 Nest가 어렵기도 하고...
프로젝트를 진행하면서 API를 자동으로 문서화할 수 있지 않을까 고민하였다. 그동안 노션에 직접 적고 있었는데 직접 관리를 해줘야한다는 단점이 있었다. 별거 아닐 수 있지만 꽤나 큰 단점이다. 직접 시간을 들여 작성을 해야하고, 오타나 실수로 누락되는 부분이 있을 수 있기 때문이다. 나는 덜렁거리는 성격이라 깜빡하는 일이 많기에 해결 방법으로 자동으로...
[에러 메시지] 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 balance...
인스턴스에 접속하기 먼저 pem 키 파일의 권한을 변경한다. $ chmod 600 pem-name.pem 그리고 아래의 명령어를 사용하여 ec2에 접속한다. AWS 인스턴스의 종류에 따라 사용자 이름(ec2-user)의 이름이 달라지므로 인스턴스 종류를 잘 확인하고 적어넣는다. $ ssh -i <pem경로> ec2-user@<...