본문 바로가기

전체 목록188

비행기표 조회 자동화 # 배경제주도민이라 명절때마다 비행기표 예약 전쟁을 겪어야한다.중간중간 비행기표가 있는지 매번 직접 들어가야 하는 번거로움이 있었다. 비행기표 조회 및 알림을 자동화해두면 명절 혹은 여행 성수기마다 두고두고 쓸 수 있을 것 같아서 파이썬 기반으로 스크립트를 작성해 보았다. # 사용 기술 및 라이브러리Python 3.10SeleniumSlack webhook # 코드아래는 스크립트 일부분이다.def main(): while True: url = os.getenv('FLIGHT_SCHEDULE_URL') webhook_url = os.getenv('SLACK_WEBHOOK_URL') try: schedules = get_flight_schedul.. 2024. 8. 9.
RDB에서 인덱스를 사용하지 않는 케이스들 # 테이블 스캔테이블 전체 레코드를 반환하는 쿼리는 당연하게도 인덱스를 사용하지 않는다.SELECT * FROM articles # 복합 인덱스deleted_at, user_id 순으로 복합인덱스가 생성되었다.CREATE INDEX index_articles_on_deleted_at_and_user_id ON public.articles USING btree (deleted_at, user_id)생성한 인덱스 순서에 맞게 쿼리를 작성하여야 한다.# 인덱스와 동일한 순서SELECT * FROM articles WHERE deleted_at IS NULL and user_id IN (1,100,2)# 인덱스와 다른 순서SELECT * FROM articles WHERE user_id IN (1,100,2) .. 2024. 5. 31.
스프링과 싱글턴 # 싱글턴이 무엇인가?클래스의 인스턴스가 딱 1개만 생성되는 것을 보장하는 디자인 패턴손쉽게 객체의 유일성을 보장할 수 있다.public class Singleton { private static final Singleton instance = new Singleton(); private Singleton() {} public static Singleton getInstance() { return instance; }}// Lazy한 방식으로도 구현이 가능하다.public class LazySingleton { private static LazySingleton instance; private LazySingleton() {} public static LazySingleton getInstance.. 2024. 5. 26.
스프링과 SOLID 원칙 SOLID 란?컴퓨터 프로그래밍에서 SOLID란 로버트 마틴이 2000년대 초반에 명명한 객체 지향 프로그래밍 및 설계의 다섯 가지 기본 원칙을 의미한다.SRP (Single Responsibility Principle) - 단일 책임 원칙OCP (Open/Closed Principle) - 개방/폐쇄 원칙LSP (Liskov Substitution Principle) - 리스코프 치환 원칙ISP (Interface Segregation Principle) - 인터페이스 분리 원칙DIP (Dependency Inversion Principle) - 의존성 역전 원칙이 다섯가지 원칙이 스프링에 어떻게 적용되는지 정리해본다.  1. 단일 책임 원칙 (SRP)정의클래스는 하나의 책임만 가져야 한다.스프링 적용.. 2024. 5. 21.