Docker에 대해서 알아보자 - 2.Dockerfile
·
프로젝트
--cache-from📌 Dockerfile 개념Dockerfile은 "docker image를 어떻게 만들 것인가?"에 대한 레시피라고 생각해도 좋습니다.Dockerfile은 docker image를 만드는 방법이 담겨있고, docker-compose는 "image를 어떻게 실행할 것인가"에 대한 방법이 담겨있습니다. 이번 게시물에서는 Dockerfile의 명령어들과 어떻게 Dockerfile을 작성해야 하는지 알아보겠습니다.ADD : 로컬/원격 파일 추가, 압축 파일 자동 해제ARG : 빌드 시 사용되는 변수 설정CMD : 컨테이너 실행 시 기본 명령COPY : 로컬 파일/디렉터리 복사ENTRYPOINT : 고정 실행 명령어 설정ENV : 환경 변수 설정EXPOSE : 애플리케이션이 사용하는 포트 ..
Docker에 대해서 알아보자 - 1.Docker의 개념과 생태계
·
프로젝트
💡 도커는 Linux Container를 기반으로 만든 OS 레벨의 가상화를 도와주는 프로그램입니다. Container라는 단위를 이용해서 애플리케이션과 그 실행에 필요한 라이브러리, 설정 파일 등을 하나의 패키지로 묶어, 어떤 환경에서도 동일하게 실행될 수 있도록 보장해 줍니다.기존의 가상 머신과 달리, 컨테이너는 호스트 OS의 커널을 공유하면서 격리된 공간에서 실행되기 때문에, 리소스 사용이 적고 실행 속도가 빠르며, 배포가 간편하다는 장점이 있습니다. 이러한 특성 덕분에 도커는 개발, 테스트, 운영 환경 간의 차이를 최소화하고, CI/CD, 마이크로서비스, 클라우드 환경에서 매우 널리 사용되고 있습니다.📌 1. 왜 도커를 써야 할까요?1️⃣ Environment Disparity 문제 해결..
Clokey 프로젝트 회고
·
ETC
📌 프로젝트 개요 Scope : 2024.12 ~ 2025.02 (약 3달)Team : PM(1) , Design(2), Front(4), Backend(4)⚡ Frontend 기술 스택 ( Github Repository : 🔗)언어: Swift 프레임워크: UIKit 레이아웃: SnapKit, Then 네트워크: Moya 이미지 캐싱: Kingfisher 온보딩 & 스플래시 애니메이션: Lottie ⚡ Backend 기술 스택 (Github Repository : 🔗)언어 & 프레임워크: Java, Spring Boot 데이터베이스: MySQL, JPA 검색: Elasticsearch 알림: FCM (Firebase Cloud Messaging) 인증 및 보안: 카카오 & 애플 로그인, JWT,..
배포의 모든 것 - 4. 도메인 연결과 HTTPS 적용하기
·
프로젝트
🥳 현재 자동으로 EC2로 배포가 되도록 간단히..? CI/CD를 설정해 두었습니다.이번 포스트에서는 도메인을 구입하고 ip가 아니라 도메인 주소로 배포된 서버로 접속할 수 있도록 연결해 보도록 하겠습니다. 현재의 public IP로 접속을 해봅시다. 다음과 같이 사이트에 연결할 수 없다고 출력이 나올 것입니다. 💡 왜일까요? Public IP를 그냥 그대로 검색을 하게 되면 Http 요청으로 EC2의 80 포트로 들어오게 됩니다. 하지만, 저희의 Spring Application은 8080 포트에서 돌아가고 있습니다.따라서, 80 포트로 요청이 들어오게 돼도 8080 포트로 요청을 넘겨줄 수 있는 웹 서버가 없기 때문입니다.그렇다면 8080으로 직접 접속하면 접속이 되겠군요? -> 맞습니다.실습을 ..
CI/CD 도구 - 1.Github Action
·
Server
🤔 개발자라면 꼭 마주하게 되는 CI/CD 과정 어떤 도구를 활용하는 것이 좋을까요?JetBrains에서 조사한 통계를 알아보겠습니다. ❗ 매년 조금씩 바뀌지만, GitHub Action과 Jenkins는 항상 상위권에 있는 것을 확인할 수 있습니다.따라서, 두 가지 CI/CD 방법에 대해서 다뤄볼 생각입니다. 우선 두 가지 CI/CD 도구가 어떤 차이를 가지고 있는지 비교해 보겠습니다.다음과 같은 차이점들이 있는데 결과적으로는 Jenkins는 초기 세팅이 Github Action보다는 조금 더 복잡하지만 확장성이 좋다고 볼 수 있습니다. 그만큼 Github Action은 사용하기 조금 더 쉽다는 장점이 있습니다.⚠️ 그런데 CD 작업에서 Github Action을 사용하게 된다면 여러 서버들을 pub..
배포의 모든 것 - 3. Github Action을 통한 CI/CD
·
프로젝트
현재 AWS 서버는 EC2와 RDS가 준비되어 있습니다. 이번 시간에는 깃허브 액션을 통해서 CI/CD 파이프 라인 구축을 진행해 보도록 하겠습니다..!✅  깃 플로우(Git-Flow)우선 깃 플로우라는 것을 알아야 합니다.💠 master(main) : 실제 배포가 되서 운영되는 브랜치💠 hotfix : 버그가 생긴 경우 💠 release : develop에서 충분히 검증이 된 코드 , 배포를 앞두고 있는 코드.💠 develop: 개발된 기능이 모이는 브랜치.💠 feature: 기능 하나와 관련된 브랜치. 보통 포로젝트를 하는 경우 완전히 똑같지는 않더라도 위와 같은 브랜치 전략에 따라서 개발을 하게 됩니다!아마 프로젝트를 진행하시는 경우, develop 브랜치에 코드를 모아놓고 테스트를 하게 ..