분류 전체보기 141

Prometheus 설치 (windows)

Prometheus 파일 다운로드 Download | PrometheusAn open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach.prometheus.io 해당 페이지에 들어가서 windows버전을 다운로드 받은뒤 압축을 풀게되면다음과 같이 파일들이 있는데, yml을 열어 모니터링 할 서비스를 연결해주면 된다.하단에 내용을 아래와 같이 추가해주면된다.scrape_configs: # The job name is added as a label `job=` to any timeseries scraped ..

개발일기/Server 2024.12.18

Scanner 차이 BufferedReader

문제 [백준] 빠른 A+B 를 마주하기전까지 필자는 항상 java에서 입출력 을 받을때 Scanner를 사용하여 푸는 습관이있었다.백준 빠른 A+B을 만나기 전까지 BufferedReader 와 BufferedWriter에 대해 알지도 못했는데관련하여 정리해보려고한다.왜 Scanner는 컴파일 시간이 오래 걸릴까?자바에서 입출력을 받을 때 자연스럽게 Scanner를 사용해왔다. 하지만 [백준] 빠른 A+B 문제를 만나면서 BufferedReader와 BufferedWriter의 존재를 알게 되었다.그래서 이번 기회에 Scanner와 BufferedReader의 차이점을 정리하고, 왜 Scanner를 사용하면 컴파일 시간이 오래 걸리는지 알아보려고 한다.Scanner의 동작 방식Scanner는 다음과 같은..

Spring 서버와 FastAPI를 연결하여 효율적인 웹 서비스 설계

1. RestTemplate을 활용한 Spring ↔ FastAPI 통신Spring 서버에서 RestTemplate을 사용하면 FastAPI와의 통신이 간단합니다. Spring은 강력한 웹 로직 처리를 제공하고, FastAPI는 AI 모델과 같은 고성능 연산 처리를 효율적으로 처리할 수 있기 때문에 이 둘을 결합하면 각 프레임워크의 강점을 살릴 수 있습니다.RestTemplate으로 FastAPI 호출하기Spring에서 RestTemplate을 활용해 FastAPI의 엔드포인트를 호출할 수 있습니다. 예를 들어, 이미지를 업로드하여 FastAPI에서 AI 처리를 요청하고 결과를 받아오는 구조는 다음과 같습니다import org.springframework.stereotype.Service;import o..

U2Net 직접 사용 vs. rembg 활용: 어느 쪽이 더 나을까?

1. 직접 모델 사용 (save_models 방식)U2Net의 .pth 파일을 다운로드하여 직접 관리PyTorch를 사용해 모델을 로드하고 추론을 구현2. 라이브러리 활용 (rembg 방식)rembg가 모델 다운로드 및 로드를 자동으로 처리함수 호출만으로 간단히 배경 제거를 수행3. 두 방식의 주요 차이점 비교 구분 직접 모델 사용 (save_models) rembg 활용 모델 관리 직접 .pth 파일 다운로드rembg가 .onnx 파일을 관리 구현 난이도 모델 로드, 추론 코드 작성 필요함수 호출로 간단히 사용 가능 커스터마이징 모델 교체 및 수정 가능제한적 (rembg 내부 구조 변경 어려움) 배포 용이성 의존성 많고 배포 복잡간단히 배포 가능 속도 PyTorch로 실행 (GPU 지원 가능)onn..

자료구조 정리

주요 자료구조 정리컬렉션 프레임워크ListSetMapArrayListHashSetHashMapLinkedListTreeSetHashTableVector TreeMapList 인터페이스순서가 있는 데이터의 집합중복 허용주요 구현 클래스 - ArrayList, LinkedListArrayList동적 배열구조인덱스로 빠른 접근 가능삽입/삭제 시 요소 이동 필요LinkedList이중 연결 리스트 구조삽입/삭제가 빠름순차 접근만 가능Vector크기가 가변적인 배열구조동기화되어 있어 thread-safe함 (thread-safe한 구현이 필요한경우에만 사용하는것을 권장 이외 경우엔 ArrayList 사용)ArrayList와 유사하지만, Vector는 레거시 클래스로 간주Set 인터페이스순서 없는 데이터의 집합중복 ..

