본문 바로가기
반응형

전체 글242

[공유/번역] Concise 간결한 Typescript Book 타입스크립트를 clean하고 강격한 코드를 자석하기 위한 핵심 개념과 기술을 알아볼 수 있다. Typescript 5.2 버전을 다룹니다. 출처 GitHub - gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and O The Concise TypeScript Book: A Concise Guide to Effective Development in TypeScript. Free and Open Source. - GitHub - gibbok/typescript-book: The Concise TypeScript Book: A Concise Guide t.. 2023. 8. 5.
[Line Music 발표영상 공부] 대규모 음악 데이터 검색 기능을 위한 Elasticsearch 구성 및 속도 개선 방법 - 2021 Korean version -LINE MUSIC에서는 음악을 제공하는 음악 레이블에 특화된 음악 정보 전문 검색 기능을 제공하고 있습니다.전문 검색에는 Elasticsearch를 활용하는데요.음악 데이터가 워낙 방대해 응답 성능이 저하되는 것이 실용화하는 데 큰 걸림돌이었습니다.이에 매핑 정의와 데이터 전처리, 검색 쿼리 등 다양한 검색 프로세스를 실용화하기 위한 연구가 필요했습니다.이번 세션에서는 전문 검색 기능을 개발하면서 겪었던 검색 항목 확대에 따른 성능 저하와 API 공개에 따른 부하 증가 등의 문제점을 짚어본 뒤 그 해결 방법을 소개하고, 대규모 데이터를 다루는 Elasticsearch의 성능 개선 연구 결과에 대해 이야기하고자 합니다.  Case 1) search feature .. 2023. 8. 5.
Memcache 와 Redis 비교 일반적으로 Redis는 Memcached의 기능을 대부분 포함하고 있다. Redis 에 저장할 수 있는 자료구조가 다양한 것을 볼 수 있고싱글스레드와 멀티스레드 차이점이 있습니다. (아래에 대용량 데이터처리는 멀티스레드가 더 좋은데 왜 redis 를 사용하는지 적어놨습니다) Memory Policy는 메모리가 풀로 찼을 때 자동적으로 어떤 데이터가 지워지느냐인데, Memcached는 LRU 알고리즘을 사용해서 가장오랫동안 사용하지 않은 키를 삭제합니다.Redis는 다양한 옵션을 제공하고 있어서 데이터 특성에 맞게 설정이 가능합니다. persistence 영속성은 장애를 대비하여 백업할 수 있는가 이며Memcached는 따로 제공하지 않고, Redis 는  AOF 또는 RDB 형식을 제공해줍니다. Redi.. 2023. 8. 4.
usecase 에 기반한 서비스 요구사항 정의하는 방법 패스트캠퍼스 강의 - Part 10. Redis, Kafka를 활용한 대용량 데이터 처리 프로젝트 이 서비스가 왜 개발되는 것인가? 영향 범위 파악, 확장성 고려 이 서비스 런칭 시점이 어떻게 되는가? 개발 우선순위와 완성도에 영향 이 서비스를 개발하기 위한 자원은 어떻게 확보되는가? (투자, 예산, 유휴 서버, 인력) 일을 하기 위한 도구가 준비되어 있지 않으면 기간에 영향을 줌 이 서비스의 주요 client가 어떻게 되는가? 요구사항 합의, 개발 현황 공유, client test, 런칭 후 모니터링, 장애 공유 1. 가용성 - RTO, RPO, 장애, uptime 2. 성능 - ops/sec, TPS, DataIn/s, DataOut/s 3. 비용 - 얼마만큼의 자원을 사용하여 해당 기능을 구축할 것.. 2023. 8. 4.
Redis Kafka 활용방법 패스트캠퍼스 강의 - Part 10. Redis, Kafka를 활용한 대용량 데이터 처리 프로젝트 마이크로서비스 구조의 서비스의 장점 - 서비스의 잦은 변경으로 인한 배포 - 모듈별로 적절한 배포 전략을 세울 수 있으므로 risk가 적다. - 기능별 유연한 scailing: 트래픽을 많이 받는 서비스에 대해서만 수평적 확장을 통해 사용성을 개선 - 여러 코드 언어 사용이 가능하다. - 기간이 한정돼있고, 빠른 반환이 필요할 때 사용한다. 1 장바구니: 로그인과 동시에 캐싱되거나 비로그인 시 임시로 저장 2 temporary user 정보: 로그인과 동시에 캐싱되는 정보 3 할인정보 4 쿠폰정보 5 배송정보 6 토큰정보, 세션정보: 로그인시 로그인 상태 유지를 위함 7 광고: 유저별, 상품별, 셀러별 8 .. 2023. 8. 4.
NestJs 밋업 Shall We NestJS? 정리 NestJS 책을 읽고 나서 강의를 봐볼까?해서 유투브 검색중에 밋업 영상을 발견했습니다. 핵심만 요약돼있는 영상이라 좋네요. 00:00 오프닝 07:29 남병관: NestJS 시작하기 58:18 이상훈: Angular 프론트엔드 개발자가 본 NestJS 1:21:20 이동현: NestJS에서 Hexagonal Architecture 구현하기 2:02:29 김수현: NestJS와 함께한 3년간 고군분투기 2:46:28 마무리 핵심키워드: controllers / providers / modules / pipes 서버 아키텍처를 쉽게 만들 수 있도록 기본 아키텍쳐를 제공한다. CRUD에 필요한 요소들을 가볍게 세팅해준다. Controller 우리가 아는 controller @Get, @Post, @Put,.. 2023. 8. 3.
[SpringBoot] Spring Batch 5 Spring Batch 대용량 일괄처리를 위해 설계된 배치 프레임워크 ex) 일관되고 반복적인 작업, 트랜잭션 관리, logging/trace 모니터링 등 대용량 레코드 처리 Job이라는 단위로 배치 작업을 분류한다. 한 개의 Job은 한 개 이상의 Step을 가진다. Step 안에는 Tasklet 또는 {Reader, Processor, Writer } 묶음이 존재한다. Batch 프로세스 단계 1) Batch Scheduler spring batch 자체는 configuration bean을 통해 Job이 실행될 경우 어떤 일을 처리할지 세팅시켜주기만 할 뿐이므로, Scheduler가 필요하다. 단계 2) JobRepository 배치를 수행하는데 필요한 object를 포함하고 있다. (Job, Jo.. 2023. 7. 20.
[공유] Whatap - 초보 개발자를 위한 설계 비법 와탭에서 받은 메일 중 참고하면 좋은글이 있어서 공유합니다! 초보 개발자를 위한 설계 비법 | 와탭 블로그 개발 노하우를 보완할 수 있는 마법같은 설계 비법은? www.whatap.io 입사 한지 얼마안됐을 때 처음 요구분석을하고 어떻게 개발을 시작할지 막막함을 느낄때가 많았던 것 같습니다. 서비스 이해도나, 경험이 부족하기때문에 당연히 어려운 부분이고, 이럴 때 시작 전 기본 설계를 작성 하면 많은 도움이될 것 같습니다. 기능 설계 기능목록 (Feature List) 작성해보기 (작은 기능으로 분리하면 좋다) 👉 어떤 기능을 개발해야하는지, 개발 목표가 구체적으로 그려지게됩니다. 👉 작은 단위 별로 나눔으로써 일정 예측이 수월해집니다. 추가로, 제 생각인데 기능 설계를 해보면 그게 그대로 TestCas.. 2023. 7. 14.
[공유] 네이버 fe-new 2023-07 https://github.com/naver/fe-news/blob/master/issues/2023-07.md 링크 & 읽을 거리 CommonJS is hurting JavaScript npm-esm-vs-cjs The Cost of JavaScript 2023 The Costs & Benefits of React Server Components Picking the Right Tool for Maneuvering JavaScript's Event Loop test262.fyi 새로 바뀐 네이버 메인 훔쳐보기 튜토리얼 Hands on with the Node.js test runner React Bits How I built my first Open Source project with ChatGPT a.. 2023. 7. 9.
728x90
반응형