본문 바로가기

전체 글

함께 자라기 - 자라기 파트 함께 자라기 의 첫 번째 섹션인 '자라기' 파트는 개인이 어떻게 하면 더 효과적으로 학습하고 성장할 수 있는지에 대한 실전적인 방법론을 다룬다. 함께 자라기가 좋은 이유는 각종 논문과 통계를 주장에 대한 근거로 들며 주관적이기 보다 객관적으로 어떻게 학습을 해야하는지 다루기 때문이다. 이런 예시 중 기억에 남는 하나는 경력과 실력의 상관관계에 대한 해석이다. 경력은 초반에는 어느정도 실력에 영양을 주지만 몇년 이상부터는 경력과 실력은 서로 영향관계가 거의 없다는 주장을 논문과 상관지수를 통해 이야기한다. 함께 자라기의 자라기 파트는 크게 아래와 같은 내용에 대해 말한다. 1. 야생 학습 (Wild Learning)2. 자신의 실력을 높이는 '의도적 수련'3. 몰입을 위한 난이도 조절4. 학습 프레임워크.. 더보기
요즘 개발자를 위한 시스템 설계 수업 15,16장 - 면접 준비, 컨닝노트? 15장 - 시스템 설계 면접을 준비하는 팁 15.1. 시스팀 설계 면접을 준비하는 방법 - 이론적인 지식 바탕으로 실제 경험을 쌓기 + 전달을 정확히 할 수 있도록 커뮤니케이션 능력 키우기 1. 기본 개념 확실히 익히기확장성 - 수직 확장성, 수평 확장성, 로드 밸런싱, 분산 시스템 개념에 대해 알아두기.데이터베이스 - SQL, NoSQL 차이 파악, 인덱싱, 샤딩, 데이터베이스 레플리카에 대한 이해. 관계형 데이터베이스, 비관계형 데이터베이스를 언제 사용할지 구분캐싱 - 캐싱 전략들, 캐시 삭제 정책(뭐더라?.. 빼낸다 그런 단어였는데)일관성 가용성 : CAP 정리, PACELC 정리(CAP를 상황별로 조금 더 세부적으로 나눈 정리였음), 강한 일관성, 최종 일관성 개념 이해, CAP 에 상충되는 개념.. 더보기
요즘 개발자를 위한 시스템 설계 수업 10장 - 근접 서비스 1. 근접서비스란?- 사용자 위치 데이터를 기반으로 사용자 경험을 제공하고 운영을 더 효율적으로 만들어준다. 실제 사용사례들은 승차 공유 (우버, 리프트), 지역 검색 및 추천 서비스 (옐프, 포스퀘어), 소셜 네트워킹 및 데이팅 앱 (틴더, 범블), 음식 배달 서비스 (도어대시, 그럽허브), 네비게이션 및 지도 서비스 (구글 맵, 웨이즈), 피트니스 및 건강 추적 앱(스트라바, 핏비트) 등 많은 곳에서 쓰이고 있다. 우리나라도 관련 분야를 찾아보면 많은 서비스 들이 있을 듯하다. 2. 기능적 요구사항과 비기능적 요구사항- 책에서는 내 주변 음식점 찾기와 주문하기라는 단순화된 서비스를 가정하고 요구사항을 정의한다. 기능적 요구사항은 아래와 같다.- 사용자는 자신의 위치를 기반으로 음식점 검색이 가능... 더보기
요즘 개발자를 위한 시스템 설계 수업 9장 - 단축 URL 1. 단축 URL을 사용해야하는 이유 글자수 제한, 단축 URL의 클릭률을 통한 리서치, 마케팅(간결, 가독성 상승), QR 코드 - 단축 URL의 경우 속도가 더 빠름 등등 단축 URL의 장점은 기능성이나 심미성에서 긴 URL에 비해 가지는 장점이 많다. 2. 단축 URL의 기능적 요구사항 핵심 요구 사항은 아래와 같다. 긴 URL을 입력 받으면 단축 URL을 반환해야 한다.단축 URL을 입력 받으면 원래의 긴 URL을 반환해야 한다.단축 URL은 고유해야 하며 길이도 일정해야한다. 3. 비기능적 요구사항대규모 시스템이라는 가정하에 대규모 시스템에서 가져야할 요구 사항들을 단축 URL도 가져야한다. 가용성 - 시스템이 항상 안정적으로 동작확장성 - 사용자 1억명 이상을 지원할 수 있어야 함. 갑작스런 .. 더보기
요즘 개발자를 위한 시스템 설계 수업 chap. 01, 02, 03 chap01.시스템 설계의 정의 소프트웨어 시스템은 특정 작업이나 일련의 작업을 수행하려고 함께 동작하는 컴포넌트를 말함.분산 소프트웨어 시스템은 각 구성요소가 소프트웨어 시스템적 특징을 가지며 모든 구성요소는 어떤 특정한 공통 목표를 위해 네트워크를 통해 연결되어 있음. 시스템 설계는 소프트웨어 시스템과 분산 소프트웨어 시스템의 아키텍쳐, 컴포넌트 모듈, 인터페이스 및 상호작용을 정의 하며 기능적,비기능적 요구사항을 채우는 과정이다. -> 요구사항을 시스템구조, 구현, 유지보수 방식을 설명하는 청사진인나 계획으로 변환하는 작업이다. 시스템 설계를 진행하는 일반적인 과정1. 요구사항 분석2. 상위 수준의 아키텍쳐 설계 - 시스템 아키텍쳐, 데이터 흐름, 확장성, 장애 허용 시스템 등을 고려하여 설계3. .. 더보기
게시판에 solr 연결해서 검색해보기 - 1. 환경 설정 Solr는 Apache 제단에서 만든 오픈소스 검색엔진이다.나는 elasticsearch만 알고 있었는데 부장님께서 solr의 존재를 알게 해주셨다.elasticsearch와 solr 모두 Apache lucene을 기반으로 만들어진 검색엔진이다. 이번 기회에 간단히 검색엔진 구축을 하면서 알게 된 점에 대해 기록해보려고한다. 환경 구성 1. Solr 설치최신 버전(Solr_9.9)에는 Data Import Handler가 Deprecated 되었다는 얘기를 들어서 빠르고 편하게 구축해보기 위해Solr_8.11.1 버전으로 진행하였다.https://archive.apache.org/dist/lucene/solr/8.11.1/ Index of /dist/lucene/solr/8.11.1 archive.a.. 더보기
netstat -ano | findstr :포트번호 로 사용중인 포트가 없지만 포트가 사용중이라고 할 때 (winnat 가상화 서비스 포트 예약) https://github.com/docker/for-win/issues/3171 Unable to bind ports: Docker-for-Windows & Hyper-V excluding but not using important port ranges · Issue #3171 · docker/for-wiI have tried with the latest version of my channel (Stable or Edge) I have uploaded Diagnostics Diagnostics ID: BB0297BB-C287-4F0B-A007-72B5F2D7BD72/20190102235413 Expected behavior Be able to bind...github.com도커를 사용한 가상화 환경에서.. 더보기
도커를 여러대 띄우는 것과 버츄얼박스 여러대를 띄우는 것의 차이 쿠버네티스를 공부하면서 왜 virtualbox를 여러대 띄워서 worker node와 master node를 따로 만드는건지 이해가 가지 않았다.도커 컨테이너를 여러개 띄우는거랑 무슨 차이인가 했는데... 확실히 차이가 있었다. 질문 1 : 왜 쿠버네티스 클러스터를 만들 때 버츄얼 박스를 이용하는지? ChatGPT의 말:좋은 질문이에요 👍“쿠버네티스 클러스터를 만들 때 왜 VirtualBox를 쓰는가?” — 이건 학습용, 테스트용, 혹은 로컬 개발 환경에서 쿠버네티스를 구성할 때 자주 나오는 의문이에요.핵심 이유는 “격리된 가상 환경을 손쉽게 구성하기 위해서”입니다.🧩 1. 쿠버네티스는 여러 노드(서버)가 필요함쿠버네티스(Kubernetes) 클러스터는 기본적으로 다음 두 가지를 필요로 해요.. 더보기