2025/04 6

인프런 : 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