전체 글 363

[Elasticsearch] Elasticsearch란 무엇이고 왜 사용하는가

Elasticsearch는 Apache Lucene 기반의 검색 엔진입니다. HTTP 웹 인터페이스와 스키마에서 자유로운 Json 문서와 함께 멀티테넌트 지원 전문 검색 엔진을 제공합니다. 더불어, 자바 기반의 오픈 소스이지만, 클라이언트는 수많은 언어(Java, C#, PHP, Python..)로 이용이 가능합니다. Apache Lucene 특징 자바 언어로 개발 사용자 위치 정보 이용 가능 다국어 검색 지원 자동 완성, 미리 보기 지원 철자 수정 기능 지원 Elasticsearch 특징 분산 시스템 여러 개의 node로 구성되는 분산 시스템 기존 node에서 새 node를 실행하여 연결하는 것만으로 확장 가능 data는 각 node에 분산하여 저장 복사본(replica)을 유지하여 각종 충돌로부터 n..

[Windows 11] Windows 11 환경에서 캡처 단축키가 안 되는 경우 해결책

Windows에서 캡처할 일이 있는 경우, Windows 로고키 + Shift + S 단축키로 주로 캡처를 합니다. 이 단축키가 안될 때 해결책에 대해 간단히 설명드리겠습니다. Windows 로고 키 + i 단축키로 설정 접근 시간 및 언어 -> 날짜 및 시간 자동으로 시간 설정 기능 비활성화 수동으로 시간 설정 변경 (10. 31 이전으로 변경) 다시 자동으로 시간 설정 기능으로 변경 다음과 같이 설정을 끝마치면, 캡처 단축키가 다시 활성화됩니다.

기타 2023.11.10

[Design Pattern] Template Method Pattern(템플릿 메소드 패턴)이란

템플릿 메소드 패턴이란 알고리즘의 구조를 메소드에 정의하고, 하위 클래스에서 알고리즘 구조의 변경 없이 알고리즘을 재정의 하는 패턴입니다. 알고리즘이 단계별로 나누어지거나, 같은 역할을 하는 메소드지만 여러 곳에서 다른 형태로 사용이 필요한 경우 유용한 패턴입니다. 토비의 스프링에서는 다음과 같이 정의합니다. 상속을 통해 슈퍼클래스의 기능을 확장할 때 사용하는 가장 대표적인 방법. 변하지 않는 기능은 슈퍼클래스에 만들어 두고 자주 변경되며 확장할 기능은 서브클래스에 만들도록 한다. 조건 클래스는 추상(abstract) 클래스로 만들어야 됩니다. 단계를 진행하는 메소드는 수정이 불가능하도록 final 키워드를 추가합니다. 각 단계에서 외부는 막고, 자식들만 활용할 수 있도록 protected로 선언합니다...

Java/Design Pattern 2023.11.06

[Design Pattern] Singleton Pattern(싱글톤 패턴)이란

오늘은 메모리 낭비를 방지할 수 있는 디자인 패턴인 싱글톤 패턴에 대해 알아보겠습니다. Singleton Pattern 애플리케이션이 시작될 때, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴하는 패턴 즉, 처음에 생성한 인스턴스를 지속적으로 사용하는 패턴입니다 Java에서는 생성자를 Private으로 선언하고 다른 곳에서 생성하지 못하도록 만들고, getInstance() 메서드를 통해 받아서 사용하도록 구현 주로, 데이터베이스에서 Connection Pool, Thread Pool처럼 공통된 객체를 여러개 생성해서 사용하는 상황에서 사용합니다. 이제 장단점에 대해 설명드리겠습니다. 장점 객체를 생성할 때 마다 메모..

Java/Design Pattern 2023.11.03

[Design Pattern] Adapter Pattern(어댑터 패턴)이란

Adapter Pattern에 대해 알아보기 전, Design Pattern(디자인 패턴)에 대해 간단하게 설명드리겠습니다. 디자인 패턴이란 소프트웨어의 재사용성, 호환성, 유지보수성을 보장하기 위한 설계 기법이며 아이디어입니다. 필수적인 요소는 아니지만, 아는 것과 모르는 것은 차이가 크다고 생각합니다 (필요에 따라 가져다 쓸 수 있어야 된다고 생각합니다) Adapter Pattern 호환되지 않는 인터페이스들을 연결하는 디자인 패턴 기존의 클래스를 수정하지 않고도 특정 인터페이스를 필요로 하는 코드에서 사용 가능 서로 다른 인터페이스를 가진 클래스들이 상호작용할 수 있기에 코드의 재사용성 증대 Component Target(타겟): Client가 직접적으로 호출하는 interface Adaptee(어..

Java/Design Pattern 2023.10.31

[Git] 프로그램 버전 관리와 코드 공유 및 협업을 위한 Git & Github에 대해 알아보자

개발자라면 반드시 Git과 Github에 대해 숙지하고 있어야 합니다. 회사에서 협업을 할 때에도 각자의 Branch(개발 환경)에서 각자의 업무를 담당하게 되는데요, 이제 Git과 Github에 대해 확실하게 숙지하고 가볍게 정리하는 시간을 가져보려고 합니다. Git은 VCS 종류의 프로그램들 중 하나로서 프로그램 버전 관리를 위한 도구입니다. 버전 관리라고 하면 프로젝트의 시간과 차원을 관리하는 것입니다. 시간과 차원에 대한 이슈에 대해 설명드리겠습니다. 시간과 관련된 이슈개발자들이 프로그래밍을 해서 소프트웨어를 만들 때 첫 결과물로 마무리되지 않습니다. 새 기능을 넣고 오류를 수정하고 성능을 개선하면서 계속해서 새로운 버전이 나오게 됩니다.그런데, 이러한 것들을 진행하다 보면 했던 작업을 취소해야 ..

DevOps/Git 2023.10.22

[Spring] Filter, Interceptor, ArgumentResolver

비즈니스 로직과 인증 로직을 분리하기 위한 3가지 요소가 있습니다. 이 3가지 요소는 이들은 모두 공통된 인증 로직을 처리합니다. 서비스 규모가 커진다면 보안 체크를 매 요청 때마다 해줘야 합니다. 그래서 이들을 확실하게 구분하고 중복 로직을 없애려고 합니다. Filter, Interceptor, AOP가 있는데, AOP는 매우 방대한 내용이라서, Interceptor와 약간의 차이가 있지만 비슷한 역할을 담당하는ArgumentResolver에 대해서 설명드리겠습니다. 전반적인 흐름도 다음 사진과 같이 Client가 HTTP Request를 보냈을 때, Spring Container 영역 밖에 있는 Filter(Servlet Container 영역)를 거치고 DispatcherServlet에서 해당 요청..

Java/Spring 2023.10.15

[Perfume] Maison Margiela 메종 마르지엘라 레이지 선데이 모닝(레선모) 리뷰

비누향 향수 하면 떠오르는 향수가 있나요 ? 저는 대학교 2학년 때, 친구가 선물해 준 클린 웜 코튼이 가장 먼저 떠오르고, 그다음으로는 바이레도 블랑쉬와 레이지 선데이 모닝이 떠오르네요. 정말 데일리로 가볍게 뿌리기 좋은 향수인 레이지 선데이 모닝 후기를 남겨보려고 합니다. 이 제품은 한 번 구매한 적이 있었는데, 너무 맘에 들어 2번째 구매하는 향수입니다. 무신사에서 세일을 해서 30ml에 약 8만 원에 구매했습니다. 비누향 향수 치고는 가성비가 좋은 편은 아니라고 생각하지만, 클린 웜 코튼에 비해 고급진 비누향 냄새가 나서 아깝지 않은 것 같습니다. (저는 우디향을 선호하는 편인데, 바이레도 블랑쉬는 비누향인데도 불구하고 저의 최애 향을 바꾸고 싶을 정도의 향수입니다..) 향수의 적힌 REPLICA..

일상/리뷰 2023.10.07

[Perfume] diptyque 딥디크 오 드 뚜왈렛 로 파피에(L'Eau Papier) 향수 리뷰

오늘은 평소 관심을 가지던 향수인 로 파피에 향수를 리뷰해보려고 합니다. (사실 플레르드뽀, 친구가 추천해 준 필로시코스 중 하나를 구매하려고 했지만 회사 복지몰에 부득이하게 존재하지 않아 이 향수를 구매) 향을 맡아보지도 않고 향수를 구매한 적은 처음이였지만, 주변 블로그나 유튜브 리뷰 등을 참고해서 깊은 고민 끝에 고민하였습니다. 저는 플레르드뽀 향을 매우 좋아하는데, 유튜브 리뷰 중 르라보 어나더13 + 플레르드뽀 향이라는 리뷰가 있었기에 더욱 이 향수에 대해 믿음이 갔습니다. 로 파피에의 의미는 다음과 같다고 합니다. 네.. 되게 감성적인 말이지만, 향만 좋으면 된다고 생각합니다 ㅎㅎ 우선 처음 맡았을 때, 왜 오 드 뚜왈렛인지 알 것 같은 기분이 들었습니다. 정말 과하지 않으면서, 약한(?) 플..

일상/리뷰 2023.10.07