커밋 날짜를 변경해야 할 때가 가끔 있다. git commit --date "Wed 29 Jan 2025 00:00:00 KST" -m "커밋메시지"
이런 식으로 매번 커밋 명령어를 입력하는 건 너무 번거롭다. 좀 더 편하게 바꿀 수 있는 방법을 찾아보았다.
- 윈도우 환경이므로 Powershell 스크립트로 작성한다.
커밋 날짜를 변경해야 할 때가 가끔 있다. git commit --date "Wed 29 Jan 2025 00:00:00 KST" -m "커밋메시지"
이런 식으로 매번 커밋 명령어를 입력하는 건 너무 번거롭다. 좀 더 편하게 바꿀 수 있는 방법을 찾아보았다.
스프링 Bean이란 뭘까? 한 마디로 요약하자면 스프링이 관리해주는 객체
를 말한다. 자바에서 일반적으로 객체를 생성할 때를 떠올려보자.
1 |
|
이렇게 선언하면 우리가 객체 생성을 직접 관리해야 한다. 그럼 스프링이 객체를 관리해준다면 어떻게 사용할 수 있을까?
1 |
|
이런 식으로 @Service
(@Service는 @Component에 속한다)를 붙이면 필요한 곳에서 바로 MyService를 가져다 쓸 수 있다. 이게 바로 스프링의 의존성 주입(DI). 객체 관리를 스프링이 해주면 유지보수성도 더 좋아지지만, 성능 상의 이점도 있다. new
키워드로 객체를 계속 만들면 메모리를 많이 차지하지만, 스프링 빈은 기본적으로 싱글톤 패턴을 사용해서 한 번만 만들어지고 계속 재사용이 가능하다.
동시성 제어를 통해 레이스 컨디션을 해결하는 방법 1 :
https://rustywhite404.github.io/spring/2024/12/10/Concurrency_control1/
동시성 제어를 통해 레이스 컨디션을 해결하는 방법 2 :
https://rustywhite404.github.io/spring/2024/12/11/Concurrency_control2/
앞서 Synchronized와 DB락을 이용한 동시성 제어 방법을 정리해보았고, Lettuce와 Redisson을 사용하는 방법도 알아보기로 했다.
레디스를 쓰면 좋다, 빠르다 하는 말을 수없이 들었지만 어떤 점 때문에 그런건지나 어떤 식으로 활용되는지는 알지 못했다. 왜 쓰는지는 알아두고 시용하기 위해 레디스의 이점과 활용 사례를 알아보았다.
동시성 제어를 통해 레이스 컨디션을 해결하는 방법 1 :
https://rustywhite404.github.io/spring/2024/12/10/Concurrency_control1/
앞서 Synchronized 을 이용한 동시성 제어 방법을 정리해보았고, 여기서는 데이터베이스 레벨의 락을 활용해 볼 예정이다. DB레벨 락은 아래와 같은 방식들이 있다. 하나씩 장단점과 사용법을 알아보자.
Entity에 이런 코드를 쓰다가 Enum을 왜 쓰는지 똑바로 모르고 쓰는 중이라는 생각이 들어서 좀 더 알아보기로 했다.
1 |
|