일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- JPA
- 어노테이션
- 테스트 코드
- querydls
- Github Actions
- AWS
- algorithm
- spring boot
- MSA
- 객체지향원칙
- springboot
- Java
- CI/CD
- Intellij
- Til
- 유효성 검사
- EC2
- algorihm
- rabbitmq
- trouble shooting
- 프로그래머스
- DevOps
- JWT
- docker
- Redis
- swagger
- testcode
- aop
- 멀티 모듈
- Kafka
- Today
- Total
목록Spring Boot (7)
개발노트
개요Redis 사용이 처음이고 주로 캐싱에 사용할 것 같아 배운 내용을 정리해본다. 캐시( Cache ) 란 무엇인가?캐시 ( Cache )란?캐시(Cache)는 자주 사용하는 데이터를 미리 저장해두고 빠르게 제공하는 저장소를 의미한다. 데이터를 매번 원본 데이터베이스에서 가져오는 대신, 한 번 조회한 데이터를 캐시에 저장하여 이후 요청 시 빠르게 제공함으로써 성능을 최적화하는 방식이다. 캐시를 사용하는 이유 성능 향상데이터베이스(DB)에서 데이터를 조회하는 것보다 캐시에서 데이터를 가져오는 속도가 훨씬 빠르다.따라서 애플리케이션의 응답 속도가 향상되고, 사용자 경험(UX)이 개선된다.DB 부하 감소같은 데이터에 대한 반복적인 조회 요청을 줄여서 DB 서버의 부담을 줄일 수 있다.비용 절감클라우드 환경에..

개요단위 테스트를 할 때는 상관없었는데 통합테스트를 진행하니 운영중인 DB의 데이터도 테스트에 포함되어 문제가 발생했다. 이를 개선하기위해 통합테스트 환경에서는 H2 데이터베이스를 사용하도록 DB 환경을 분리해보겠다. application-test.yml 파일 생성기존의 apllication.yml 과 똑같은 위치에 application-test.yml파일을 생성해준다. spring: datasource: driver-class-name: org.h2.Driver hikari.jdbc-url: jdbc:h2:mem:test_db; username: testdb password: jpa: hibernate: ddl-auto: create-drop show-sql..

개요AccessToken 과 RefreshToken을 발급해 사용할 것이다.로그인에 성공 시 AccessToken 은 헤더에 Authorization 의 키 값으로 포함하고 RefreshToken은 쿠키에 포함해 응답한다.login과 logout을 userService 에서 처리하면서 user 도메인과 token 도메인을 함께 다루다 보니 userService에서 token 관련 기능의 의존성이 너무 커지는게 신경이 쓰였다. 이 부분을 생각하면서 개발을 진행하지않아 이미 문제를 의식했을 때는 변경해야할것이 너무 많아졌다. 조언을 구하고자 튜터님을 찾아가 헥사요AccessToken 과 RefreshToken을 발급해 사용할 것이다. 로그인에 성공 시 AccessToken 은 헤더에 Authorization..

개요queryDSL 에 대해 공부가 필요할 것 같다. 정리해본다. QueryDSL 이란?타입 안전(type-safe) 하고 직관적인 Java 기반의 동적 SQL 쿼리 빌더 이다.주로 JPA, Hibernate, SQL, MongoDB 등의 데이터베이스와 함께 사용되며, 코드 기반으로 SQL 쿼리를 작성할 수 있도록 도와주는 프레임 워크다. 특징 타입 안정성( Type-safety )컴파일 단계에서 SQL 문법 오류를 잡을 수 있다.필드명을 직접 문자열로 입력하는 것이 아니라 코드 기반으로 사용하여, 오타로 인한 오류가 방지된다.가독성 및 유지보수성 증가JPQL이나 SQL을 직접 문자열로 작성하는 방식보다 코드가 직관적IDE의 자동 완성 기능을 활용 가능동적 쿼리 작성이 용이 BooleanBuilder 를..
개요프로젝트를 진행하면서 JWT를 검증하는 필터를 구현하였다. 여기서 의문점이 든 부분을 정리하고 검색 기능에 사용할 queryDSL에 대해 공부한걸 정리해보려한다. JWT 검증 필터 의문점 @Bean public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { http.csrf(csrf -> csrf.disable()); http.addFilterBefore(new JwtAuthenticationFilter(jwtUtil), UsernamePasswordAuthenticationFilter.class); http.sessionManagement((sessionManage..

개요오늘은 설계가 끝나고 각자 팀원이 어떤 역할을 맡을지 정했다.여러 기능 중에 나는 User , User의 배송지 , Spring Security 를 담당하게 되었다.혼자서도 몇 번 security를 적용해봤다. 프로젝트에서 담당해서 진행하게되면 나중에 포트폴리오에 도움이 될거라 생각해자진해서 해당 역할을 맡는다고했다. user와 배송지는 간단한 curd 선에서 끝날 것이기 때문에 security도 금방 끝나게 된다면 Spring Boot의 AOP 기능을 추가해 user의 서비스 이용시간을 축적하는 기능을 만들어보고싶다.그래서 오늘은 Spring Boot의 AOP에 대해 정리해보려한다.Spring Boot AOP더보기💡 AOP 는 특정한 긴으을 애플리케이션의 여러 부분에 걸쳐 재사용할 수 있는 프로그..
개요오랜만에 프로젝트를 설계하면서 ERD를 작성했는데 연관관계에 대해 내 기억이 너무 흐려져 다시 한번 정리하고싶어졌다. Spring Boot JPA 에서 엔티티 간의 연관관계 매핑 연관관계의 종류1:1 (One-to-One)하나의 엔티티가 다른 엔티티 하나와 연결된 경우1:N (One to Many)하나의 엔티티가 여러 엔티티와 연관된 경우N:1 (Many-to-One)여러 엔티티가 하나의 엔티티와 연관된 경우N:M (Many-to-Many)여러 엔티티가 여러 엔티티와 연관된 경우. (중간 테이블 필요) 연관 관계 어노테이션 설명 및 설정@OneToOne (1:1 관계)1:1 관계를 매핑할 때 사용한다. 하나의 엔티티가 다른 엔티티 하나와 연결된다. 주로 두 테이블의 기본 키 또는 외래 키를 사용해..