본문 바로가기

Programing14

Redis 개념과 사용법 알아보기 Redis 란 ?레디스(Redis)는 REmote Dictionary Sever의 줄임말로 메모리 기반의 저장소 입니다.레디스는 RAM에 데이터를 저장하여 데이터를 더 빠르게 처리할 수 있습니다.데이터베이스와 다르게 Key-Value 데이터 구조로 데이터를 저장하고 다양한 자료 구조를 저장할 수 있는 NoSQL 구조로 되어 있습니다. Redis를 왜 사용할까? 일반적인 관계형 데이터 베이스는 영속성을 제공하는데 목적을 두고 있고, 데이터가 사라지지 않게 하기 위해서 파일시스템(SSD 또는 HDD) 에 저장합니다. 따라서 컴퓨터가 종료되어도 데이터가 사라지지 않지만 데이터를 읽고 쓰는데 오래 걸립니다  반면, Redis는 RAM에 데이터를 저장하기 때문에, 복잡한 입출력 과정이 필요하지 않고 RDB 에 비.. 2025. 3. 5.
도메인 주도 설계 스파르타코딩클럽의 단기 특강으로 도메인 주도 설계에 대한 특강을 듣게 되었고, 특강에 대한 내용을 정리하는 포스팅 입니다.1. 도메인 주도 설계(DDD) 란?DDD(Domain-Driven Design, 도메인 주도 설계) 는 도메인을 중심으로 소프트웨어를 설계하는것 입니다. 도메인 모델을 통해 비지니스 로직을 명확하게 표현하고, 시스템의 설계와 구현에 반영하여 복잡한 비지니스 로직을 가진 시스템, 대규모 엔터프라이즈 시스템 개발에 효과적입니다.도메인 : 해결하고자 하는 문제의 영역 1. DDD를 사용하는 이유?도메인을 명확게 구분하고 객체 간 관계를 올바르게 설계하기 위해서JPA를 효과적으로 활용하기 위해서프로젝트 규모가 크지 않고 작을때 문제가 되지 않지만,도메인이 커지고 복잡해 지면 객체 간의 연관.. 2025. 3. 4.
Docker 의 개념과 Docker Hub 에서 Image 받아오기 1. 도커란?Docker는 애플리케이션을 쉽게 개발하고, 테스트하고, 배포 할 수 있게 도와주는 소프트웨어 플랫폼으로 애플리케이션을 컨테이너라는 가볍고 이식성 있는 패키지로 독립시켜 실행환경을 만들어 줍니다. 리눅스 운영체제 기반으로 만들어져 있으며 간소화된 운영체제를 가진 도커 엔진 위에 컨테이너를 올려놓고 어플리케이션을 실행합니다. 도커의 로고를 보면 고래 위에 컨테이너가 올라간 모습인데, 독립된 컨테이너(=어플리케이션) 을 실어 나르는 배를 생각하면 도커를 쉽게 이해할 수 있습니다.2. 도커의 특징컨테이너화: 애플리케이션과 필요한 모든것을 하나의 패키지로 묶어 어디서든 실행할 수 있습니다.경량: Docker는 운영체제 커널을 공유하므로, 가상 머신보다 훨씬 가볍고 빠르게 실행됩니다.이식성: Dock.. 2025. 2. 27.
GitHub Project 생성 Issue 등록 이번 🍚삼식이 프로젝트를 진행하면서 GitHub Issue, Project 를 통해 개발 일정 관리를 제안했다.이전에 프로젝트를 진행했을 때 이슈를 사용했었는데 동료와의 별도의 별도의 소통없이 깃 허브에서팀원간의 작업도를 알 수 있어서 프로젝트 진행도에 대한 관리의 편의성을 느꼈기 때문에이번 프로젝트에서도 깃허브 이슈 사용을 적극적으로 제안했다.Issue? 프로젝트의 기획,작업, 개선 사항, 버그 수정, 새로 추가될 기능 등 모든 것을 이슈 라고 한다.담당자 지정, 라벨 추가, 마일스톤 설정 등 다양한 기능을 활용할 수 있다.Project? 깃허브의 프로젝트는 작업의 진행도를 보드 또는 로드맵으로 볼 수 있으며, Issue를 하나의 작업(task)으로 정의하여 진행 상황을 파악할 수 있다. 1. Pro.. 2025. 2. 26.
Git , GitFlow 사용법 정리 팀프로젝트에서 실무에서 협업때 사용하던 GitFlow 를 정리한 글입니다. 1. Git Flow 전략Git-flow에는 5 종류의 브랜치가 존재합니다.main : 제품,운영으로 출시될 브랜치develop: 다음 출시 버전을 개발하는 브랜치feature: develop 에서 분기를 시작으로 기능 개발하는 브랜치release: 이번 출시 버전을 준비하는 브랜치hotfix: 출시 버전에서 발생한 버그를 수정 하는 브랜치개발시 develop 브랜치로 소스를 관리하고, feature 브랜치를 통해 신규 개발을 합니다.기능 개발이 완료 되었다면 develop 브랜치로 merge 하게 됩니다. QA 를 하기 위해 Release 브랜치를 생성하고, QA를 진행합니다. QA 진행 중 버그가 발생했다면 release 브랜.. 2025. 2. 13.
Spring Cloud 학습 1. Spring Cloud란?Spring Cloude는 스프링에서 마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 프레임 워크의 확장 기능이다. 즉, MSA 를 쉽게 구현하고 운영할 수 있도록 도움을 주는 프레임 워크이다.Spring Cloud는 API 게이트웨이, 서비스 디스커버리, 로드밸런싱, 서킷 브레이커, 구성 관리 등 다양한 기능을 제공한다.  2. 기능 소개주요 기능기능 설명구현체서비스  디스커버리모든 서비스의 위치를 저장하고 인스턴스의 상태를 주기적으로 확인Eureka , Consul, Zookeeper 로드 밸런싱서비스 인스턴스 간의 부하를 분산시켜주는 역할서비스 디스커버리로 부터 서비스 인스턴스 리스트를 제공받아 로드밸런싱에 사용요청 실패시 다른 인스턴스로 전환됨. Ribbo.. 2025. 2. 12.