1. Spring Security 환경 설정@Configuration@EnableWebSecurity@RequiredArgsConstructorpublic class SecurityConfig { @Bean public SecurityFilterChain filterChain(HttpSecurity http) throws Exception{ http.authorizeHttpRequests((auth) -> auth .requestMatchers("/", "/home").permitAll() .anyRequest().authenticated() ); http .form..
Spring Boot
0. AWS 스토리지 서비스스토리지AWS의 퍼블릭 클라우드에 데이터 저장 가능AWS 스토리지 서비스 종류 (파일 저장 목적에 따라 나뉨)객체 스토리지 S3 (Simple Storage Service)블록 스토리지 EBS (Elastic Block Store)파일 스토리지 EFS (Elastic File Store) 1. AWS S3AWS의 객체 스토리지 서비스데이터 저장, 관리 및 분석을 안전하고 확장 가능하게 해 줌특징객체 스토리지 : 파일을 객체 형태로 저장함각 객체는 데이터, 메타데이터, 고유한 식별자로 구성됨내구성 : 99.999%의 내구성 제공함가용성 : 데이터는 여러 가용 영역 (AZ)에 자동으로 복제됨 ⇒ 데이터 손실 위험 최소화확장성 : 거의 무한한 저장 용량 제공, 데이터 양에 관계없이 ..
1. 로깅 (logging)애플리케이션의 동작, 오류, 이벤트 등을 기록하는 과정로깅으로 작성된 로그를 통해 개발자가 애플리케이션의 상태를 모니터링하고 문제 진단, 성능 분석 가능주요 목적 : 오류 해결, 보안 감사, 성능 개선 등 1-1. 로그 기록 장소콘솔파일이메일/문자 (SMTP/SMS)DB 1-2. 로깅 레벨패키지나 클래스 별로 로그에 남길 정보의 정도 설정 가능(스프링 부트의 로그 프레임워크인 LogBack 의 로그 레벨) TRACE DEBUG INFO WARN ERROR좌측일수록 상세한 수준 (다음 레벨의 내용 모두 포함) / 우측일수록 중요한 수준ex) DEBUG 로그 : INFO, WARN, ERROR 로그를 모두 포함TRACE : 개발 단계에서 사용, DEBUG 레벨보다 상세한 수준의 로..
1. 테스트1-1. TDD (Test Driven Development)테스트 주도 개발테스트 코드를 먼저 작성 → 작성한 테스트 코드를 통과하게끔 실제 코드 작성하는 개발 방법 TDD 주요 원칙테스트 실패 확인실제 코드를 구현하기 전 테스트 케이스를 작성함요구사항을 테스트로 변환함으로써 명확한 목표 설정 가능!테스트 통과 가능 최소 코드 작성테스트 통과에 꼭 필요한 최소한의 코드만 작성함YAGNI (You Aren’t Gonna Need It) 원칙 적용코드 개선 리펙토링테스트 통과한 최소 코드를 개선함중복 제거, 가독성 향상을 목표 ⇒ 설계가 개선되고 유지보수성이 증가함! 1-2. 테스트 유형1-2-1. 단위 테스트메서드, 클래스와 같이 개별 코드 단위를 검증하는 테스트격리된 환경에서 실행1-2-2...
1. Geocoder API 2.0open weather map 의 현재 날씨 정보 API를 사용하기 위해서는 요청에 위도, 경도를 포함해야 함내 주소 (혹은 날씨를 알고 싶어하는 주소)의 위도, 경도를 알기 위해 사용함 1-1. Geocoder API 사용 방법1-1-1. 회원가입https://www.vworld.kr/v4po_main.do 브이월드국가가 보유하고 있는 공개 가능한 공간정보를 모든 국민이 자유롭게 활용할 수 있도록 다양한 방법을 제공합니다.www.vworld.kr해당 사이트에 접속 후 회원가입 진행 1-1-2. api 인증키 발급상단의 메뉴바 클릭 오픈 API > 인증키발급 클릭 약관 동의 후 이용 정보 작성 (아래는 예시)서비스명 : 날씨 웹 서비스 예제 프로젝트서비스 분류 : 교육서..
1. Jpa Auditing 이란?엔티티에서 발생한 이벤트를 추적하고 기록함이벤트 : 생성(create), 수정(update), 삭제(delete) 등Spring Data JPA 에서 기본적으로 Auditing 정보를 추가하는 기능 제공함 2. Jpa Auditing 주요 기능@CreatedDate엔티티 생성 시간을 자동으로 기록함@CreatedDateprivate LocalDateTime createdAt;@LastModifiedDate엔티티 최종 수정 시간을 자동으로 기록함엔티티 생성 시 생성 시간이 저장됨@LastModifiedDateprivate LocalDateTime editedAt;@CreatedBy엔티티를 생성한 사용자 정보를 자동으로 기록함@CreatedByprivate User crea..
1. JpaRepository 란 ?Spring Data JPA 에서 제공하는 DB접근을 위한 인터페이스JPA 기반으로 DB와의 상호작용을 간편하게 해줌CRUD 작업을 수행하는 메서드를 기본 제공개발자가 직접 구현할 필요 x ! 2. JpaRepository 사용 방법2-1. 라이브러리 추가build.gradleimplementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2-2. Repository 작성JpaRepository를 상속받음JpaRepositoryimport org.springframework.data.jpa.repository.JpaRepository;public interface UserRepository extends J..
0. 사전 지식0-1. HTTP웹 서비스 : 정보 요청, 응답 시 HTTP 사용마찬가지로 스프링도 HTTP 사용 → 데이터 송수신직접 작성이 아닌 스프링에서 제공하는 @ResponseBody, ReseponseEntity 사용해서 응답을 빠르고 쉽게 작성 가능 0-2. @ResponseBodyHTTP 요청의 body 에는 여러 데이터가 존재함이 body의 데이터를 직렬화 해주는 어노테이션직렬화 : 현재의 데이터를 네트워크에서 송/수신 가능하도록 변경하는 것 1. ResponseEntity스프링 프레임워크가 제공하는 클래스HttpEntity 클래스를 상속받음 (+ http 상태코드 포함)HttpEntity : headers와 body로 이루어짐⇒ 사용자의 Http Request에 대한 응답 데이터를 포함!..