목록전체 글 (194)
코알못
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bf1upp/btq3U6C9smv/iQIpxdr597cElm6DhkPbs0/img.png)
셀레니움을 이용하면 브라우저 컨트롤이 가능하다! 여러 브라우저중에 저자는 크롬을 사용하여 브라우저 캡쳐 기능을 구현해보겠다! 일단 크롬드라이버를 설치해보자! (서버에 설치된 크롬 버전에 맞게 설치 해야한다.) - 설치 링크 : chromedriver.chromium.org/downloads ChromeDriver - WebDriver for Chrome - Downloads Current Releases If you are using Chrome version 91, please download ChromeDriver 91.0.4472.19 If you are using Chrome version 90, please download ChromeDriver 90.0.4430.24 If you are usi..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/VMeab/btq3STkz5wz/SX29HKfPqHqz0CfYd16bG0/img.png)
인증 정보를 주고 받는 방식은 두가지 방법이 있다. 쿠키 & 세션 JWT 하나씩 알아보자! # 쿠키 & 세션 1. 로그인 2. 사용자 정보 요청 따라서 쿠키의 만료시간에 따라 로그인 유지가 된다. 쿠키의 만료시간은 서버에서 쿠키 전달시 만료시간 설정 가능! (만료시간 설정 안할 시 브라우저 종료 시점에 쿠키가 사라짐) 개발자 도구를 열어 확인을 하면 session(세션 쿠키) 이라 저장된 값은 유효시간을 설정하지 않은 값이며, 기한이 있는것(지속 쿠키)은 쿠키 시간을 설정 한 것이다. 세션 쿠키는 메모리에 저장되어 메모리 유지 까지만 계속적으로 유효 하기에 브라우저 종료시 제거 되며, 지속 쿠키는 파일로 저장 되기에 브라우저 종료 되어도 유효 하다. 세션 쿠키는 메모리에 저장되기에 파일로 저장되는 지속 ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cuFaDC/btq2NUjEkf8/6jNG0JYcrcwi3haNUvYwj0/img.png)
이전 포스팅에서는 JenKins를 통해 배포 자동화(co-de.tistory.com/17) 하는 방법을 배웠습니다. 이번 시간에서는 배포 후에 필수로 해야하는 테스트까지 자동화하여 배포 시간을 단축하는 방법을 다뤄보겠습니다. 그전에 다룰 서비스에 대해 간단하게 설명 하면 아래와 같습니다. NewMan : postman 에서 만든 테스트 케이스를 CLI 상에서 실행 시킬수 있도록 하는 서비스 PostMan : 테스트를 쉽게 할 수 있도록 도와주는 서비스 일단 포스트맨을 통해 테스트 케이스 collection 을 작성합니다. [잠깐!] 포스트 맨이 설치 되어 있지 않다면 설치 해주세요 :: www.postman.com/downloads/ - Postman 으로 collection 을 만들고, 테스트 케이스를..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/rhNXu/btq2OPPcpxv/aE23zrL6gK4V9e2BXW1TT1/img.png)
간단한 프로젝트를 만들어 보겠다! - 모듈 3개 core-util : 공통으로 사용하는 메소드 모듈 run-a , run-b: base64로 암호화된 값을 보내면 디코딩 한 후 해당 메세지에 모듈명을 붙인뒤, Base64로 암호화해서 리턴하는 모듈 예) ran-A 모듈에 "코린이" base64 인코딩 하여 요청 > "코린이:run-A" base64 인코딩 한 값 리턴 - 각각 실행 가능한 2개의 Jar 파일 만들기 run-a.jar run-b.jar - 실제 실행해보기 만들어보자! :: github.com/works-code/multi-module works-code/multi-module multi-module. Contribute to works-code/multi-module development ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cLjS8g/btq2Jy28Jbm/0NPAZY1VRvf1l3rRAKdAd1/img.png)
우리에게는 5가지의 업무가 있다! 이걸 자동화 해주는게 바로 Jenkins! 아래 자동화에 등록할 업무를 살펴보자! [젠킨스 서버] 젠킨스와 깃을 연동하여 해당 브랜치에 맞는 소스를 받아온다. [젠킨스 서버] 받아온 소스를 gradle 을 통해 빌드 하여 jar 파일로 만든다. [젠킨스 서버] 운영 서버에 있는 프로세스 STOP 스크립트를 실행한다. [젠킨스 서버 > 운영 서버] 만든 jar 파일을 운영 서버 라이브러리 폴더에 옮긴다. [젠킨스 서버] 운영 서버에 있는 프로세스 START 스크립트를 실행한다. 배포 완료! 운영 서버에 띄울 프로젝트는 아래 이전 포스팅한 간단한 프로젝트로 진행 하겠다. :: co-de.tistory.com/18 [Gradle] 실행 가능한 JAR 파일 만들기 (with 스..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/d0Vvo1/btq2Nebco0D/AEiLt13o5xQvt8gWxrK76K/img.png)
설치를 해보자! 혹시 homebrew 가 설치되지 않았다면 설치 하자 (brew.sh/index_ko) * homebrew : mac 전용 패키지 관리자 (쉽게 여러 서비스를 설치할 수 있다.) Homebrew로 젠킨스를 설치하는 방법은 간단하다 $brew install jenkins 제어 명령어는 아래와 같으며, 젠킨스를 시작해보자 $ brew services start jenkins // 젠킨스 시작 $ brew services stop jenkins // 젠킨스 종료 $ brew services restart jenkins //젠킨스 재시작 서비스 시작 후 아래와 같이 젠킨스 서버 UI에 접속한다. (만약 로컬에서 띄웠다면 localhost 입력하면 됩니다.) - http://[젠킨스 서버 IP]:..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/BwTWE/btrskFCuExf/XPLHO7rsNPAW5wCgjfwg11/img.png)
이전 글에서 [5분 안에 구축하는 Redis(레디스)] 레디스에 대해 알아 보았습니다 이번 시간에는 Redis Sentinel 에 대해 알아 봅시다! Redis Sentinel 은 장애 발생시 운영 서비스에 영향 없도록(=고가용성) 레디스 마스터 모니터링 및 자동 장애 극복 조치 (=Fail-over) 해주는 서비스 입니다. 아래와 같은 아키텍쳐로 구성 합니다. 위와 같은 아키텍쳐로 구성시 한대 서버 장애가 나도 정상적인 운영이 가능합니다. 장애 감지시 sentinel 끼리 투표를 하는데 일정 투표수(=쿼럼::quorum) 이상이 장애 서버라고 동의하면 fail over 작업을(마스터 승격) 진행합니다 (쿼럼이 3일시, fail over 불가) 만약, 죽은 서버를 복구하여 서비스 투입시 아래와 같습니다...
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c61tSf/btqXb1bhX3R/HVaII2Nd2vCEGEMOKFqI10/img.png)
레디스(Remote Dictionary Server)가 무엇인가! - 메모리 기반 저장 서비스 - 키-값 구조 - 문자열만 저장할 수 있는 Memcached와 달리 다양한 자료구조(Collection: 목록성 데이터 처리 구조) 지원 -> 다양한 형식으로 저장 가능 (String, Set, Sorted Set, Hash, List 등) - 오픈 소스 (무료) - 원격(Remote) 저장소로 여러 서버에서 같은 데이터를 공유할 수 있음 - 캐시로 사용 가능 - 메모리에만 저장하는 Memcached와 달리 디스크에도 저장하여 데이터 저장소로 사용 가능 (백업 방식으로 2가지가 존재함.) > 개념만 봤을때 아 ~ 그렇구나 정도지 실제 해보지 않으면 알기 어렵다.. (다음번에 테스트 해볼 예정) RDB AOF ..