[🐙 Git & Github ] Github Actions 을 활용한 CI/CD 파이프라인 구성하기
·
Git
CI/CD  CI/CD는 지속적 통합 Continuous Integration과 지속적 배포 Continuous Deploy/Delivery를 의미한다.  지속적 통합(CI)이란? CI는 개발자들이 코드 변경사항을 자주 공유하고 통합하는 과정이다.빈번한 코드 업데이트 : 개발자들이 작업을 자주 중앙 저장소에 올림.자동화된 검증 : 코드가 올라갈 때 마다 자동으로 빌드와 테스트가 실행됨.빠른 문제 발견 : 통합 과정에서 발생할 수 있는 문제를 조기에 발견하고 해결.  지속적 배포(CD)란? CD는 검증된 코드를 자동으로 배포하는 과정이며 두 가지 형태로 나뉜다.지속적 전달 Continuous Delivery : 배포 준비가 완료된 코드를 수동으로 배포지속적 배포 Continuous Deploy : 검증된 ..
CI/CD와 Docker 이해하기
·
DevOps
CI/CD  지속적인 통합 Continuous Integration지속적인 서비스 제공 Continuous Delivery지속적인 배포 Continuous Deployment  Docker 도커를 사용하는 이유애플리케이션 개발과 배포가 편리해짐 Docker Container 내부에서 여러 소프트웨어를 설치해도 호스트 OS에는 영향이 없음.CI 과정의 테스트에서 Docker 활용.어떤 서버에 올리더라도 같은 환경으로 구성된 컨테이너로 동작하기 때문에 표준화된 배포를 구성할 수 있음.→ 애플리케이션의 독립성과 확장성이 높아짐 Docker 설치 ( Mac 기준 ) homebrew를 이용해 Docker, Docker compose 설치# 사전에 homebrew 설치 필수# docker for mac설치brew ..
MSA와 Spring Cloud 이해하기
·
Spring
MSA Microservices Architecture (MSA) : MSA는 하나의 애플리케이션을 여러 개의 독립적인 서비스로 분리하여 개발, 배포, 유지보수를 용이하게 하는 소프트웨어 아키텍처 스타일. 각 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포되고 확장 될 수 있음. 서비스 간의 통신은 주로 HTTP/HTTPS, 메시지 큐 등을 통해 이루어짐.  Spring Cloud Spring Cloud : 마이크로서비스 개발을 위해 다양한 도구와 서비스를 제공하는 스프링 프레임워크의 확장.주요 기능서비스 등록 및 디스커버리 : Eureka, Consul, Zookeeper로드 밸런싱 : Ribbon, Spring Cloud LoadBalancer서킷 브레이커 : Hystrix, Resil..
Spring의 JPA와 Entity 이해하기
·
Spring
👇🏻 이전 글2024.08.06 - [Spring] - Spring의 IoC(제어의 역전), DI(의존성 주입) 이해하기  ORM과 JPA ORM : Object-Relational Mapping 객체와 데이터베이스를 매핑해주는 도구  JPA는 자바 ORM 중 대표적인 표준 명세이다.JPA는 애플리케이션과 JDBC 사이에서 동작되며 DB 연결 과정을 자동으로 처리해주고, 객체를 통해 간접적으로 DB 데이터를 다룰 수 있어 DB 작업을 보다 쉽게 처리 할 수 있다.  Entity Entity란 JPA에서 관리되는 객체. Entity는 DB의 테이블과 매핑되어 JPA에 의해 관리 됨. Memo Entity@Entity // JPA가 관리할 수 있는 Entity 클래스 지정@Table(name = "mem..
Spring의 IoC(제어의 역전), DI(의존성 주입) 이해하기
·
Spring
👇🏻이전 글2024.08.06 - [Spring] - Spring을 3 Layer Architecture로 역할 분리하기 IoC(제어의 역전)와 DI(의존성 주입)란? 좋은 코드, 즉 중복을 제거하고 표현이 명확한 코드, 처음 보는 사람도 쉽게 이해하고 수정할 수 있는 코드, 새로운 기능을 추가하더라도 구조에 큰 변화가 없는 코드를 만들기 위해서는 결합도와 의존성을 최소화 해야 한다.메모장 프로젝트 속 제어의 흐름은 Controller → Service → Repository 순서로 흐르게 되는데 이 때문에 한 부분에서의 코드 추가나 수정이 연쇄적으로 다른 부분들과도 이어져 개발에 있어 피로함과 비효율성을 일으킨다. 의존성 주입을 사용해 역순으로 흐르게 하면 결합도와 의존성이 최소화되어 이러한 문제를..
Spring을 3 Layer Architecture로 역할 분리하기
·
Spring
👇🏻 이전 글2024.08.05 - [Spring] - Spring과 MySQL로 CRUD 기능이 있는 메모장 만들기 Spring 프로젝트를 3 Layer Architecture로 역할 분리하기 3 Layer Architecture 란 처리 과정을 크게 Controller, Service, Repository 로 나누는 것을 뜻함.Controller : 클라이언트에서 온 요청을 받아 Service로 넘겨주고 처리 완료된 결과를 클라이언트에게 보여주는 역할Service : 사용자의 요구 사항을 처리. 비즈니스 로직 구현하는 곳. DB 저장 및 조회가 필요한 경우 Repository에 요청.Repository : DB 관리. CRUD 작업 처리.  Controller에서 Service 분리하기 Contr..
Spring과 MySQL로 CRUD 기능이 있는 메모장 만들기
·
Spring
스파르타 코딩의 를 수강하며 스프링 입문 강의에 나와있는 메모장 프로젝트에 대해 정리. MySQL 설치 및 Spring 프로젝트에 연결 후 테이블 생성하기https://dev.mysql.com/downloads/mysql/ 접속 후 자신의 OS에 맞는 버전을 다운 받아 설치터미널을 열어  cd /usr/local/mysql/bin  입력하여 위치로 이동  ./mysql -u root -p  입력 후  MySQL 설치 시 설정한 비밀 번호로 접속 CREATE DATABASE memo;  로 memo 테이블 생성 후  show databases;  명령어로 잘 생성되었는지 확인Intellij 오른쪽 상단의 DB 누른 후 + 버튼 → Data Source → MySQL 선택 → DB 아이디와 비밀번호 및 테..