Spring boot16 Github Actions를 활용한 CI 이번 글에서는 CI/CD중 지속적 통합(Continuous Intergration)에 대해서 알아보고자 한다.CI(Continuous Intergration)지속적 통합(CI)는 코드의 변경 사항을 공유 레포지토리(ex. Github)에 올리기 전에 빌드 및 테스트되어 통합하는 방식을 말한다.이 글에서는 이론보다는 Github Actions를 활용한 실습에 좀 더 초점을 맞춰볼 예정이다.(Jenkins, Circle CI, Travis CI 등 여러 CI 툴들이 있지만, Github Actions는 설치가 필요없고 Github에서 바로 사용하기 때문에 본 글에서는 Github Actions를 사용하겠다.CI를 하는 이유버그를 신속하게 찾아 해결소프트웨어의 품질 개선새로운 업데이트의 검증릴리즈 시간 단축등.. 2024. 4. 27. [8장] 스프링 시큐리티로 로그인/로그아웃, 회원 가입 구현하기 8.1 사전 지식 : 스프링 시큐리티 - 인증 : 사용자의 신원을 입증하는 과정 - 인가 : 사이트의 특정 부분에 접근할 수 있는지에 대한 권한을 확인하는 작업 (관리자와 사용자 페이지) - 스프링 시큐리티 : 스프링 기반의 애플리케이션의 보안을 담당하는 스프링 하위 프레임워크(필터 기반 동작) 더보기 - UsernamePasswordAuthenticationFilter : 아이디와 패스워드가 넘어오면 인증 요청을 위임하는 인증 관리자 역할 - FilterSecurityInterceptor : 권한 부여 처리를 위임해 접근 제어 결정을 쉽게 하는 접근 결정 관리자 역할 그 이외의 필터들은 직접 사용하면서 공부하기... 8.2 회원 도메인 만들기 8.2.1 의존성 추가하기 1단계. build.gradle .. 2023. 7. 25. [6장] 블로그 기획하고 API 만들기(2) 6.4 블로그 글 목록 조회를 위한 API 구현하기 6.4.1 서비스 메서드 코드 작성하기 1단계. findAll() 메서드 추가 package me.kyungsoolee.springbootdeveloperblog.service; import lombok.RequiredArgsConstructor; import me.kyungsoolee.springbootdeveloperblog.domain.Article; import me.kyungsoolee.springbootdeveloperblog.dto.AddArticleRequest; import me.kyungsoolee.springbootdeveloperblog.repository.BlogRepository; import org.springframework.. 2023. 7. 25. [5장] 데이터베이스 조작이 편해지는 ORM 5.1 데이터베이스란? 5.1.1 데이터베이스 관리자, DBMS - 데이터베이스를 관리하기 위한 소프트웨어(Database Management System) - 관계형, 객체-관계형, 도큐먼트형, 비관계형 등으로 분류. - 관계형 모델을 기반 (테이블 형태로 이루어진 데이터 저장소) - 각 행은 고유 키(ID)를 가지고 있음 - (ex. H2, MySQL 등 ...) 더보기 ❗️꼭 알아야 할 데이터베이스 용어 1. 테이블 2. 행 3. 열 4. 기본키 5. 쿼리 5.2 ORM이란? - ORM(object Relational Mapping)은 자바의 객체와 데이터를 연결하는 프로그래밍 기법. - 자바 언어로만 데이터베이스를 다룰 수 있게 한다. [장점] 1. SQL을 직접 작성하지 않고 사용하는 언어로 데.. 2023. 7. 25. [4장] 스프링 부트 3와 테스트 4.1 테스트 코드 개념 익히기 4.1.1 테스트 코드란? - given-when-then 패턴 - given : 테스트 실행을 준비하는 단계 - when : 테스트를 진행하는 단계 - then : 테스트 결과를 검증하는 단계 // given-when-then 패턴의 테스트 코드 예시 @DisplayName("새로운 메뉴를 저장한다.") @Test public void saveMenuTest() { // given : 메뉴를 저장하기 위한 준비 과정 final String name = "아메리카노"; final int price = 2000; final Menu americano = new Menu(name, price); // when : 실제로 메뉴를 저장 final long savedID = men.. 2023. 7. 25. [3장] 스프링 부트3 구조 이해하기 - 프레젠테이션 계층 - 비즈니스 계층 - 퍼시스턴스 계층 3.1 스프링 부트 3 구조 살펴보기 3.1.1 계층 이해 컨트롤러 서비스 리포지토리 데이터베이스 프레젠테이션 계층 비즈니스 계층 퍼시스턴스 계층 - 프레젠테이션 계층 - HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 계층 (컨트롤러가 프레젠테이션 계층 역할) - 비즈니스 계층 - 서비스를 만들기 위한 비즈니스 로직을 처리하기 위한 계층 (서비스) - 퍼시스턴스 계층 - 데이터베이스 관련 로직을 처리하기 위한 계층 (리포지토리) -> 계층은 개념의 영역이고, 컨트롤러, 서비스, 리포지토리는 실제 구현을 위한 영역이다. 3.1.2 스프링 부트 프로젝트 디렉터리 구성하며 살펴보기 - main : 실제 코드를 작성하는 공간 - test :.. 2023. 7. 25. 이전 1 2 3 다음