본문 바로가기

분류 전체보기25

Object Storage 이미지 출력 안녕하세요. 이번 포스팅에서는 요즘 프로젝트에서 안쓸 수 없는 Object Storage에서 이미지에 접근하는 방법을 포스팅 하려고 합니다. 회사에서 지난 프로젝트의 경우 Cloud 환경의 NAS를 이용하여 각 서버에 마운트 시켜 파일을 관리를 했던 반면 이번 프로젝트는 Object Storage를 이용한 파일 관리를 진행하기로 해서 프로젝트를 진행하면서 발생했던 이슈에 대해서 해결하는 과정을 작성하도록 하겠습니다. 1. 전체 공개 파일과 public url 접근 Object Storage를 사용하면서 개발 초반에는 버킷에 모두 공개 권한으로 파일을 업로드를 하고 클라이언트에게 해당 버킷의 public 도메인을 이용하여 이미지 파일을 보여주는 방식으로 개발을 해왔습니다. ex) https://버킷명.kr.. 2023. 6. 9.
ElasticSearch 사용자 사전, 동의어, 불용어 적용 안녕하세요. 이번 포스팅은 검색엔진 중 하나인 ElasticSearch 줄여서 ES에서 사용자 사전, 동의어, 불용어를 작성하는 방법을 포스팅 하려고 합니다. 검색 엔진에서 색인 작업을 하면서 사용자가 원하는 특정 단어로 검색, 비슷한 단어에 대해서 검색 또는 검색이 되면 안되는 단어를 구분하여 색일을 할 수 있는 ElasticSearch의 기능입니다. 1. 사용자 사전 - 사용자 사전이란 등록해둔 단어로 색인을 진행하며 해당 단어로 검색을 할 수 있게 해주는 사전이다. - 복합 명사와 같이 두가지 이상의 단어가 합쳐져서 하나의 단어로 사용되는 단어들에 대한 정의를 해준다. - 사전을 작성할 때에는 단일어와 복합어를 구분해서 작성을 한다. - 단일어의 경우 단일어 하나만 작성, 복합어의 경우 복합어를 작.. 2023. 6. 9.
@Asnyc를 이용한 멀티 스레드 안녕하세요. 지난 포스팅에 이어서 이번에도 멀티 스레드에 대해서 포스팅을 하고자 합니다. 이번 포스팅에서는 지난 ThreadPoolTaskExecutor의 스레드 풀 설정과 @Asnyc 어노테이션을 이용한 비동기 멀티 스레드를 구현하고자 한다. @Asnyc란 - @Asnyc는 Spring framework에서 제공해주는 기능으로 비동기 처리를 하고 싶은 메소드 위에 붙여서 사용하면 된다. - 해당 어노테이션을 사용하기 위해서는 @EnableAsync을 필수적으로 같이 사용해줘야 한다. - @Asnyc와 @EnableAsync는 Spring AOP의 하나로 AOP 제약 사항을 받는다. 1. ThreadPoolTaskExecutor 설정 - 이전 포스팅에서 작성해두었던 설정 파일을 그대로 가져와서 @Enab.. 2023. 6. 8.
멀티 스레드 환경을 위한 스레드 풀 (Thread pool) - ThreadPoolTaskExecutor 안녕하세요. 지난 포스팅에서는 java 멀티 스레드에 대해 간단하게 설명을 드렸습니다. 이번 포스팅에서는 멀티 스레드를 더 효율적으로 사용할 수 있는 스레드 풀(Thread Pool)에 대해서 작성을 하고자 합니다. 스레드 풀이란. - 멀티 스레드 환경에서 무차별적으로 생성되는 스레드로 인한 성능 저하를 막기 위해 정해진 수의 스레드를 설정하여 사용하는 방식 - 미리 생성된 또는 이전에 생성된 스레드를 재사용하여 현재 작업을 수행 - 스레드 생성 오버 헤드 문제에 대한 해결책을 제공 Java에서의 스레드 풀 java에서 제공해주는 스레드 풀로는 ThreadPoolExecutor 클래스가 존재한다. ThreadPoolExecutor 클래스의 자세한 사용 방법은 해당 링크를 참고하자. 이번 포스팅에서는 Th.. 2023. 6. 6.
멀티 스레드 Runnable 자바 개발을 하다보면 우리는 스레드(Thread)라는 단어를 많이 듣게 될것이다. 싱글 스레드, 멀티 스레드, 비동기 스레드 등등 그렇다면 이 스레드란 무엇일까? 스레드란? - 스레드는 어떠한 프로세스내에서 실제로 작업이 실행 되는 하나의 주체( 또는 단위)이다. - 프로그램 또는 프로세스가 실행 되기 위해서는 하나 이상의 스레드가 있어야 한다. 여담이지만 예전에 SNS에서 컴퓨터 용어를 쉽게 설명해주는 짤에서 코어란 일꾼이며 스레드는 일꾼의 손의 갯수로 비유를 했던걸 본 기억이 있다. 다시 본문으로 돌아와 이번 포스팅의 주제인 멀티 스레드에 대해서 작성을 해보고자 한다. 멀티 스레드란? - 특정 프로세스에서 두개 이상의 스레드가 동시에 작업을 하는것이다. - 각 스레드가 자신이 속한 프로세스의 메모리를.. 2023. 6. 6.
Nginx 이번 포스팅에서는 회사에서 서버 설정을 하다가 너무나 간단한 설정인데도 불구하고 많은 시간을 허비했던 Nginx 설정에 대해서 작성을 해보려고 한다. (CentOS 기준으로 nginx 설정 방법을 포스팅 할 예정) Nginx란. - nginx는 아파치와 마찬가지고 많이 사용되고 있는 웹서버이다. - 프로그램이 가볍고 성능이 좋아 많은 사람들이 아직까지 nginx를 웹 서버로 사용을 하고 있다. - 기본 포트로는 80 포트를 사용하고 있다. - nginx는 웹서버 뿐만이 아니라 리버스 프록시 서버, LB 등 다양하게 사용이 가능하다. 1. Nginx 설치 - centOS에서는 yum이라는 패키지 설치 도구를 이용하는데 기본적인 yum 저장소에는 Nginx 패키지가 존재하지 않는다. - nginx 외부 저장.. 2023. 6. 4.