개발/알면 좋은 5

도커(Docker)

🐳 도커(Docker)란?앱이 실행되는 환경 자체를 하나로 묶어서 어디서든 동일하게 실행할 수 있도록 도와주는 도구용어뜻이미지앱 + 실행환경 + 설정을 통째로 묶은 파일 (요리 재료 패키지)컨테이너이미지를 실행한 실체 (요리해서 실제로 먹는 음식)Dockerfile이미지 만드는 레시피 같은 설정 파일Docker Hub도커 이미지들을 올려두는 저장소, 깃허브의 이미지 버전🔥 실무에서 도커를 이해하다[🧨 사건 발생 개요]AA가 신버전 이미지를 만들고 기존 이미지를 삭제함문제는 서비스 설정이 여전히 구버전 이미지를 참조하고 있었던 것근데 그러고 나서 정기배포 진행됨[💥 결과]✅ 배포는 됐음 (스크립트 실행)❌ 근데 실제로는 참조 중인 이미지가 존재하지 않음❌ 그래서 컨테이너를 새로 띄우지 못함❌ 결국 ..

클라우드 DB vs 물리 서버 DB

🌐 클라우드 DB vs 물리 서버 DB, 웹 개발자가 꼭 알아야 할 이야기웹 개발을 하든, 앱 개발을 하든,우리가 어떤 데이터를 저장해야 하는 상황은 꼭 생기기 마련이다.사용자가 로그인했는지어떤 상품을 주문했는지작성한 글은 뭔지 등등...이런 데이터를 저장해두는 공간이 필요한데,그게 바로 우리가 흔히 말하는 데이터베이스(DB)다.💡 쉽게 말하면, 데이터 베이스는 '데이터를 안전하게 보관해주는 저장소'라고 생각하면 된다.(물론 더 깊게 들어가면 RDB니 NoSQL이니 여러 종류가 있지만, 여기서는 개념 위주로~)🏠  그럼 이 DB는 어디에 있을까?우리가 개발하면서 만드는 UI나 화면은 프론트엔드에서 담당하지만,그 뒤에서 실제 데이터를 주고받고 저장하는 건 서버와 DB의 역할이다. 그런데 이 DB가 어..

데브옵스(DevOps)

DevOps란?DevOps = Development (개발) + Operations (운영)개발팀과 운영팀의 협업 문화를 통해,코드를 더 빠르고 안정적으로 배포하고 운영하는 방식 개발 -> 배포 -> 운영 -> 피드백 -> 개선의 전체 사이클을 자동화하고 효율화하려는 문화이자 방법론DevOps 사이클DevOps는 단순한 "직무"가 아니라 사이클로 존재한다DevOps 관련 기술/도구범주도구설명CI/CDGitHub Actions, Jenkins, GitLab CI코드 변경 시 자동 빌드/테스트/배포IaC (인프라 코드화)Terraform, Ansible서버 인프라를 코드로 관리컨테이너/오케스트레이션Docker, Kubernetes환경 통일, 배포 자동화모니터링Prometheus, Grafana, ELK서버 ..

카프카(Kafka)

✏️ 한 줄 정리많은 시스템 간에 데이터를 실시간으로 주고받게 해주는 고성능 메시지 브로커 Kafka란?Apache Kafka는 대용량의 데이터를 빠르고 안정적으로 처리하기 위한 분산 메시지 큐 시스템Kafka를 왜 사용할까?웹 서비스에서 시스템이 많아지면 각 시스템 간 데이터 연동이 굉장히 복잡해지기 때문에 !예를 들어, 주문이 발생하면 결제, 배송, 재고, 알림 등 연관된 모든 시스템이 "주문 발생" 이벤트를 알아야하는데,이때 Kafka를 이용하면 한 번의 메시지 발행으로 여러 시스템이 동일한 이벤트를 받을 수 있다.기본 개념개념설명Producer메시지를 Kafka로 보내는 주체 (ex. 주문 서버)ConsumerKafka에서 메시지를 구독해서 처리하는 주체 (ex. 배송 서버, 알림 서버 등)Top..

래디스(Redis)

1. Redis는 무엇일까?Redis(Remote Dictionary Server)는 메모리에 데이터를 저장하는 NoSQL 데이터베이스이다.보통 DB라고 하면 디스크에 저장하는 걸 떠올리지만, Redis는 데이터를 RAM(메모리)에 저장하기 때문에 속도가 엄청 빠르다.키(Key)와 값(Value) 형태로 데이터를 저장하는 인메모리 기반의 Key-Value Store다양한 데이터 타입을 지원 -> 단순 캐시 이상으로 활용 가능2. 왜 캐시로 Redis를 많이 쓸까?웹 서비스에서는 DB 요청이 많아지면 속도가 느려지고 서버 부하가 굉장히 심해지기 때문에,이때 자주 조회되지만 자주 바뀌지 않는 데이터를 Redis에 저장해두면,웹 서버는 DB가 아닌 Redis에서 빠르게 데이터를 가져올 수 있어서 속도 향상과 ..