전체 글

천천히, 그러나 꾸준하게
Spring

[Spring] Redis Template과 Redis Repository 특징과 장단점

Redis는 뛰어난 성능과 유연성을 제공하는 인메모리 데이터베이스로, 다양한 애플리케이션에서 필수적으로 사용됩니다. 하지만 Spring 환경에서 Redis를 다룰 때는 두 가지 접근 방식인 RedisTemplate과 Redis Repository 중 하나를 선택해야 합니다.어떤 선택이 더 적합할까요? 이는 프로젝트의 요구사항과 Redis를 활용하는 방식에 따라 달라질 수 있습니다. RedisTemplate은 저수준 API로 세밀한 제어와 유연성을 제공하지만, 복잡한 작업과 설정이 필요합니다. 반면, Redis Repository는 고수준의 추상화를 통해 간단하고 직관적인 개발 경험을 제공하지만, 제한된 유연성과 고급 기능 부족이라는 단점이 있습니다.이번 글에서는 RedisTemplate과 Redis Re..

Etc.

[IntelliJ] IntelliJ Build, Gradle Build 차이점

인텔리제이를 사용하며 빌드 혹은 테스트 코드를 실행할 때 속도가 많이 느린 경우가 있다. 이럴 때마다 인터넷에서는 인텔리제이의 빌드 혹은 테스트 옵션을 default로 되어 있는 Gradle 대신 IntelliJ로 바꿔서 사용하라는 조언을 많이 볼 수 있다. 이 두개의 차이는 무엇일까? 하는 고민이 생기는 찰나 해당 옵션중 Run tests using을 Gradle로 두고 테스트 실행시 테스트가 간헐적으로 실패하는 경우가 확인 되었다. Gradle 옵션과 IntelliJ 옵션의 차이 결과적으로 Run tests using 옵션을 IntelliJ로 두고 테스트 실행시 순서가 보장된 테스트 환경에서 작성된 테스트 코드들은 모두 통과했지만 Gradle 환경에서 실행시 테스트 순서가 빌드시점마다 변경 되기때문에..

Review

통합회원(Integrated Member) 프로젝트 오픈 회고

프로젝트의 시작이전 스타트업에서 근무할 당시 경영난을 못이기고 결국 권고사직을 받은 후2023년 올해 2월 한샘으로 이직하게 되었다.회원 도메인을 담당하는 팀으로 배치받게 되었고, 6개월동안 진행중이던 프로젝트에 바로 합류하게 되었다.토스가 사일로(Silo)단위로 팀을 꾸려 프로젝트가 진행되듯, 한샘또한 도메인별로 하나의 팀을 이뤄 프로젝트를 진행하게 된다.한샘에는 PI(아직도 무슨 약자인지 모르겠다.)라는 역할이 존재하여, 일반적으로 기획자가 프론트 전반에 대해 설계를 담당 한다면 PI는 백엔드 전반에 걸쳐 설계를 진행해주고 있었다.기획자 1명, PI 1명, 백엔드 4명으로 이뤄진 팀으로 첫 프로젝트를 시작 하게 되었다.생각보다 복잡한 회원 구조한샘은 온라인을 중요시 여기지 않는 제조업 기반의 회사에서..

Etc.

[IntelliJ] Invalidate Caches And Restart

문제 재택근무를 시작하면서 집에서 회사 Github Repo를 가져오니, 특정 엔티티들을 찾을 수 없다는 오류가 빗발치는 상황을 확인함. 처음에는 패키지가 잘못 되었는지, 이전 PR 머지에서 잘못된 부분이 있는지 한참을 헤맸으나 선임분의 지혜(?)로 인텔리제이의 캐시를 삭제하고 재부팅 했을때 해결 된다는 내용을 듣고 해결함. 해결 IntelliJ - File - Invalidate Caches 를 통해 캐시 삭제를 진행할 수 있다. 인텔리제이 2022.03 버전 기준 위의 Invalidate Cache를 선택하게 되면 아래와같이 옵션을 선택할 수 있으며 Invalidate and Restart를 클릭함으로 최종적으로 캐시가 정리된다. 뭐든 안될때는 가장 기본적인 껏다 켜보는, 재부팅이 최고라는걸 다시 한..

Spring

[JPA]Spring Data JPA 시작

개요 MyBatis로 개발을 하던 중 요즘 많은 곳에서 JPA를 사용한다는 이야기를 접하게 되었다. 결과적으로 MyBatis와 달리 생산성이 어마무시하게 늘어나는 걸 보고 본격적으로 공부하고 정리해보게 되었다. 목차 1. JPA란? 2. JPA 사용 목적 3. SpringData JPA를 이용한 간단한 CRUD JPA란? JPA는 자바 진영의 ORM 기술 표준이다. 아주 오래전 EJB를 사용하던 때 한 회사원이 EJB의 복잡성과 어려움에 견디지 못하고 퇴근하고 Hibernate를 만들었고 이걸 접한 JAVA에서 Hibernate 담당자들을 데려와 여러 개발자와 함께 JPA 표준을 만들었다는 이야기가 있다. 중요한건 JPA는 하나의 명세일뿐 JPA를 기반으로 Hibernate, OpenJPA, Eclips..

Spring

[Spring] Spring Security와 JWT 사용

1. JWT 란?사용자의 요청에 따라 서버에서 만들어진 암호화된 토큰을 반환하여 사용자 측에 저장이후 토큰을 사용하여 인증과정을 진행 2. JWT 구조- Header-> 어떤 타입의 데이터    어떤 알고리즘을 사용- Payload(Claims) - Signature-> 데이터와 토큰이 위변조 되지 않았음을 증명 3. Spring Security + JWT 구현Spring Security에서 알아두어야 할 두가지 개념 - Authentication (인증)Authentication은 주체(principal)의 신원을 증명하는 과정입니다.  - Authorization (인가) Authorization은 인증을 마친 사용자에게 권한을 부여하여 특정 리소스에 접근할 수 있도록 허가하는 과정입니다.  스프링 ..

turtleDev
거북한 개발자의 기록