자기소개페이지만들기

    9. redis를 이용한 간단한 캐싱 적용 해보기

    이글에서는 자기소개프로젝트에 간단하게 redis를 적용해서 캐싱하는 것을 적용할려고 합니다. 2021-05-14 프론트 엔드 서버에서 레디스를 도커로 실행한 부분을 백엔드로 이동하면서 도커를 통한 레디스 설치 내용을 추가하였습니다. 도커가 설치되어있다는 가정아래에 redis 이미지를 풀받고 docker pull redis 백그라운드로 6379 포트를 터널링하여 레디스를 컨테이너로 실행시킵니다. docker run --name introredis -d -p 6379:6379 redis 해당 컨테이너에 redis-cli로 컨테이너에 접근하면 redis 문법을 통해서 데이터를 확인할 수 있씁니다. docker exec -it redis_demoweb redis-cli 자기소개 프로젝트를 보면 실질적으로 프론트..

    8. nginx 로드밸런싱 후 swagger 제대로 적용하기

    사실 모르고 있다가 swagger를 test해볼겸 들었갔다가 발견한 버그여서 급히 고치고 포스팅을 합니다 .ㅎ 상황은 아래와 같이 실제 운영 백엔드에서 swagger-ui에 접속하여 test할때 날라가는 요청입니다. 실패하는걸 확인할 수 있는데 요청하는 주소 값이 이상합니다. 로컬 환경에서는 정상적으로 작동하는 것을 확인하였고 실제 백엔드 애플리케이션이 돌고있는 두포트 중 하나의 포트로 들어가서 ui를 해보니 정상적으로 작동하는 것을 확인하였습니다. 결국 로컬, 운영의 애플리케이션 까지 정상인 것을 확인하고 혹시 하는 마음으로 nginx 로드밸런싱 설정 파일을 가고 보니 ..... 로드밸런싱 서버 주소 설정이 이렇게 되어 있어서 swagger에서 nignx 웹서버으 주소값을 이용하는 문제였습니다. 이제 ..

    7. 도메인 구입해서 적용하기

    이제 자기소개 페이지를 적절한 도메인을 구입해서 적용해보도록 하겠습니다. 1. 도메인 구입 본인은 카페24를 통해서 도메인을 구입하였습니다. 아래 카페24 도메인센터에서 원하는 도메인을 검색합니다. hosting.cafe24.com/?controller=domain_search 원하는 도메인을 신청해서 구매해주세요. 2. 구매 완료후 나의 서비스 관리로 들어옵니다. 3. 도메인 관리 -> DNS관리로 이동합니다. 4. dns관리 클릭 도메인을 선택후 DNS관리 버튼을 클릭합니다. 5. 호스트IP 관리 선택후 레코드 추가 버튼 클릭 6. 호스트IP 추가 본인은 자기소개페이지 프론트 서버(AWS EC2 인스턴스)의 고정IP를 등록하였습니다. 7. 등록확인 정상적으로 등록된것을 확인할 수 있습니다. aws e..

    6. scouter를 통해서 백엔드 모니터링 해보기

    scouter는 LG CNS에서 개발한 APM(Application Performance Monitoring) 도구 입니다. 기본적인 사용방법이 간단하며 Windows, Mac OS X, Linux와 같은 다양한 OS를 지원합니다. 공식 github github.com/scouter-project/scouter scouter-project/scouter Scouter is an open source APM (Application Performance Management) tool. - scouter-project/scouter github.com 우선 스카우터를 설치해보겠습니다. 1. 자바 버전 체크 1.8 이상 필요 만약 자바가 없다면 자바를 다운로드 받아야합니다. 2, 스카우터 설치 아래 주소에서 최..

    5. 자기소개 백엔드에 nGrinder로 부하 발생시켜 보기

    nGrinder는 서버에 대한 부하 테스트를 하는 것으로 서버의 성능을 측정할 수 있습니다. Controller 퍼포먼스 테스팅(부하테스트)를 위해 웹 인터페이스를 제공 테스트 프로세스를 체계화 테스트 결과를 수집해 통계로 보여줌 Agent: Controller의 명령을 받아 실행. agent 모드가 실행될 때 target이 된 머신에 프로세스와 스레드를 발생시켜 부하를 발생. moniter 모드가 실행되면 대상 시스템의 cpu와 memory를 모니터링. Target: 부하테스트를 받는 머신. 이러한 ngrinder를 직접 설치하는 방식이 있지만 이방식보다 도커를 통해서 이미지를 풀받고 컨테이너로 실행하는 방식이 간편해서 도커로 진행하려고 합니다. (도커 짱!) 이번 실습은 도커가 설치되어 있다는 가정하..

    4. swagger를 통한 문서화

    Swagger(스웨거)는 개발자가 REST API 서비스를 설계, 빌드, 문서화할 수 있도록 하는 프로젝트이다. 다른 개발팀과 협업을 진행하거나 이미 구축되어있는 프로젝트에 대한 유지보수를 진행할 경우그리고 백엔드의 API를 호출하는 프론트엔드 프로그램을 제작할 경우 유용하게 사용할수있다. 스웨거의 장점으로 적용하기 쉽고 api를 테스트할수 있는 화면을 제공한다. 단점으로는 어노테이션을 추가하는 방식으로 설정해야하는 단점이 있다. 이제 프로젝트에 스웨거를 적용해보자 1. 스웨거 의존성 추가 compile (group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2'){ exclude module: 'swagger-annotations' excl..

    3. nginx로 로드 밸런싱 하기

    nginx를 통해서 로드밸런싱을 하기 이전에 로드밸런싱에 대해서 간략하게 정리하고 넘어가보려고 합니다. 로드밸런서는 서버에 가해지는 부하(=로드)를 분산(=밸런싱)해주는 장치 또는 기술을 통칭합니다. 클라이언트와 서버풀(Server Pool, 분산 네트워크를 구성하는 서버들의 그룹) 사이에 위치하며, 한 대의 서버로 부하가 집중되지 않도록 트래픽을 관리해 각각의 서버가 최적의 퍼포먼스를 보일 수 있도록 합니다. 이러한 로드밸런싱을 이해하기 위해서는 트래픽 처리를 위한 두가지 방법 scale-up과 scale-out을 먼저 이해해야 합니다. Scale-up : 서버의 성능을 향상 시킴 (cpu, ram 등 하드웨어를 업그레이드) Scale-out : 기존 서버와 동일하거나 낮은 성능의 서버를 두 대 이상 ..

    2. 자기소개 페이지 백엔드, 프론트엔트 분리하기

    앞서 자기소개페이지를 하나의 리포지토리에 백엔드와 프론트엔드를 동시에 셋팅하고 CI&CD를 하여서 이를 분리하고 각각 따로 CI&CD를 진행하도록 하였습니다. 벡엔드에는 몇몇 부분 추가와 수정이 있었습니다. 1. gradle 버전 업(gradle-4.10.2 -> gradle-6.7.1) 2. 스프링부투 버전업 (2.1.7 -> 2.4.2) 3. junit 4 -> 5 및 테스트 코드 오류 수정 4. @Buillder 패턴을 클래스 레벨이아닌 생성자 레벨에 사용하도록 수정 5. jpa 테스트를 @SpringbootTest -> @DataJpaTest로 수정 다음글에서는 travis를 통해서 2개의 포트에 웹 애플리케이션을 실행시키고 nginx를 통해서 두개의 포트로 로드밸런싱을 진행해보겠습니다. 아래는 ..