Dev 17

TS | stale element reference 에러 해결

상황 selenium 및 chromedriver를 활용한 크롤러 스크립트 코드를 돌리다가 stale element reference 에러가 계속적으로 발생하였다. 시도 구글링을 통해 이 글에서 대략적인 이유를 알 수 있었는데, 요약해보자면 웹에서 크롤링한 a라는 element에 접근할 때, a element가 존재하지 않을 때 발생하는 에러다. 즉, 웹페이지가 빨리 넘어가버려서 a라는 element를 찾지 못해 발생하는 에러다. 해결하기 위해서는 time.sleep()을 이용해서 웹페이지가 빨리 넘어가지 않도록 해야한다. 하지만... 이미 time.sleep()을 활용해주고 있었기 때문에 계속 삽질을 할 수 밖에 없었다. 분명 나와 같은 상황이 발생한 분들도 계실거라 생각하기 때문에 삽질 시간을 줄여드리..

Dev/Python 2023.01.30

Linux | 네임스페이스란?(가볍게)

본 글은 Docker Container의 프로세스 격리 방식에 공부하다 알게된 네임스페이스에 대해 간략하게 알아보기 위한 글입니다. 피드백은 언제든지 환영입니다. 🤩 네임스페이스가 뭐예요? 네임스페이스는 동일한 시스템에서 별개의 독립된 공간을 각각 격리된 환경에서 운영할 수 있게 돕는 가상화 기술입니다. 즉, 프로세스를 실행할 때 시스템의 리소스를 분리해서 실행될 수 있도록 도와주는 것이죠. 하이퍼바이저도 격리된 환경으로 가상화하는 걸로 아는데 무슨 차이가 있나요? 하이퍼바이저는 하드웨어를 기반으로 하드웨어를 물리적으로 구분하여 가상화를 하지만, 네임스페이스는 동일한 OS 및 커널을 깔고 그 위에서 작동되기 때문에 기반이 다릅니다. Docker에서도 적용된다고 했는데 확인해보고 싶어요 jenkins se..

Dev/CS 2022.11.06

Docker | 비슷해보이지만 다른 기본적인 명령어들

본 글은 Docker에 대한 기본 개념과 심화 학습을 하면서 배운 내용들을 정리하기 위한 글입니다. 피드백은 언제든지 열려있으니 편하게 남겨주시면 감사하겠습니다. 🤩 Docker create / start / run / stop 명령어들의 컨테이너 생명주기 Docker에서 컨테이너와 관련된 create / run / start 명령어의 차이가 뭐예요? $ docker create는 새로운 컨테이너를 이미지로부터 생성하는 명령어입니다. $ docker start는 기존에 중지되어있던 컨테이너를 실행 시키는 명령어입니다. $ docker run은 새로운 컨테이너를 이미지로부터 생성하고, 실행시키시면서 컨테이너 내부로 들어가는 명령어입니다. Docker에서 컨테이너 중지와 연관된 stop / kill 명령어의..

Dev/Infra | Cloud 2022.11.06

HTTP | 도메인 검색 시, 발생하는 과정 정리

본 글은 최근 질문을 받았던 내용에 대해 답변을 하였지만 답변의 완성도가 낮다고 판단하여 스스로 해당 내용에 대해 정리하기 위해 작성하게 되었습니다. 피드백은 언제든지 환영입니다. 🤩 Q. 도메인 www.abcde.com 을 접속했을때 발생하는 과정에 대해 설명해주세요. 1. Client가 Browser에 도메인 네임(www.abcde.com)을 입력합니다. 2. Client가 입력한 URL 주소 중에서 도메인 네임 부분을 DNS서버에서 검색합니다. 3. DNS서버에서 해당 도메인 네임에 해당하는 IP주소를 찾아 Client가 입력한 URL 정보와 함께 전달합니다. 4. 페이지 URL정보와 전달받은 IP주소는 HTTP 프로토콜을 사용하여 HTTP Request Message를 생성하고 이렇게 생성된 HT..

Dev/Network 2022.11.03

Github Actions | contextLoads() FAILED 해결하기

본 글은 사이드 프로젝트 진행 시, 트러블 슈팅한 경험을 기록하기 위함입니다. 피드백은 언제든지 환영입니다. 🤩 상황 로컬에서 동일한 에러가 발생을 했었고 그때 당시에는 yml파일(MySQL의 연결 정보를 담은)을 설정으로 등록해주는 Config 클래스에서 classpath가 잘못되어 수정을 해줬더니 해결을 할 수 있었다. 그리고 나서 main branch에 PR을 하였고 CI.yml이 작동하였는데 ./gradlew test 단계에서 똑같은 에러인 context load() FALED 에러가 발생하였다. 원인 Github Action 환경에서 MySQL Server가 안 띄워져 있기 때문에 해당 DB를 찾지 못해서 생기는 에러라고 생각했었다. 1차 해결시도 - 실패 MySQL Server를 띄워주기 위해..

Dev/Infra | Cloud 2022.11.02