Swagger 기능 추가

인턴 과제로 Spring 프로젝트를 진행중에있는데 이 프로젝트에 swagger 를 적용하는 과제가 있다 이를 적용하기위해   Swagger 의존성 추가 implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.3.0' SwaggerConfig 추가@Configurationpublic class SwaggerConfig { @Bean public OpenAPI customOpenAPI() { SecurityScheme securityScheme = new SecurityScheme() .type(SecurityScheme.Type.HTTP).scheme("bearer").bearerFormat..

Junit5, Mockito 사용하기

Junit5 란?-  java 에서 독립된 단위 테스트를 지원해주는 프레임워크 / java 8버전 이상- Junit 5 = Junit platform(테스트 실행환경)               + Junit jupiter(프레임워크)               + Junit vintage(Junit4와 하위 호환을 제공하기 위한 모듈)단위테스트란?- 소프트웨어 개발에서 개별적 코드단위를 테스트하는 것을 의미함 ( 클래스 , 메서드 , 함수 등등 과같은 작은 단위)- 컨트롤러단이나 서비스단과 같은 구성요소는 각각 개별적인 단위로 테스트 될 수 있다. Junit5  주요 어노테이션@Test - 테스트 메서드를 정의하는데 사용되는 어노테이션@ParameterizedTest - 매개변수화된 테스트를 정의하는데 사..

AWS 과금

7-8월 최종프로젝트를 진행하면서 AWS를 사용하여 배포를 진행하였다 이때 EC2, 탄력적 IP, router 53, RDS, S3, I AM등을 사용하였고 당연히 과금이 나올 것을 알고있었기 때문에 비용을 지불하는것에 의문이없었다. 프로젝트가 끝난뒤 과금이 될 것을 우려하여 사용한 AWS의 모든 기능을 정지 및 삭제 처리하였고, 이후 비용이 청부되지는 않겠구나 하고 있엇지만 9월 어느날 메일이 날라왔다... 프리티어의 용량이 다 찼다는 메일이였다 분명 나는 삭제했는데 ... 9월달 요금이 발생된건가?? 하고 aws consol에 들어갔다. 아니나 다를까 청부되었다.나름.. 관리했다고 생각했는데 뭐지..... 다급하게 구글에 VPC를 검색했다.Virtual Private Cloud (가상 네트워크) 이부..

Spring Security 동작 과정

나는 Spring Security동작과정 이해하고 기억하기위해  놀이동산과 티켓, 그리고 검수원으로 생각을 하게되었고 다음과 같이 외웠다.Spring Security 동작 과정 요약(실생활 예시):HTTP 요청 수신 → Spring Security 필터 체인으로 요청 전달. 놀이동산 입장 시도 → 입구에서 고객이 입장할수 있는지 확인해야함(티켓확인)필터 체인 처리 → 인증 필터가 요청을 가로채 인증 여부 확인.입구에서 티켓을 확인하는 과정 →  유요한 티켓을 가지고있는지 확인 Authentication Manager → 인증 관리자 호출, 사용자 정보 확인.티켓 검표원 호출 → 검표원이 고객의 티켓이 유효한지 확인(시스템에 기록된것과 일치하는지)UserDetailsService → 데이터베이스에서 사용자..

HTTPS 란?

HTTPS 란?HTTP에 SSL/TLS(보안 소켓 계층/ 전송 계층 보안)를 결합하여 안전하게 데이터를 전송하며 데이터가 암호화되어 전송되며, 서버와 클라이언트 간의 통신이 보안이 적용되어 HTTPS로 표기되는 것HTTPS가 작동되는 과정SSL/TLS HandshakeClient Hello - 클라이언트가 서버에 접속 요청을 보내며, 이 때 클라이언트는 사용할 수 있는 암호화 방식과 SSL/TLS 버전을 서버에 전달Server Hello - 서버는 클라이언트의 요청을 수락하고, 사용할 암호화 방식과 SSL/TLS버전을 선택한 뒤, 인증서를 클라이언트에 전달(인증서에는 서버의 공개 키가 포함되어있음)서버 인증서 검증클라이언트는 서버의 인증서 검증 - 클라이언트는 서버가 보낸 SSL/TLS 인증서를 확인한다..