반응형 SMALL SpringBoot38 CI/CD (GitHub Actions, Jenkins) CI/CD란? 단계 설명 CI (Continuous Integration)코드 푸시마다 자동 빌드/테스트CD (Continuous Deployment)테스트 통과 시 자동 배포까지 실행1. GitHub Actions로 CI/CD 구현.github/workflows/deploy.ymlname: Spring Boot CI/CDon: push: branches: [ "main" ]jobs: build-deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up JDK uses: actions/setup-java@v3 with:.. 2025. 4. 16. AWS EC2에 배포하기 1. EC2 인스턴스 생성AWS 콘솔에서 EC2 생성AWS 콘솔 접속 https://aws.amazon.com/EC2 대시보드 → 인스턴스 시작Amazon Linux 2 / Ubuntu 22.04 LTS 선택 (둘 다 OK)인스턴스 유형: t2.micro (무료 티어)키 페어 생성 또는 기존 키 선택보안 그룹 설정:인바운드 규칙에 SSH(22), HTTP(80), 혹은 필요 시 8080 포트 열기인스턴스 시작키 페어(.pem 파일)는 꼭 백업하세요! 나중에 SSH 접속 시 필요합니다.2. EC2에 SSH 접속chmod 400 your-key.pemssh -i "your-key.pem" ec2-user@ OS 계정명 Amazon Linuxec2-userUbuntuubuntu3. 필수 소프트웨어 설치# Ja.. 2025. 4. 16. Spring Boot 패키징(JAR, WAR) Spring Boot 패키징 방식 비교 항목 JAR WAR 실행 방식java -jarWAS(Tomcat 등)에 배포내장 서버포함 (톰캣, 제티 등)외부 WAS 필요설정 복잡도단순복잡배포 대상클라우드, 도커, 독립 서버전통적인 WAS 서버스프링 부트 기본값JAR선택적 지원1. JAR 패키징 방식 (기본)설정 (build.gradle)plugins { id 'org.springframework.boot' version '3.2.0' id 'io.spring.dependency-management' version '1.1.0' id 'java'}bootJar { archiveFileName = 'myapp.jar'}실행./gradlew bootJarjava -jar build/libs/m.. 2025. 4. 15. 테스트 데이터 준비 (@Sql, Testcontainers) 1. @Sql – SQL 스크립트로 테스트 데이터 삽입사용 목적테스트 실행 전후에 SQL 스크립트를 실행테스트용 데이터셋을 빠르게 구축 가능사용 예제@SpringBootTest@Sql(scripts = "/test-data.sql", executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD)class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test void 회원조회_테스트() { Member member = memberRepository.findByEmail("test@example.com").orElseThrow(); assertE.. 2025. 4. 15. 통합 테스트 (@SpringBootTest) @SpringBootTest란?정의@SpringBootTest는 실제 애플리케이션처럼 전체 스프링 컨텍스트를 로딩해서서비스, 컨트롤러, 리포지토리, 보안 설정 등 모든 빈을 대상으로 테스트할 수 있도록 해주는 어노테이션입니다.즉, **"실제 실행 환경과 거의 동일한 조건"**에서 테스트할 수 있어,기능 검증과 버그 예방에 매우 유용합니다.기본 사용 예@SpringBootTest@Transactionalclass MemberIntegrationTest { @Autowired private MemberService memberService; @Autowired private MemberRepository memberRepository; @Test void 회원가입_성공_테스트.. 2025. 4. 15. 단위 테스트 (@WebMvcTest, @DataJpaTest) 스프링 부트 단위 테스트 기본 개념 구분 설명 단위 테스트(Unit Test)특정 클래스(컨트롤러, 서비스, 리포지토리)를 독립적으로 테스트통합 테스트(Integration Test)실제 스프링 애플리케이션 컨텍스트를 로딩해 전체 구성 요소를 테스트1. @WebMvcTest – 컨트롤러 단위 테스트목적Controller 레이어만 테스트서비스, DB 등은 Mock으로 처리예제@WebMvcTest(MemberController.class)class MemberControllerTest { @Autowired private MockMvc mockMvc; @MockBean private MemberService memberService; @Test void getMember_응답.. 2025. 4. 15. 이전 1 2 3 4 5 ··· 7 다음 LIST