반응형 분류 전체보기714 Jenkins로 CI/CD 구축하기 개요 회사에서 maven을 이용해 war 기반으로 프로젝트를 운영하고 있었습니다. 기존에 원격 서버에 filezilla를 이용해서 손수 배포하고 있기 때문에 불편했습니다. 따라서, jenkins를 이용해서 간단한 클릭만으로 배포하도록 개선했습니다. 수분이 걸리고, 이력관리가 힘들었던 기존의 환경에서 단 몇 초 만에 배포가 되도록 개선하였습니다. Jenkins 를 선택한 이유 (Jenkins 선택 이유는 아래 글을 참고해주세요) CI 어떤 도구를 사용할까?(GitLab CI vs Jenkins vs Travis CI) Jenkins 셋팅하기 이 글은 온프레미스 환경의 윈도우 서버 Jenkins 설치를 다룹니다. 세팅은 다음과 같습니다. Jenkins에 기존에 사용했던 버전과 똑같은 jdk, maven을 설.. 2022. 6. 2. sentry.io로 에러 로그 관리하기 개요 다양한 로그 수집을 알아보다가 최근에 많이 사용하는 sentry을 알게되었습니다. sentry가 무엇이고 어떻게 사용하는지 코드로 함께 알아보겠습니다. Sentry란? Sentry란 Application 에러 트래킹, 성능 모니터링을 제공해주는 서비스입니다. 에러가 발생하면 알림을 받을 수 있고 에러에 대한 상세 정보를 트래킹 해줍니다. 특히 에러 상황을 자세히 알려주기 때문에 디버깅에 유용합니다. 또한 성능 모니터링을 이용해 각 지표들을 쉽게 확인할 수 있습니다. 다양한 플랫폼 지원 아무래도 하나의 기업은 몇 가지 기술이 아닌 수십 가지 기술을 사용할 확률이 높습니다. sentry는 방대한 플랫폼을 지원하기 때문에 어떠한 기술을 사용하여도 모두 호환이 가능합니다. 상세한 디버깅 기능 제공 전통적인.. 2022. 6. 1. Elastic Search 연동 및 테스트하기 Elastic search란? Elasticsearch는 분산 검색과 분석 도구입니다. Elasticsearch로 정형화, 비정형화, 숫자 데이터, 지역 데이터 등 다양한 데이터를 빠르게 검색할 수 있습니다. 이를 인덱싱(indexing)이라고 합니다. 단순한 데이터 검색과 데이터에서 패턴을 발견하기 위해 정보를 수집할 수 있습니다. 데이터와 쿼리의 크기가 증가하면서, Elasticsearch의 분산 환경은 배포가 그에따라 원활하게 확장하도록 합니다. indexing : 원본 데이터를 변환하여 저장하는 과정으로 데이터가 효율적으로 검색 될 수 있는 구조로 변경됩니다. indices, index : indexing 과정을 통해 생성된 결과물이자 저장소입니다. 역색인(Inverted Index) 아래는 일반.. 2022. 5. 27. RabbitMQ 이용해서 글 작성하기 오늘날, 많은 시스템은 단일 애플리케이션에서 다중 애플리케이션으로, 계산 중심에서 데이터 중심으로 확장되고 있습니다. 그에 따라, 외부 연동 서버를 이용도 증가하고 있으며 효율적인 관리 기술이 필요합니다. 다양한 외부 서버를 연동하면서 비동기 처리를 하기 위한 솔루션들이 많은데 이 중에 하나인 RabbitMQ를 알아봅니다. * AMQP(Advanced Message Queuing Protocol) 먼저, MQ (Message Queue) 란 메시지 기반의 미들웨어로 메시지를 이용하여 여러 어플리케이션, 시스템, 서비스들을 연결해주는 솔루션입니다. MOM(Message Oriented Middleware) 를 구현한 솔루션으로 비동기 메시지를 사용하는 서비스들 사이에서 데이터를 교환해주는 역할을 합니다. .. 2022. 5. 27. CI 어떤 도구를 사용할까?(GitLab CI vs Jenkins vs Travis CI) 개요 회사에서 웹 프로젝트 배포 프로세스 구축 필요성을 느꼈습니다. 가장 많이 사용하는 방법 3가지는 GitLab CI, Jenkins, Travis CI입니다. 위 3가지 모두 CI/CD에 활용되는 훌륭한 기술입니다. 각 비교를 통해 현재 회사 상황에 가장 최적의 기술을 확인해 보겠습니다. 인지도 확인하기 기술은 인기가 많을수록 다양한 사례와 레퍼런스가 있습니다. 얼마나 많이 사용되는지에 따라 기술을 선택하는 것은 위험하지만 참고하여 활용할만한 가치가 있다고 생각합니다. 인기와 팔로워 모두 Jenkins가 압도적입니다. Jenkins > Travis CI > GitLab CI로 볼 수 있습니다. 다음은 stackoverflow에서 트렌드를 검색했습니다. 검색어에 제한이 있긴 하지만, Jenkins의 토.. 2022. 5. 25. lombok local에서 실행하기 lombok이 설치된 경로로 가서 java -jar로 jar 파일을 실행시킵니다. 설치가 뜨면, 아래와 같이 IDE의 경로를 추가하고 설치를 합니다. STS 위치에 lombok 파일이 생성되었습니다. eclipse.ini에서 lombok이 추가되었음을 알 수 있습니다. 2022. 5. 24. cerbot로 SSL 인증서 만들기 개요 ubuntu 18.04 환경에서 개인 프로젝트를 하던 중, Spring Security를 활용한 로그인을 하던 중 http에 https 적용하고 싶었습니다. 실제 운영에서는 https 적용을 위해 한국 전자인증에서 도메인에 맞는 SSL을 구입하여 적용하였습니다. Cerbot이란? Cerbot는 무료로 TLS인증서를 발급받을 수 있는 라이브러리로 Let's Encrypt라는 비영리 기관에서 관리됩니다. 루트 도매인, 서브 도매인, 와일드카드 도매인 인증서까지 무료로 발급 받을 수 있습니다. Apache와 nginx에 TLS/SSL 설정이 자동으로 되어 nginx에 많이 사용됩니다. 시스템 관리자로 웹서버에서 다이렉트로 사용됩니다. cerbot 설치하기 //certbot 을 설치 하기 위해 먼저 epe.. 2022. 5. 24. application.yml 분리하기 application.yml 설정이 테스트환경과 운영환경 등으로 나눠질 수 있습니다. 이 설정은 여러개의 파일로 나눠도 되고, 하나의 파일에도 가능합니다 먼저 여러개의 파일로 분리하는 방법입니다. # application.yml spring: profiles: dev # application-dev.yml spring: profiles: dev ... #application-prod.yml spring: profiles: prod ... application.yml에서 사용하고자 하는 profiles에 명칭을 써주면 됩니다. 만약에 intellij에서 강제로 항상 특정 profiles 실행을 하고 싶다면, Edit Configurations에서 새로운 환경을 추가합니다 다음과 같이 기본 App설정에서 A.. 2022. 5. 22. jenkins build시, slack 알람 연동하기 새로운 채널을 만든 다음에 다음과 같이 Slack 찾아보기에서 앱에 들어갑니다. 새로운 채널로 test-notification을 만듭니다. Jenkins CI 에서 추가를 누르면 브라우저로 연동이 됩니다. 내가 만든 test-notification에 Jenkins CI를 연동합니다 그 다음에 어떻게 연동해야하는지 친절하게 설명이 나와있으므로 추가해주면 됩니다. Jenkins의 플러그인 설치로 들어가 slack notification을 설치합니다. 설치가 끝나면 자동으로 재시작을 합니다. Jenkins 관리 - 시스템 설정에서 slack으로 이동해 환경설정을 합니다 workspace는 Jenkins 사이트에 있는 팀 하위 도메인을 입력합니다 default channel은 내가 만든 채널이름을 입력합니다 s.. 2022. 5. 22. 이전 1 ··· 16 17 18 19 20 21 22 ··· 80 다음 반응형