Project

    [토이프로젝트] TS로 깃허브 README에 블로그 포스팅 자동 반영하기

    토이프로젝트 선정 GitHub를 경험한 개발자들은 Readme에 자신을 표현하고 홍보하기 위해 글이나 이메일, 블로그 등을 작성한 경험이 있을 것이다. 과거 내 소개글에는 기술 스택과 개인 블로그, 배지 등 글자로 꾸미는 방법으로 소개글을 작성했었는데, 이렇게 추가하는 방식은 잘 보이지도 않고 url을 방문하도록 유도하는 데도 효과적이지 않다.   그래서 깃허브 프로필을 어떻게 효과적으로 꾸밀지 고민하던 중, 소개글에 최신 블로그에 대한 대표이미지, 제목, 설명, 날짜 등으로 시각화하는 것을 목표로 잡았고 특정 시간에 새 글이 올라왔을 때 자동으로 갱신해주는 프로젝트가 있으면 좋을 것이라고 생각했다.  그래서 요즘 개인적으로 다루고 있는 TS 스택을 활용하여 매일 특정 시간에 GitHub Actions가..

    [협업프로젝트] Spring Data Elastic Search 설정 및 구현 회고 (1)

    서론협업 프로젝트를 진행하면서 검색 기능을 구현하는 단계에 들어섰다. 내가 초기 설계 단계에서 설정했던 대로 사용자의 편의성을 높이기 위해 검색 기능과 사용자별 검색 기록을 볼 수 있는 기능을 제공하기로 했으며, 초기 Figma UI를 구현하여 검색 관련 API를 설계 및 구현했다.초기에는 DB의 LIKE 기능을 이용해 '%키워드%'로 검색하고 사용자별 검색 기록을 저장해 관리하는 방식으로 충분하다고 생각했다. 하지만 추가 요구사항으로 실시간 검색어 및 일일 가장 인기 있는 장소 순위(검색어) 구현이 언급되면서 상황이 달라졌다.  추가 요구사항을 고려해보니, 처음에 계획했던 MySQL의 LIKE 기능을 이용한 '%키워드%' 검색 방식으로는 한계가 있었다. LIKE는 전체 데이터를 시간대별로 조회하는 풀 ..

    [협업프로젝트] Jenkins와 Docker로 CI/CD pipeline 구축하기 (2)

    인프라 구축 환경 AWS EC2 인스턴스 2개 활용 예정 구축용(Jenkins) 서버 : Jenkins, Git, Gradle, Docker, Jdk8 배포용 서버 : bash, Spring boot Git Repository : Github 인프라 구축을 하기 위해 배포할 서버가 필요하다. 여기서 나는 AWS 프리티어를 사용하고 있고 제일 보편적으로 AWS EC2를 많이 사용하기 때문에 EC2 인스턴스 t2.micro 리전을 생성하여 인프라 구축 환경을 만들려고 한다. 목표 다음과 같은 그림 구조로 CI/CD 파이프라인을 구축하여 자동배포가 가능하도록 할 예정이다. EC2 Jenkins 서버 구축 1. 스왑 메모리 프리티어 기준 EC2 메모리는 1GB이며, 젠킨스는 스프링 프레임워크 프로젝트 빌드시 약..

    [협업프로젝트] Jenkins와 Docker로 CI/CD pipeline 구축하기 (1)

    서론 프로젝트를 배포하면서 빌드를 하루에 한 번 이상 진행할 수 있고, 하지 않을 수 있지만 일주일, 한 달로 따지면 많은 빌드를 할 것이다. 여기서 빌드과정마다 dev 환경의 test, build를 진행하고 오류가 없는 jar 파일을, ec2 서버에 배포하려면 많은 시간을 투자해야 한다. 이러한 반복되는 과정은 자동화할 필요가 있고, 이를 구축하는 방식(CI/CD)은 다양한 도구가 존재하여 비교하고 결정하는 과정을 포스팅하기로 하였다. 이번 글의 목차로는 다음과 같다. CI/CD 개념 가장 많이 쓰이는 CI/CD jenkins, git action 비교 Jenkins를 선택한 이유 CI/CD란? CI = 지속적인 통합(Continuous Integration); 한마디로 “빌드와 테스트 자동화” CD ..

    [협업프로젝트] SpringBoot 프로젝트 EC2, RDS 적용

    서론 https://cobi-98.tistory.com/73 [협업프로젝트] SpringBoot 프로젝트 EC2 배포하기 서론 프론트엔드와 rest api 협업 프로젝트를 진행하고 있어, 백엔드 서버를 배포해야 한다. github에 있는 프로젝트를 AWS EC2 ubuntu 환경에서 git clone으로 내려받아 jar 파일을 빌드하여 서버를 배포해 cobi-98.tistory.com github에 있는 프로젝트를 AWS EC2 ubuntu 환경에서 git clone으로 내려받아 jar 파일을 빌드하여 서버를 배포하고 나니 mysql 문제가 계속 발생했다. ubuntu 환경에서는 mysql을 확인하지 못하는 이유는 개발 환경에서의 docker mysql 이미지를 사용하였기 때문이다. 여기서 두 가지의 방..