전체 글 87

뉴스 API에 Caching 적용 (1)

1. 캐싱 적용 부분1) 인기 키워드 집계 결과 저장- 현재 키워드 집계는 매 요청마다 ES 호출하고 집계2) 인기 키워드 클릭 시 해당 키워드를 포함한 데이터 조회 2. 고려 사항주기- 뉴스 업로드 주기가 1일 단위이기 때문에 인기 키워드 집계 결과 저장 TTL은 24시간으로 한다.(업로드 지연이나 스케줄러 오차를 고려해 25시간으로 설정 필요한가?-> ______)- 키워드 클릭 결과는데이터 양이 크기 때문에 시스템 자원의 효율적 관리를 위해 비교적 짧은 주기로 진행한다. 사람들이 많이 클릭하는 시간대에는 캐시 효과를 보고, 새벽 시간대에는 서버 자원을 비워줄 수 있다. 또한 집계 결과에 비해 변동 가능성이 있기 때문에 3시간 간격으로 설정하고자 한다. 인기 키워드 집계 결과 캐싱 기술 선정단순 결과..

Project/CureBridge 2026.05.06

캐싱(Caching)

1. 개념캐싱은 말 그대로 캐시를 사용하는 것으로, 데이터가 흐르는 통로(Client → Network → Server → DB)의 각 단계마다 방식이 다르다. 캐싱의 예로는 웹 브라우저의 이미지 저장이나 DB 쿼리 결과 캐싱, CDN을 통한 정적 파일 서비스 등이 있다. * CDN : 웹사이트의 콘텐츠(이미지, 영상, 파일 등)를 전 세계 곳곳에 분산된 서버에 저장하여, 사용자에게 가장 가까운 곳에서 데이터를 빠르게 전달하는 기술 2. 종류클라이언트(Client)사용자의 기기 내부(웹, 앱)에 데이터 직접 저장하는 방식이다. 대표적으로 HTTP 브라우저 캐시는 서버가 헤더에 Cache-Control을 담아서 보내면 브라우저가 이미지, JS 등의 파일을 로컬 디스크에 저장한다. 웹 스토리지는 JS로 브라..

CS/IT지식 2025.07.23

캐시(Cache)

1. 개념데이터나 값을 미리 복사해두는 임시 저장소로, 데이터 접근 시간이 오래 걸리거나 계산이 잦을 때 시간 절약을 위해 사용한다. 2. 특징주로 원래 데이터가 저장된 곳(HDD, 외부 서버)보다 물리적으로 훨씬 가깝거나 읽기 속도가 빠른 장치(RAM, CPU 내부)를 사용한다. 기존 저장소와 차이는 더 작고 비싸지만 속도가 매우 빠르다.예를 들면, 기존에 접속했던 사이트는 캐시에 대용량 이미지 등의 파일을 저장해둬서 나중에 접속했을 때 빠르게 접근 가능하다. 3. 종류위치로컬 캐시(Local Cache)는 애플리케이션 서버 내부의 메모리(RAM) 에 데이터를 저장한다. 네트워크 통신이 필요없기 때문에 속도가 가장 빠르다. 보통 서버 1대일 때 사용된다.분산 캐시(Distributed Cache)는 애..

CS/IT지식 2025.07.23

[250721 TIL] 카프카 실습 환경 구축 및 CureBridge 공지사항 구체화

1. 오늘 할 일 1) 카프카 실습 환경 세팅 완료2) CureBridge 공지사항 CRUD 구체화 구현 완료 2. 오늘 한 일* 카프카 *링크실습 환경 : VirtualBox학습 내용 : 우분투 설치 및 다른 SW 설치, 고정 IP 할당이었으나 m1 맥북의 경우 해당 프로그램 사용이 불편하다보니 많이 헤매다가 결국 Docker로 노선 변경하기로 결정하고 끝남. * CureBridge *링크실습 환경 : IntelliJ학습 내용 - 리팩토링(보드 유형 입력받는 부분 제거) - 페이징 처리 - delete 부분 soft로 처리 - 검색 기능 일부 진행 3. 내일 할 일1) 카프카 실습 환경 구축 완료2) 카프카 Topic, Producer, Consumer 이해3) 공지사항 검색 기능 구현4) 공지사항 ..

TIL 2025.07.21

보드 CRUD [공지사항]

1. 구체화 내용1) 기존의 requestDto 에서 boardType 받던 부분을 requestDto에서 제거하고 컨트롤러에서 값을 고정하여 처리 // 게시물 등록 @PostMapping public ResponseEntity createBoard(@RequestBody BoardRequestDto requestDto, @RequestParam Long userId) { BoardResponseDto responseDto = boardService.createBoard(requestDto, userId, BoardType.NOTICE); return new ResponseEntity(responseDto, HttpStatus.CREATED); } 2) 페이징 처리 - 기존의 List 형태에서 P..

Project/CureBridge 2025.07.21

섹션1. 카프카 실습 환경 구성 [카프카 완벽 가이드]

1. 카프카 소개 및 장점- 이벤트 스트리밍 플랫폼 -> Messaging- 오픈 소스- 서브 시스템 ↑ 관계성 ↑ -> M:M을 메시징 시스템을 거치도록 함 (M:1 1:M)- 대용량- 고성능- 확장성 -> 다양한 환경 지원- mission critical에 적합. 안전성이 높음 2. 실습 환경 구축1) 카프카 서버 구축 (가상 환경)- VirtualBox 다운로드 -> ubuntu 설치 -> JDK 및 Confluent Kafka 설치2) 카프카 클라이언트 구축- JDK 설치 -> IntelliJ 및 기타 툴 설치 3. Apache Kafka VS CONFLUENT1) Apache Kafka- 오픈소스 기반 무료- 사용자층 많음 2) CONFLUENT- Connector, Schema Registr..

카테고리 없음 2025.07.21

도커 이해하기

도커 이미지도커에서 필요한 서버 프로그램 + 소스코드 + 실행 파일을 모아 둔 것.ubuntu, redis, kafka 같은 이미지도 있고 내가 필요한 환경에 들어가는 이미지가 여러 개라면 dockerfile에 다 넣어놓고 빌드하면 또 다른 이미지가 된다. 도커 컨테이너만들어 놓은 이미지를 실행하려는 공간. ubuntu만 쓴다거나 하면 이런 식으로 ubuntu로 만들어진 컨테이너 환경을 생성하면 된다.docker run -dit --name '컨테이너이름' ubuntu 내가 dockerfile로 만든 이미지로 컨테이너를 생성할 때엔 아래와 같이 생성하고 build하면 Dockerfile이라는 이미지가 생성된다.$ vi Dockerfile$ docker build 그리고 --tag 옵션으로 이미지의 ..

CI CD 2025.07.21

Github Actions를 활용한 CI/CD 파이프라인

1. Github Actions란: Github에 CI/CD 서버가 내장되어 따로 구축할 필요 없음 2. 동작 방법- repository의 .github/workflows 디렉토리에 필요한 actions 파일들을 yaml 형식으로 작성- yaml 파일은 반드시 .github/workflows 폴더 아래에 위치해야 함. 3. Github Actions의 CI: test를 통과한 코드만 develop브랜치와 main브랜치에 merge되도록 함 -> 오류 방지, 안정적인 코드 배포, 버그 빠르게 발견 4. Github Actions의 CD: main 브랜치에 코드가 통합된 경우 운영 환경에 빠르게 배포할 수 있게 자동화함 5. Github Actions 관계도1) workflow - 최상위 개념 - 여러 Jo..

CI CD 2025.07.03