[Codex] 매일 CS 공부가 귀찮아서 AI에게 시켰습니다
·
AI
최근에 CS 시험이 있어서 컴일 문제집을 풀며 공부를 했는데 이 기회에 꾸준히 CS를 공부해야겠다는 생각이 들었다.그런데 막상 공부하려고 하면 어디서부터 해야할 지, 맞게 하고 있는건지에 대한 의심이 자꾸 들었다. 자료를 읽는다고 해도 머리에 오래 남는 것 같지 않았고 단순히 읽기만 하는 방식에는 한계가 있다고 느꼈다. 마침 요즘 Codex를 활용해 이것저것 만들어보고 있었고 요즘IT라는 사이트에서 뉴스를 Slack으로 자동 전송해주는 것을 보고 "CS 공부도 Slack으로 자동화하면 어떨까?"라는 생각이 들었다. 그래서 매일 백엔드 면접 대비 질문을 생성하고 답변과 꼬리 질문까지 함께 정리해서 Slack으로 보내주는 학습 자동화를 만들었다!!1. 프롬프트단순히 CS 질문만 생성하는 것이 아니라, 실제 ..
[DB] 인덱스로 n번 페이지 m개의 게시글을 조회하기
·
대규모 시스템 설계
더보기인프런:스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판을 들으며 작성한 내용입니다.n번 페이지의 게시글 조회하기게시판에서 게시글 목록을 조회하는 방식은 크게 두 가지가 있다.페이지 번호 방식무한 스크롤 방식현재는 페이지 번호 방식을 사용하고 있다.select *from articlewhere board_id = 1order by created_at desclimit 30 offset 90; 위 쿼리는 1번 게시판의 게시글을 최신순으로 정렬한 뒤, 91번째 데이터부터 30개를 조회한다.하지만, 조회해야 하는 데이터가 많아질수록 성능이 느려질 수 있다. offset은 앞의 데이터를 건너뛰는 것처럼 보이지만, 실제로는 데이터베이스가 앞쪽 데이터까지 읽은 뒤 버리는 방식으로 동작하기 때문이..
[CI/CD] Jenkins로 처음 구축해본 CI/CD 파이프라인3
·
Infra
더보기인프런-애플리케이션 배포 자동화와 CI/CD 강의를 듣고 작성된 글입니다.CI/CD는 왜 필요할까?CI/CD가 없던 시절에는 개발자가 직접 빌드와 배포를 진행했다.코드 수정↓직접 빌드↓직접 서버 접속↓파일 복사↓직접 실행하지만 프로젝트 규모가 커지고 개발자가 많아질수록 여러 문제가 발생한다.배포 과정이 사람마다 달라질 수 있다.테스트 없이 배포가 진행될 수 있다.반복 작업으로 인해 실수가 발생할 수 있다.장애 발생 시 원인 추적이 어려워진다.CI/CD는 이러한 반복 작업을 자동화하고 사람이 실수할 수 있는 부분을 줄이기 위해 등장했다.CI (Continuous Integration)CI는 지속적 통합(Continuous Integration)을 의미한다.여기서 통합이란 개발자가 작업한 코드를 메인 ..
[NGINX] Jenkins로 처음 구축해본 CI/CD 파이프라인2
·
Infra
더보기더보기더보기인프런-애플리케이션 배포 자동화와 CI/CD 강의를 듣고 작성된 글입니다.기존에는 애플리케이션을 배포할 때 실행 중인 애플리케이션을 종료한 뒤, 패키징된 파일을 서버로 전송하고 다시 실행하는 방식으로 진행했다.애플리케이션 종료→ jar 파일 전송→ 애플리케이션 재실행하지만 이 방식에는 문제가 있다. 애플리케이션이 종료된 순간부터 다시 실행될 때까지 사용자의 요청을 처리할 수 없기 때문이다.즉, 배포 과정에서 서비스가 일시적으로 중단될 수 있다. 이 문제를 해결하기 위해 여러 대의 애플리케이션 서버를 두고 서비스를 운영하는 방식을 생각할 수 있다. 하나의 서버를 배포하는 동안 다른 서버가 요청을 처리하도록 하면 서비스 중단 시간을 줄일 수 있다.하지만, 서버가 여러 대가 되면 또 다른 문제..
[Jenkins] Jenkins로 처음 구축해본 CI/CD 파이프라인1
·
Infra
더보기인프런-애플리케이션 배포 자동화와 CI/CD 강의를 듣고 작성된 글입니다.백엔드 개발을 공부하면서 API를 만들고 기능을 구현하는 경험은 많이 해봤지만, 배포는 제대로 해본 적이 없었다. 프로젝트를 진행하며 배포 환경 때문에 예상치 못한 문제를 겪기도 했고 실제 서비스가 어떻게 서버에서 실행되는지 궁금하기도 했다. 그래서 이번에는 Jenkins를 이용한 자동 배포 강의를 따라가며 직접 CI/CD 환경을 구축해보았다.1. Jenkins 서버 구축Jenkins 서버 생성먼저, Jenkins를 설치할 서버를 생성한다. 서버 위에 Jenkins를 설치하고 접속한다.https://github.com/lleellee0/application-deploy-advanced/blob/main/1_0_jenkins_s..
[Elasticsearch] Elasticsearch 인덱스 및 도큐먼트 CRUD
·
ELK
더보기인프런-실전에서 바로 써먹는 Elasticsearch 입문(검색 최적화편)을 듣고 작성한 글입니다.Elasticsearch의 기본 용어 (vs MySQL)Elasticsearch 특징- 데이터베이스 - 데이터를 저장/조회/수정/삭제할 수 있음.- 데이터를 저장하기 위해 가장 먼저 인덱스를 만듬- 인덱스를 만들 때 어떤 유형의 데이터를 넣을 지 매핑을 정의함.- 테이블의 필드에 맞게 데이터를 저장함 MySQL 과 Elasticsearch 와 비교해서 이해하면 훨씬 쉽다.MySQLElasticsearch테이블(table)인덱스(index)컬럼(column)필드(field)레코드(record), 로우(row)도큐먼트(document)스키마(schema)매핑(mapping) Elasticsearch의 CR..
[Elasticsearch] ElasticSearch, Kibana 설치하기
·
ELK
더보기더보기인프런-실전에서 바로 써먹는 Elasticsearch 입문(검색 최적화편)을 듣고 작성한 글입니다.지난 프로젝트에서 Elastcisearch를 구현해보지 못해 아쉬워서 강의를 결제해서 듣기 시작했다 ! 1. Elasticsearch 란? Elasticsearch는 검색, 데이터 분석에 최적화된 데이터베이스이다.이는 두 가지로 활용이 가능한데 1. 데이터 수집 및 분석 대규모 데이터(로그) 수집 , 분석하는데 최적화되어있고 elasticsearch, logstash, kibana 활용해 데이터 수집 및 분석한다. 2. 검색 최적화데이터가 많더라도 뛰어난 검색 속도를 가지고 있다. 오타나 동의어를 고려해 유연하게 검색할 수 있다. 이 강의는 2번에 관한 내용을 담고 있다. 2. Elasti..
[Elastic Stack] ELK Stack 기반 로그 모니터링 시스템
·
ELK
AND 프로젝트를 하면서 실시간으로 계속 탐지를 하다보니까 로그가 쉴새없이 쌓였다. 그러다보니 FCM 오류를 확인하는데까지 찾기도 어렵고 시간도 오래걸려서 로그 모니터링을 해보고 싶었는데 그 중 ELK 스택을 선택해서 강의를 다 들었다. ELK로 선택한 이유는 채용 공고에서 종종 보이던 기술이기도 했고 실제로 많이 쓰이는 만큼 한 번 제대로 써보고 싶었다. 그리고 이전 프로젝트에서 Elasticsearch를 적용해보고 싶었는데 못 해봤던 게 계속 아쉬워서 이번 기회에 같이 공부해보기로 했다. 로그 모니터링 시스템을 구축하기 위해 대표적으로 사용하는 도구는 다음과 같다.ElasticsearchLogstashKibanaFilebeat이 네 가지를 합쳐 ELK Stack이라고 부른다. 로그 모니터링 시스템이..
[k8s] 로컬로 쿠버네티스 구축하기 - minikube, kubectl
·
Infra
1. 필요한 툴 설치하기쿠버네티스를 로컬에서 사용하기 위해서는 minikube를 이용하면 된다. docker와 쿠버네티스 관리 툴인 kubectl(cli 환경에서 쿠버네티스 api 서버에 각종 리소스 관련 요청을 보낼 수 있다.)도 cli 명령어로 간단하게 설치할 수 있으니 아래 공식문서를 참고해서 설치하면 된다. https://minikube.sigs.k8s.io/docs/start/?arch=%2Fmacos%2Farm64%2Fstable%2Fhomebrew minikube startminikube is local Kubernetes, focusing on making it easy to learn and develop for Kubernetes. All you need is Docker (or si..
[Neo4j]Graph 데이터에서 노드 식별자(key)를 안정적으로 관리하기
·
[Linkompany] 뉴스와 공시를 통합 기업 관계 시각화 프로젝트
2026.03.05 - [[Linkompany] 뉴스와 공시를 통합 기업 관계 시각화 프로젝트] - [Neo4j]Neo4j 그래프 데이터를 서비스 API 구조로 변환하기이전에 Neo4j 그래프 데이터를 서비스에서 사용할 수 있는 형태로 가공하는 과정을 정리한 글을 작성했었다. 그 글에서는 전체적인 흐름 위주로 설명했는데, 실제로 구현하면서는 같은 회사를 어떤 기준으로 식별할 것인지를 먼저 정해야 했다. 이번 글에서는 그 부분을 따로 정리해보려고 한다.1. 그래프 데이터에서는 노드 식별자가 항상 일정하지 않다기업 노드를 보면 다음과 같은 필드들이 존재한다. 필드설명ticker상장 기업만 존재corp_code일부 기업만 존재idNeo4j 내부 노드 id문제는 모든 노드가 동일한 식별자를 가지고 있지 않다는 ..