Docker | Image에 대해 알아보기

본 글은 Docker에 대한 기본 개념과 심화 학습을 하면서 배운 내용들을 정리하기 위한 글입니다. 피드백은 언제든지 열려있으니 편하게 남겨주시면 감사하겠습니다. 🤩 모든 이미지의 저작권은 따라 하며 배우는 도커와 CI환경 강의에 있습니다. Docker Image에 대한 기본 개념은 알겠는데, 내부 구조가 궁금해요 Image는 응용 프로그램을 실행하는데 필요한 명령어와 파일 스냅숏으로 구성되어 있습니다. Image로 Container가 실행되는 순서도 궁금해요(임시 컨테이너 내용 추가하기) docker run {image} 명령어를 실행하게 되면 Image에 있는 파일 스냅숏의 내용이 Contatiner의 하드디스크에 옮겨집니다. Image 내부에 있는 명령어(컨테이너가 실행될 때 사용될 명령어)를 이용..

Dev/Infra | Cloud 2022.10.30

Docker | 기본 개념 정리

본 글은 Docker에 대한 기본 개념과 심화 학습을 하면서 배운 내용들을 정리하기 위한 글입니다. 피드백은 언제든지 열려있으니 편하게 남겨주시면 감사하겠습니다. 🤩 Docker가 뭐예요? Container를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구이며 컨테이너 기반의 오픈소스 가상화 플랫폼이며 생태계입니다. 그럼, Docker를 왜 쓰는 거예요? 어떠한 프로그램을 다운로드하는 과정을 아주 쉽고 간단하게 만들기 위해서 쓰는 겁니다. 오~ 근데 Image는 뭐고 Container는 뭐예요? Image는 DockerFile로 build 할 수 있으며 코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정과 같은 응용프로그램을 실행하는데 필요한 모든 것을 포함하는 소프트..

Dev/Infra | Cloud 2022.10.30

Jenkins | CI/CD Pipeline 구축 - 07. SSH + Docker(in VM) 환경세팅

본 글은 Docker를 기반으로 Jenkins의 기본적인 사용방법을 공부하고 추후 작업 시 중복되는 작업비용을 줄이기 위한 참고 및 정리 글이라서, 몇몇 배경 내용이 빠져있을 수 있는 점 참고 부탁드립니다. 🙋‍♂️ (피드백은 언제든지 환영합니다. 🤩) 스크립트 설정 jenkins에서 아래와 같은 스크립트가 실행될 수 있게 설정하여야 한다. war파일을 SSH를 이용해서 서버 2에 복사 서버 2에서 Dockerfile과 war파일을 합쳐서 Docker Image를 빌드 Docker Image로 컨테이너 생성 그전에 타 서버(VM)에 복사해주기 위해 jenkins에 SSH플러그인을 설치해준다. ~ > docker run --privileged --name docker-server -itd -p 10022:..

Dev/Infra | Cloud 2022.09.28

Jenkins | CI/CD Pipeline 구축 - 06. PollSCM(지속적인 파일 업데이트)

본 글은 Docker를 기반으로 Jenkins의 기본적인 사용방법을 공부하고 추후 작업 시 중복되는 작업비용을 줄이기 위한 참고 및 정리 글이라서, 몇몇 배경 내용이 빠져있을 수 있는 점 참고 부탁드립니다. 🙋‍♂️ (피드백은 언제든지 환영합니다. 🤩) Poll SCM 설정 (Poll SCM : commit이 된(업데이트된) 내용이 있을 때마다 빌드하는 것) 빌드 유발 항목에서 Poll SCM을 택하고 * * * * *(매초) 빌드한다는 설정을 해준다. 현재는 코드를 수정(커밋) 하기 전 상태이다. Build step 'Deploy war/ear to a container' marked build as failure Finished: FAILURE 소스코드를 수정하고 커밋해봤는데 위와 같은 에러 메시지와..

Dev/Infra | Cloud 2022.09.28

Jenkins | CI/CD Pipeline 구축 - 05. Tomcat Plugin 세팅

본 글은 Docker를 기반으로 Jenkins의 기본적인 사용방법을 공부하고 추후 작업 시 중복되는 작업비용을 줄이기 위한 참고 및 정리 글이라서, 몇몇 배경 내용이 빠져있을 수 있는 점 참고 부탁드립니다. 🙋‍♂️ (피드백은 언제든지 환영합니다. 🤩) Tomcat Plugin 세팅 및 Item 생성 플러그인 관리 → 설치 가능 항목에서 Deploy to container를 검색하여 설치해준다. 설치가 완료되었다면, Maven Project 템플릿으로 신규 프로젝트(아이템)를 생성해준다. 세 번째 프로젝트는 두 번째 프로젝트의 연장선이므로 세팅을 Copy 할 수 있다. 톰캣 웹서버에 복사를 해당 workspace 내에서 확장자가 war파일로 되어 있는 걸로 하겠다. 를 명시하기 위해 위와 같이 세팅한다...

Dev/Infra | Cloud 2022.09.27