전체 글 243

[백준 python 10986] 나머지 합

[Gold III] 나머지 합 - 10986문제 링크성능 요약메모리: 157276 KB, 시간: 824 ms분류수학, 누적 합제출 일자2026년 1월 19일 15:27:02문제 설명수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오.즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다.입력첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 106, 2 ≤ M ≤ 103)둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109)출력첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다.소스 코드im..

[백준 python 11660] 구간 합 구하기 5

[Silver I] 구간 합 구하기 5 - 11660문제 링크성능 요약메모리: 106832 KB, 시간: 1016 ms분류다이나믹 프로그래밍, 누적 합제출 일자2026년 1월 14일 11:27:16문제 설명N×N개의 수가 N×N 크기의 표에 채워져 있다. (x1, y1)부터 (x2, y2)까지 합을 구하는 프로그램을 작성하시오. (x, y)는 x행 y열을 의미한다.예를 들어, N = 4이고, 표가 아래와 같이 채워져 있는 경우를 살펴보자.1234234534564567여기서 (2, 2)부터 (3, 4)까지 합을 구하면 3+4+5+4+5+6 = 27이고, (4, 4)부터 (4, 4)까지 합을 구하면 7이다.표에 채워져 있는 수와 합을 구하는 연산이 주어졌을 때, 이를 처리하는 프로그램을 작성하시오.입력첫째 ..

전형적인 추천 시스템의 구조

추려내고, 순위 매기고, 재정렬하고후보 생성 (Candidate Generation)무수히 많은 전체 상품 중에 그나마 관련이 있을 것으로 예상되는 일부 후보군을 추려낸다.순위 매기기 (Ranking)추려낸 수백 개의 후보군 내에서 유저와 아이템의 연관성 점수를 상대적으로 더 정밀하고 복잡한 모델로 매긴다.재정렬 (Reranking)순위를 매긴 유저-아이템 쌍 중에 유저와 무관하거나 비즈니스 목적에 맞지 않는 아이템을 제거한다.예를 들어 부적절한 콘텐츠이거나 유저가 이미 구매한 상품일 경우 추천시켜줄 필요가 없다고 판단되는 아이템을 제거하는 것이다.

AI/추천시스템 2025.07.20

추천시스템의 단점

추천시스템이 갖는 제약 사항확장가능성추천 시스템의 특성 상, 운영 중인 서니스의 한 파이프라인으로 적용된다. 따라서 서비스의 특성과 자원 상의 제약 등의 한계에서 자유로울 수 없다.유저와 아이템의 수가 증가함에 따라 확장성의 제약은 크게 증가한다. 정확도를 위해 복잡한 모델만을 사용할 수 없는 딜레마가 있다.도메인 종속성서비스 도메인에 따라 추천 대상이 되는 아이템 특성이 다르다.데이터 타입: 이미지, 텍스트, 비디오, 오디오 ...아이템과 유저 관계: 소셜 네트워크, 이커머스, OTT ...추천 아이템의 특징과 도메인 특성에 따라 적용되는 알고리즘과 시스템 구조가 적절히 고안되어야 한다.비즈니스 목표의 다양성비즈니스 종속성이 큰 추천시스템의 특성 상, 다양한 비즈니스 목표가 존재한다.여러 비즈니스 목표..

AI/추천시스템 2025.07.20

추천시스템을 알아보자

추천시스템이란?유저와 아이템의 주변 정보와 상호작용 기록을 바탕으로 유저가 선호할 아이템을 예측하여 유저의 의사결정을 돕는 인공지능 서비스라고 정의할 수 있다.추천시스템에서 가장 중요한 컴포넌트들은 위에 진하게 표시한 것과 같이 유저, 아이템, 상호작용이다.유저: 서비스를 이용하는 주체아이템: 서비스에서 판매/제공하는 대상 물품 (예: 이커머스에서는 상품, 넷플릭스에서는 영화나 드라마)상호작용: 서비스 내에서 유저가 남기는 일련의 행동 기록 (예: 유저가 상품을 구매하거나 클릭, 유저가 콘텐츠를 시청하는 행위)왜 추천시스템이 필요할까기술이 발전되면서 데이터 즉 정보의 양이 많아지게 되면서 개인에게 노출되는 정보를 소화할 수 있는 범위를 넘어서게 되었다.이러한 증상으로 필터링으로써 추천시스템이 필요하게 되..

