분류 전체보기 95

유튜브 : CICD 1

CICD란?테스트, 통합, 배포의 과정을 자동화하는 것! 일반적으로 다음과 같은 과정으로 일어난다.DEVELOP → COMMIT → BUILD → TEST → DEPLOY특정 기능을 개발 완료해서 커밋을 찍으면 빌드게 되게 셋팅한다. 빌드가 완료되면 작성한 테스트 코드를 실행시킨다. 그런 뒤 테스트 코드가 통과하면 실제 서버 컴퓨터에 최신 코드가 배포된다. 사용하는 툴은 여러가지가 있다.Github Actions, Jenkins, Circle CI, Travis CI 등이중에서 현업에서도 많이 사용하면서, 무료로 사용 가능하고 빌드용 서버가 따로 필요없는 GitHub Actions를 활용해서 CICD를 구축할 것이다.현업에서 Jenkins도 많이 활용한다. 하지만 별도의 서버 구축을 해야 하기에 서버를 ..

개발/강의 2025.04.15

인프런 : Docker 6 - AWS ECR

AWS ECR이란?Dockerhub과 동일한 역할을 하는 서비스가 하나 더 있다. 그게 바로 AWS ECR이다. AWS ECR도 이미지를 저장 및 다운받을 수 있는 저장소 역할을 한다. 최근에는 AWS 클라우드 환경에서 인프라를 구축하는 일이 많아졌다. AWS ECR을 사용하면 다른 AWS Resource와의 연동이 편하고, AWS 내에서 한 번에 관리할 수 있기에 편하다는 장점이 있다. (물론, Dockerhub을 사용해도 크게 문제는 없다.) Docker의 가장 큰 장점은 이식성이다. Docker만 깔려있으면 어디에서든 내가 원하는 프로젝트를 실행시킬 수 있다는 게 장점이다. 이 때 Github을 활용해 프로젝트 코드 전체를 EC2로 옮겨 Docker 기반으로 실행시켜도 된다. 하지만 프로젝트에서 필..

개발/강의 2025.04.14

인프런 : Docker Copmose 4

Docker Copmose란?여러 개의 Docker 컨테이너들을 하나의 서비스로 정의하고 구성해 하나의 묶음으로 관리할 수 있게 도와주는 툴이다.(여러 개의 컨테이너를 관리하는 데 용이 & 복잡한 명령어로 실행시키던 걸 간소화 시킬 수 있음) Docker Compose를 활용해 1개의 컨테이너 관리하기[실습1] Docker Compose로 백엔드(Spring Boot) 실행시키기 인텔리제이에서 코드 작성 후package com.example.inflearn;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpubli..

개발/강의 2025.04.12

인프런 : Dockerfile 3

Dockerfile이란?Docker 이미지는 Dockerhub을 통해 다운받아서 사용할 수 있다. 이 Docker 이미지들도 누군가 만들어서 Dockerhub에 올려놓은 것이다. 그럼 도대체 이 Dcoker 이미지는 어떻게 만드는 걸까? Dockerfile을 활용하면 나만의 Docker 이미지를 만들 수 있게 된다.정리하자면, Dockerfile이란 Docker 이미지를 만들게 해주는 파일이다. [실습] 백엔드 프로젝트(Spring Boot) 프로젝트를 Docker로 실행시키기인텔리제이에서 코드 작성 후package com.example.inflearn;import org.springframework.web.bind.annotation.GetMapping;import org.springframework...

개발/강의 2025.04.11

인프런 : Docker Volume 2

Docker Volume(도커 볼륨)이란?도커 컨테이너에서 데이터를 영속적으로 저장하기 위한 방법이다. 볼륨(Volume)은 컨테이너 자체의 저장 공간을 사용하지 않고, 호스트 자체의 저장 공간을 공유해서 사용하는 형태이다. *도터 볼륨을 사용하는 이유)컨테이너가 가진 문제점 : 기존 컨테이너를 새로운 컨테이너로 교체하면, 기존 컨테이너 내부에 있던 데이터도 같이 삭제된다. 만약 이 컨테이너가 MySQL을 실행시키는 컨테이너였다면 MySQL에 저장된 데이터도 같이 삭제 돼버린다. 볼륨(Volume)을 사용하는 명령어docker run -v [호스트의 디렉토리 절대경로]:[컨테이너의 디렉토리 절대경로] [이미지명]:[태그명] [실습] Docker로 MySQL 실행시켜보기  볼륨(Volume)을 활용하지 않..

