스프링

스프링/테스트

Spring Testcontainer를 활용한 Elasticsearch 테스트 코드 작성

왜 Testcontainer를 사용하는가?Spring DB 테스트 Rollback 원리Spring에서는 테스트 코드 작성을 위해 @Test 어노테이션과 @Transactional 어노테이션을 함께 사용하면 기본적으로 롤백이 활성화됩니다. 이는 테스트가 실행된 후 변경된 데이터가 실제 데이터베이스에 영향을 미치지 않도록 보장하는 것입니다. NoSql 테스트 NoSQL 데이터베이스를 사용할 때는 이러한 접근 방식이 다소 복잡해질 수 있습니다.NoSQL 데이터베이스는 일반적으로 ACID 트랜잭션을 지원하지 않거나, 관계형 데이터베이스와는 다르게 구현됩니다. 따라서 Spring의 트랜잭션 처리 메커니즘을 NoSQL 데이터베이스에 적용하는 것은 번거롭습니다.NoSQL 데이터베이스를 사용하는 경우에는 다음과 같은 ..

스프링/테스트

Postman을 활용한 API 테스트에서의 로그인 세션 유지 및 타 API 테스트

간략 소개Postman은 API를 테스트하고 디버그하는 데 유용한 강력한 도구입니다. 그러나 로그인 세션을 유지해야 하는 경우, 특히 세션 정보를 다른 API 요청에도 적용해야 할 때가 있습니다. 이 글에서는 Postman을 사용하여 로그인 세션을 유지하고 다른 API를 테스트하는 방법에 대해 알아보겠습니다. 흐름로그인 요청 보내기: Postman을 사용하여 로그인 API에 요청을 보냅니다. 사용자 인증이 성공하면 서버로부터 세션 ID를 받습니다. 인증 정보 저장: 받은 인증 정보를 Postman의 환경 변수나 글로벌 변수에 저장합니다. 주로 헤더나 쿠키에 저장하여 세션을 유지합니다.다른 API 요청 시 인증 정보 사용: 다른 API를 테스트할 때, 저장된 세션 정보를 사용하여 요청합니다. Postman..

스프링

AWS S3와 IAM 생성: 스프링과의 연동 방법 및 이미지 저장

전체적인 흐름S3 티어 선택 후 S3 버킷 생성액세스 권한을 얻기 위한 IAM 생성스프링 빈에 AWS S3 등록Image API 구현 및 테스트S3 티어 선택 및 S3 버킷 생성S3 티어(스토리지 클래스)어떤 종류의 데이터를 관리하는지, 얼마나 자주 그 데이터에 접근해야하는지에 따라 분류, 사용자는 그에 맞는 티어를 선택Standard가장 보편적으로 사용되는 스토리지 타입IA자주 접근되지는 않으나 접근시 빠른 접근, standard보다 비용은 저렴하나 데이터를 불러올때마다 추가 비용One Zone IAIA와 같지만 하나의 AZ에만 데이터 저장 → 가용영역 문제 생길경우 데이터가 날라갈수도 있음Intelligent Tiering머신러능을 통한 자동으로 파일의 티어를 변경하는 서비스 ex. 접근 많으면 스탠..

스프링

[Spring] Validation 종류 및 적용

Validationhttps://spring.io/guides/gs/validating-form-input Getting Started | Validating Form InputThe application involves validating a user’s name and age, so you first need to create a class that backs the form used to create a person. The following listing (from src/main/java/com/example/validatingforminput/PersonForm.java) shows how to do so: pacspring.io특정 메서드나 파타미터에 사용되어 해당 객체가 유효성 검샅를 통과..

스프링/테스트

[스프링] JUnit @Tag를 이용한 테스트 코드 분리

Junithttps://spring.io/guides/gs/testing-web Getting Started | Testing the Web LayerYou will build a simple Spring application and test it with JUnit. You probably already know how to write and run unit tests of the individual classes in your application, so, for this guide, we will concentrate on using Spring Test and Spring Boot featurespring.io주요 내용단위테스트: 특정 소스코드의 모듈이 의도한 대로 잘 작동하는지 검증하는 테스트이..

스프링

[스프링] 스프링 3.1이후에 디버그 로그가 안뜰경우, 로그레벨 조정 방법

디버그 로그가 안뜬 상황 AppConfig 관련해서 ComponeteScan 실습을 하는 도중에 아래와 같은 디버그 로그가 출력이 안되는 경우가 생겼다. 사용하는 스프링 버전은 3.2이고 이거 관련해서 찾아보니 로그레벨이 INFO로 설정되어서 그렇다고한다. 따라서 스프링 3.1은 기존과 같이 디버그 로그를 보고싶으면 로그레벨을 INFO -> DEBUG로 변경해줘야한다 로그 레벨 종류 변경에 앞서 log4j가 뭔지, 로그레벨을 왜 변경해줘야하는건지 그리고 종류에는 무엇이 있는지 설명하겠다 log4j Java 환경의 로깅 시스템을 제공하는 라이브러리이다. 로깅이란 로그 기록이란 뜻으로 사용자의 패턴이나 시스템 동작 분석에 사용되거나 해킹 사고가 발생할 경우 비정상 동작의 기록을 통해 추적하는데 사용된다. 또..

스프링

[스프링] 혼자 구현하는 웹 서비스1: 프로젝트 세팅

들어가기에 앞서 책 '스프링 부트와 AWS로 혼자 구현하는 웹 서비스'을 참고하여 작성하였다 기본적으로 인텔리제이 프레임워크를 이용했고 자바 8과 gradle 4.5를 기반으로 진행했다. 윈도우를 사용할 경우 문제 없겠지만 저와같이 m1또는 m2기반의 맥북을 사용하고 계시다면 아래 URL참고해주시면 됩니다! 중간에 .zshrc변경사항 적용에서 오타 존재(source ~./zshrc -> source~/.zshrc) 자바 버전별로 설치 및 관리 gradle 관련된 부분은 책에서는 4.1을 사용했지만 현재 스프링 프레임 워크가 진행될 수 있는 최소 gradle 버전 조건이 4.4이상이라 그 이상을 사용해주시면 됩니다. 추후에 더 높은 버전을 요구 할 수도 있는데 그에 맞춰 gradle 버전을 올려주면 됩니다..

스프링

Google Drive API를 활용한 이미지 업로드 및 Url반환(스프링 서비스단계 구현)

이미지를 저장 위치에 대한 고민 프로젝트를 하는 와중에 프로필 이미지 API 구현부분을 맡게 되었다. 이미지 업로드와 저장 관련해서 어디에 해야할지, 이미지를 DB에 저장하는게 맞는건지 외부 server에 저장해야하는건지 조차도 모르는 상태로 시작했다. AWS도 생각을 해보았지만 아직까지 배포 계획이 없는 프로젝트에서 금액부담은 그러했다. 따라서 외부 클라우드 서비스를 찾아보다가 구글 드라이브를 통해 저장을 하기로 마음먹었다. 이미지 업로드 방식의 큰 틀 이미지 업로드부터 url반환까지 과정 1. 프론트엔드에서 이미지 업로드: Node.js를 통해 프론트엔드에서 이미지를 선택하고 업로드한다. 이때 이미지는 URL 형태로 서버로 전송된다. 2. Spring Boot REST API: 스프링부트에서 1번에서..

Ash_jisu
'스프링' 카테고리의 글 목록