AI/추천시스템 2025.07.19

Spring Boot Record

RecordJava의 `record`는 불변 객체를 간결하게 표현할 수 있는 문법이다.복잡한 `getter`, `equals`, `hashCode`, `toString`와 같은 보일러플레이트 코드를 자동으로 생성해준다.public record CustomerRequest( String id, @NotNull(message = "Customer name is required") String name, @NotNull(message = "Customer name is required") @Email(message = "Customer email is not a valid email address") String email, Address address) { }위 코드를 ..

기타/개발일기 2025.06.01

서비스 디스커버리 Spring Cloud Netflix Eureka

서비스 디스커버리MSA와 같은 분산 구조는 서비스 간의 통신이 원활해야 한다.그러기 위해서는 `IP Address`와 `Port`를 이용하게 되는데 클라우드 환경에 배포를 하게 되면서 서비스가 오토 스케일링 등에 의해서 동적으로 생성되어 서비스의 IP가 변경되는 일이 있다.그래서 서비스를 호출할 때, 서비스의 위치 즉 IP Address와 Port를 알아낼 수 있어야 하는데, 이것을 할 수 있게 해주는 것이 서비스 디스커버리(Service Discovery)이다.서비스 디스커버리에는 클라이언트 사이드와 서버 사이드, 두 가지 방식으로 나뉜다.클라이언트 사이드클라이언트 사이드는 브라우저의 도메인 주소 렌더링 방식와 유사하다고 보면 된다.브라우저에 구글 도메인 주소를 입력하면 DNS 서버에서 구글의 IP를 ..

유용한 DB 마이그레이션 도구, Flyway

Flyway란 무엇인가?Flyway는 데이터베이스 마이그레이션 툴이다.그렇다면 마이그레이션은 뭘까? 마이그레이션은 이주하다라는 뜻으로, 데이터베이스 마이그레이션이라면 MySQL에서 PostgreSQL로 데이터베이스를 옮긴다는 뜻이다.처음에 Flyway가 데이터베이스 마이그레이션 툴이라고 하여 그러한 툴인줄 알았다.하지만 Flyway는 그런 의미가 아닌 데이터베이스 스키마 변경을 관리하는 도구이다.Flyway 공식 홈페이지에서 언급이 되어 있으며, 쉽게 말하자면 Git을 생각하면 된다. 그래서 Flyway는 데이터베이스 스키마의 버전관리 툴이다.Flyway의 사용법우선 Flyway를 사용하려면 dependency를 추가해줘야 한다.implementation 'org.flywaydb:flyway-core'i..

Spring Cloud Config 환경변수

MSA에 대해 학습하고자 공부하던 중 Spring Cloud Config Server를 사용하면 서 발생했던 문제에 대해 기록하고자 한다.먼저 Spring Cloud Config에 대해서 알아보자.Spring Cloud ConfigMSA는 각각의 마이크로 서비스로 애플리케이션을 만들어야 한다.그리고 각 애플리케이션을 개발하면서 사용하는 `application.properties`, `application.yml`설정 파일이 있을 것이다.각 서비스에 설정 파일을 각각 만들다 보면 추후에 수정사항이 생기거나 했을 때, 일일이 각 서비스로 찾아가 수정해야 하는 번거로움이 발생한다.그래서 결론은 이 MSA에서 편리하게 설정을 중앙 관리할 수 있는 것이 Spring Cloud Config이다.Spring Clou..