로그인 구현 방식 변경- Session vs JWT
httpSession을 사용할 때, 사용할 메소드마다 httpSession을 넣어줄 수 있지만, 생성자 주입으로도 사용이 가능하다. userService는 스프링이 처음에 뜰 때부터 종료될 때까지 살아있다. 반면 httpSession은 유저가 접속해있는 동안에만 유지되
현재 로컬서버에서 서버를 돌릴 때는h2 인메모리 DB를 사용하고 있다.실제 운영서버에서는 mysql DB를 사용할 예정이므로, 로컬서버,개발서버,운영서버마다 설정(db정보등)들을 다르게 해주기 위해 서버마다 별도로 관리되는 yml이 필요하다.스프링서버와 연결할 프로파일
프론트서버에서 로그인 테스트를 하는 중, 쿠키가 저장이 안되서 로그인이 계속 풀려버리는 문제를 발견했다.크롬 개발자 도구를 켜서 보니 분명 백엔드서버에서 jsessionID를 구운 쿠키를 보냈고, 쿠키가 왔다는 것까지 보이지만, 저장이 되지 않고 있었다.알고보니, 크롬
민감정보가 깃헙에 올라가지 않도록 하자 우리의 dev용 서버는 db로 mysql을 연결하고 있는데, 우리의 dev용 서버 레포지토리는 public이라 민감한 db설정 정보가 담긴 파일을 그대로 올릴 수 없었다. 따라서 우리는 1) 민감정보가 들어있는 dev용 yml
트랜잭션이 끝나면 더이상 더티체킹의 대상이 되지 않는다.예를 들어,트랜잭션을 한번 더 수행했다.
Git Action을 이용한 CI아래는 Git action으로 CI를 하는 예시이다.Git action은 가장 크게는 workflow라는 단위로 진행된다.yml 파일로 CI에 대한 workflow를 설정할 수 있다.\-workflow----------jobs:잡이름:s
우리 청원 사이트에서는 청원 게시글에 여러 사용자가 동의를 할 수 있다.이 때 청원 게시글의 동의 수를 어떻게 가져올 수 있을까?Agree 객체가 청원게시글 id, 사용자 id를 가지고 있게 한다.게시글은 동의에 대해 모르는 구조이다.이 후, 해당 청원 게시글 id를

여러 명이 동시에 한 청원에 동의를 하는 경우, race Condition 문제가 생길 수 있다.따라서 exclusive lock을 걸어주어 한 쓰레드가 값을 읽고 있을 때는 다른 쓰레드가 쓰기및 읽기 접근을 하지 못하게 할 필요성이 있다.락을 걸때, 비관적 락, 낙관

우리 사이트에도 https를 붙였다.인증서는 무료로 인증서를 발급해 주는 인증기관인 lets encript 꺼를 발급받아서 사용한다.letsencript는 90일 마다 인증서를 다시 발급받아야 하는 단점이 있는데 이를 certbot으로 자동화 할수 있다. 우리 서버에

우리 청원 사이트를 배포한다음에 순조롭게 잘 되나 싶더니,알고보니 청원에 동의가 되지 않고 500 Error가 터지고 있었다..@PostMapping("/petitions/{petitionId}/agreements")이유는 프론트 측에서 동의를 하는데에 쓰이는 위와같은