전체 글 167

[네이버 블로그 자동화 - 2] 좋아요 누르기 자동화

[네이버 블로그 자동화 - 2] 좋아요 누르기 자동화 오늘은 두 번째로 좋아요 누르기 자동화를 해보겠습니다.  위 그림과 같이 네이버 블로그 하단 태그 아래에 '공감' 이라는 부분인데요. 하트를 포함한 좌측 영역을 눌러야 공감이 체크되고다른 곳을 누르면 공감 상세 창이 열리며, 누가 공감을 눌렀는지 보이게됩니다. 그럼 저 하트 부분의 태그가 무엇인지 먼저 볼까요? 위에 보이는 부분이 버튼 영역입니다. 여기서 가장 중요한것은 사실 마지막에 보이시는 .on 입니다. 아래 같은 그림을 다시 볼까요?  여기는 .off로 되어 있네요. 어떤 차이가 있을까요? 당연히 눈치 채셨겠지만,on은 내가 이미 공감을 누른 상태off는 내가 아직 공감을 누르지 않는 상태입니다. 이것이 중요한 이유는 내가 이미 누른 게시글에 ..

Automation 2024.10.26

[네이버 블로그 자동화 - 1] 기본설정과 블로그 읽기

[네이버 블로그 자동화 - 1] 기본설정과 블로그 읽기 첫 번째로는 기본 설정과 블로그 읽기에 대해 작성해보겠습니다. 좋아요 자동화나 댓글 자동화 전에 꼭 해야 할 일입니다. python Interpreter을 세팅하고, 그에 맞는 라이브러리까지 설정해야 합니다.그리고 특정 키워드를 가진 블로그를 읽어오는 것 까지를 진행하겠습니다. python 3.9 버전을 사용했고, 먼저 아래 라이브러리를 사용했습니다.from selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.chrome.service import Servicefrom webdriver_manager.chrome import ChromeD..

Automation 2024.10.24

[네이버 블로그 자동화 - 0] 계획 세우기

[네이버 블로그 자동화 - 0] 계획 세우기 요즘 네이버 블로그를 많이 사용하는 것 같습니다.저는 광고때문에 티스토리를 사용했지만.... 이번 시리즈로는 네이버 블로그 자동화를 통해 빠르고 편하게 블로그를 확장하는 여러 방법을 정리해보겠습니다. 먼저 첫 번째는 계획을 세우는 단계로 가볍게 시작하겠습니다. 블로그 글은 본인이 직접 쓴다는 것을 가정하고, 이 글을 빠르게 퍼뜨리고 다른 유저들의 반응과 피드백을 받아야 하는 것이 목적입니다. 그러기 위해서는 내가 다른 블로거들에게 반응을 해서, 나의 블로그로 유입을 시켜야 할 것 같습니다. 그래서 가장 먼저 1차 결과물의 스펙을 정하겠습니다. (네이버가 싫어할 것 같습니다.)- 네이버 블로그 좋아요 누르기 자동화- 네이버 블로그 댓글 쓰기 자동화- 네이버 블로..

Automation 2024.10.23

MSA에서의 모니터링과 로깅 전략

마이크로서비스 아키텍처는 서비스 간의 결합도를 낮추어 확장성과 유연성을 제공하지만, 이러한 환경에서는 모니터링과 로깅 전략이 매우 중요합니다. 이 글에서는 마이크로서비스 환경에서의 모니터링과 로깅의 중요성과 이를 위한 전략을 자세히 살펴보겠습니다. 1. 모니터링의 중요성 마이크로서비스 아키텍처에서는 각각의 서비스가 분산되어 있기 때문에 모든 서비스의 성능 및 가용성을 지속적으로 모니터링하는 것이 중요합니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다. - 시스템의 성능 파악 : 모든 서비스의 응답 시간 및 부하를 모니터링하여 성능 문제를 식별합니다. - 가용성 보장 : 서비스의 다운타임을 최소화하기 위해 실시간으로 서비스의 상태를 파악하고 장애를 빠르게 대응합니다. - 스케일링 결정 : 부하가 증가..

MSA 2024.03.03

MSA의 확장성과 효과적인 관리: 써킷 브레이커

안녕하세요. 이번에는 마이크로서비스 아키텍처에서의 확장성과 효과적인 관리에 대해 정리해보겠습니다. 특히, 신뢰성을 확보하기 위한 써킷 브레이커에 대한 내용을 중점적으로 다룰 것입니다. ● 확장성: 수평적 vs. 수직적 확장 1. 수평적 확장 (Horizontal Scaling) 수평적 확장은 각 서비스를 여러 서버 인스턴스로 확장하여 시스템 성능을 향상시키는 방법 중 하나입니다. 마이크로서비스 아키텍처에서는 새로운 인스턴스를 동적으로 추가하여 트래픽을 분산시키고, 서비스의 부하를 분담할 수 있습니다. 이를 통해 시스템의 안정성을 유지하면서 확장성을 확보할 수 있습니다. 2. 수직적 확장 (Vertical Scaling) 수직적 확장은 단일 서버의 성능을 향상시키는 방법으로, 각 서비스의 서버 자원을 업그..

MSA 2024.03.02

마이크로서비스 아키텍처 구성 요소 : API 게이트웨이