개발/강의 2025.04.11

인프런 : Docker 1

Docker란?컨테이너를 사용하여 각각의 프로그램을 분리된 환경에서 실행 및 관리할 수 있는 툴이다. Docker를 쓰는 이유에는 여러가지 장점이 있지만 그 중에서 핵심 장점 딱 1가지만 기억하자. 이식성 : 특정 프로그램을 다른 곳으로 쉽게 옮겨서 설치 및 실행할 수 있는 특성 뿐만 아니라 Docker를 사용하면 아래와 같은 장점이 있다.매번 귀찮은 설치 과정을 일일이 거치지 않아도 된다.항상 일관되게 프로그램을 설치할 수 있다. (버전, 환경 설정, 옵션, 운영 체제 등)각 프로그램이 독립적인 환경에서 실행되기 때문에 프로그램 간에 서로 충돌이 일어나지 않는다.Docker의 핵심 두가지!1) 컨테이너(Container)컴퓨터 안에 있는 미니 컴퓨터를 컨테이너라고 부른다. 독립적인 컴퓨터 환경을 가지고..

개발/강의 2025.04.10

본캠프 : 동시성 제어(Concurrency Control)

동시성 제어는 다수의 프로세스나 스레드가 동시에 동일한 자원에 접근할 때, 데이터 무결성을 보장하기 위해 사용한다.-프로세스란? 하나의 프로그램이다. 스프링 서버단으로 생각하자면 하나의 컴퓨터(서버)라고 봐도 무방하다. 하나의 서버에 여러 프로세스를 띄울 수 있다. 멀티프로세스이다.보통은 여러개의 서버에 하나의 프로세스가 각각 있는 것과 동일하다. -스레드란? 하나의 프로세스 안에서의 작업 단위이다. 일꾼!Spring으로 말하자면 하나의 request에 하나의 스레드가 할당된다. -StatelessHTTP Stateless : HTTP 요청 간의 상태 공유가 안된다.JWT Stateless : 서버가 상태를 갖고 있지 않다.(JWT가 가지고 있다.)Server Stateless : 서버는 상태를 가지면 ..

개발/부트캠프 2025.04.03

본캠프 : Redis 기초

Redis는 데이터 처리 속도가 엄청 빠른 NoSQL(키 밸류를 저장하는) 데이터베이스이다.-최대 장점은Redis는 인메모리에 모든 데이터를 저장한다. 그래서 데이터의 처리 성능이 굉장히 빠르다. -주요 사용 사례 중 우선 캐싱(데이터 조회 성능 향상)에 대해서 알아보자. set 키 밸류set 키 밸류 ex 만료시간(초)get  키keys *del  키ttl  키flushall users:100:profile -캐시란? 원본 저장소보다 빠르게 정보를 가져올 수 있는 임시 데이터 저장소이다. -캐싱이란? 캐시(임시 데이터 저장소)에 접근해서 데이터를 빠르게 가져오는 방식이다. “이 API는 응답 속도가 너무 느린데, 캐싱을 해두고 쓰는 게 어때?” -데이터를 캐싱할 때 사용하는 전략▶ 대표 전략 2가지1...

개발/부트캠프 2025.04.02

본캠프 : 어노테이션 정리_freship project

1. Spring  Boot  관련 어노테이션@SpringBootApplicationSpring Boot 애플리케이션의 진입점. 자동 설정, 컴포넌트 스캔을 포함@ComponentSpring이 관리하는 빈(Bean)으로 등록하는 기본 어노테이션@Service, @Repository, @Controller의 부모 개념@ComponentScan특정 패키지를 스캔하여 Bean으로 등록@Bean개발자가 직접 Bean을 생성할 때 사용@Configuration 클래스 내에서 선언하여 객체를 관리 가능@Configuration해당 클래스를 설정(Configuration) 클래스로 지정@Bean 메서드를 포함하여 Bean을 등록할 때 사용@Value("${jwt.secret.key}")설정 파일(application..

개발/부트캠프 2025.03.28