분류 전체보기28 [Kong's Blog] 프로젝트 회고와 리팩토링 (2) - 티스토리 크롤링 서비스 public interface TistoryCrawlerService { List getPostTitles(int pageNo); List getTargetPosts(int pageNo); List getPostUrls(int pageNo);}들어가며Kong's Blog 를 구현한 이유는 '직접 구현한 블로그를 갖고 싶다는 마음'이었습니다. 다만, 많은 사람들과 커뮤니케이션이 가능한 플랫폼인 Tistory 와 Velog 를 사용해서 글을 기록하기로 결정한 후, 기획을 바꾸어 '내가 작성한 글을 블로그에도 함께 저장할 수 있도록 하자!'로 변경하였습니다.그러나, 제가 글을 올리기로 결정한 Tistory 에서 이러한 Open API를 이젠 제공하지 않는다는 글을 확인하였습니다. 따라서 제 블.. 2025. 1. 14. [Kong's Blog] 프로젝트 회고와 리팩토링 (1) - 로그인/로그아웃 들어가며개인 블로그 프로젝트를 구현하기 위한 코드들을 뒤돌아보며 겸사겸사 리팩토링 과정을 담기위해 글을 작성하게 되었습니다.이번 글은 로그인/로그아웃이라고 하였지만, 사실상 Token Filter 를 리팩토링 하는 글입니다!관련 포스트 : https://kongdevlog.tistory.com/9 JWT 로그인 방식 구현과 생각 정리들어가며인턴을 하던 시절에 세션을 적용해보았던 것을 빼면, 한번도 세션 방식의 로그인을 구현해보지 않았습니다. 그저 관성적으로 (대부분의 로그인 방식으로 JWT를 사용하니..) 토큰 방식의kongdevlog.tistory.com 구현 코드 (JwtFilter.class)protected void doFilterInternal(HttpServletRequest request, .. 2025. 1. 12. JWT 로그인 방식 구현과 생각 정리 들어가며인턴을 하던 시절에 세션을 적용해보았던 것을 빼면, 한번도 세션 방식의 로그인을 구현해보지 않았습니다. 그저 관성적으로 (대부분의 로그인 방식으로 JWT를 사용하니..) 토큰 방식의 로그인을 구현해왔던 것 같습니다. 따라서 JWT 방식의 로그인 구현 과정(Kong's Blog)을 정리하면서 그 과정 속에서 세션과의 차이점을 정리하고자 글을 작성하게 되었습니다! 해당 내용은 저의 생각을 정리하면서 작성한 것이기 때문에 잘못된 내용이 있을 수 있습니다! (댓글 남겨주시면 감사하겠습니다..)토큰 만들기 (JwtProvider)public class UserJwtProvider { private String secret = "this-is-secret-key-value-at-least-128-byt.. 2025. 1. 11. Github Actions + EC2(.pem) with Nginx, Spring CI/CD 구축 도입 배경이번 팀 프로젝트에서는 단위 테스트(서비스 계층의 함수)를 의무적으로 작성하는 것을 목표로 하였습니다.CI/CD를 구현하지 않는다면, 각 팀원들이 맡은 기능을 구현한 PR이 올라오면, 이를 main 브랜치에 병합한 후 수동으로 EC2에 접속하여 테스트 및 빌드를 매번 수행해야 했기때문에 CI/CD를 도입하고자 하였습니다.왜 GithubActions?물론 Github Actions 말고 또 다른 많은 툴이 존재하지만, Github Actions를 선택한 가장 큰 이유는 CI/CD를 수행하기 위한 별도의 서버가 없어도 된다는 것이었습니다. 현재 프로젝트에서 할당된 서버는 EC2 1개의 프리티어 인스턴스 뿐이었기 때문에, 웹서버의 역할 뿐만 아니라 CI/CD를 함께 수행한다면 리소스가 충분하지 않을 .. 2025. 1. 10. 이전 1 2 3 4 5 다음