안녕하세요. 이번에는 마이크로서비스 아키텍처에서 중요한 역할을 하는 "API 게이트웨이"에 대해 알아보겠습니다. 마이크로서비스 아키텍처에서 API 게이트웨이는 어떤 역할을 하는지, 그리고 어떻게 활용되어야 하는지에 대한 내용을 다뤄보겠습니다. API 게이트웨이의 역할 API 게이트웨이는 마이크로서비스 아키텍처에서 클라이언트와 서비스 간의 중간 매개체로 작동합니다. 이는 여러 가지 기능을 수행하여 전체 시스템을 더 효율적으로 만들어줍니다. 1. 통신 라우팅 API 게이트웨이는 클라이언트의 요청을 받아 어떤 마이크로서비스로 전달할지를 결정하는 역할을 합니다. 이를 통해 클라이언트는 특정 서비스의 위치를 알 필요 없이 API 게이트웨이의 주소만 알면 됩니다. 2. 인증 및 권한 부여 보안은 마이크로서비스 아키..

MSA 2023.12.15

마이크로서비스 아키텍처 (MSA) 소개

안녕하세요. 오늘은 현대 소프트웨어 개발에서 핵심적인 역할을 하는 "마이크로서비스 아키텍처"에 대해 더 깊이 살펴보려고 합니다. 마이크로서비스 아키텍처란? 마이크로서비스 아키텍처는 소프트웨어 시스템을 여러 작은 독립적인 서비스로 나누어 관리하는 아키텍처 디자인 패턴입니다. 이는 전통적인 모놀리식(Monolithic) 아키텍처에서 벗어나, 각 서비스가 독립적으로 개발, 배포, 확장, 유지보수될 수 있도록 하는 것을 목표로 합니다. 모놀리식 vs 마이크로서비스 전통적인 모놀리식 아키텍처에서는 모든 기능이 하나의 대규모 애플리케이션에 통합되어 있습니다. 이에 반해, 마이크로서비스 아키텍처는 각 서비스가 자체적으로 데이터베이스와 통신하며, 독립적인 기능을 수행합니다. 마이크로서비스의 이점 - 독립적인 배포와 확..

MSA 2023.12.11

[CleanCode] 동시성

CleanCode - 동시성 동시성이 필요한 이유? 동시성은 '무엇'과 '언제'를 분리하는 전략입니다. '무엇'과 '언제'를 분리하면 애플리케이션 구조와 효율이 극적으로 나아집니다. 동시성에 대한 일반적인 오해 동시성은 항상 성능을 높여준다. 여러 스레드가 프로세서를 공유하거나, 여로 프로세서가 동시에 처리할 계산이 충분히 많은 경우 성능이 높아집니다. 위 경우 같을 때 성능을 높여줍니다. 항상은 아닙니다. 동시성을 구현해도 설계는 변하지 않는다. 단일 스레드와 다중 스레드 시스템은 설계가 다릅니다. 웹 또는 EJB 컨테이너를 사용하면 동시성을 이해할 필요가 없다. 반드시 이해해야 데드락, 동시 수정등의 문제를 피할 수 있습니다. 동시성 방어 원칙 단일 책임 원칙 주어진 메서드/클래스/컴포넌트를 변경할 ..

CleanCode 2023.12.10

[CleanCode] 창발성

CleanCode - 창발성 창발적 설계로 깔끔한 코드를 구현하자. 여기서 창발성이란 무슨 뜻일까요? 보통 자주쓰는 단어는 아닙니다. 사전에 따르면 창발성이란 하위 계층(구성 요소)에는 없는 특성이나 행동이 상위 계층(전체 구조)에서 자발적으로 돌연히 출현하는 현상이라고 합니다. 책에서는 켄트 벡이 제시한 단순한 설계 규칙 네 가지가 소프트웨어 설계 품질을 크게 높여준다고 합니다. 이는 다음과 같습니다. - 모든 테스트를 실행한다. - 중복을 없앤다. - 프로그래머의 의도를 표현한다 - 클래스와 메서드 수를 최소로 줄인다. 1. 모든 테스트를 실행한다. 무엇보다 먼저 설계는 의도한대로 돌아가는 시스템을 내놓아야 합니다. 문서로는 잘 설계했지만, 의도한 대로 시스템이 동작하는지 검증할 방법이 없다면 인정받..

CleanCode 2023.12.05

[CleanCode] 시스템

CleanCode - 시스템 이 장에서는 사용과 제작이 다르다는 사실을 명심하는 것부터 시작됩니다. 사용과 제작을 분리하는 메커니즘 하나가 의존성 주입(DI)입니다. DI는 제어의 역전(IoC)기법을 의존성 관리에 적용한 메커니즘입니다. IoC에서는 한 객체가 맡은 보조 책임을 새로운 객체에게 전적으로 떠넘깁니다. 새로운 객체는 넘겨받은 책임만 맡으므로 단일책임원칙을 지키게됩니다. 호출하는 객체는 실제로 반환되는 객체의 유형을 제어하지 않습니다. 대신 의존성을 능동적으로 해결합니다. 확장 '처음부터 올바르게' 시스템을 만들 수 있다는 믿음은 미신이라고 합니다. (말이 안됩니다!) 그래서 우리는 오늘 주어진 사용자 스토리에 맞춰 시스템을 구현해야 합니다. 그리고 내일은 새로운 스토리에 맞춰 시스템을 조정하..

CleanCode 2023.11.14