전체 글160 자기개발 - 7년차 헬스인의 회고 7년차 헬스인의 회고: 벌크, 부상, 그리고 다시 시작시작하며헬스는 내 취미이자 삶의 일부이다. 올해로 헬스를 한지 7년차고, 그동안 수많은 시행착오를 겪었다. 하지만 2024년 ~ 2025년은 내 인생에서 가장 크리티컬 한 해 였다. 오늘은 그 해를 돌아보며, 벌크업의 성공과 부상의 아픔, 그리고 다시 시작하는 과정에서 느낀 점을 적어본다.✅ 2024년 ~2025년, 내 인생 최대 도전2024년은 정말 도전의 해였다. 특히 12월, 내 인생에 큰 변화가 있었다.이전 회사에서 악습과 불황으로 인해 결국 퇴사를 했다. 그리고 온갖 스트레스가 맥스치에 도달 했을 시기였다. 스트레스 해소를 위해 그때부터 본격적인 벌크업을 시작했다.체중: 78kg → 88kg (인생 최대 몸무게)근육량: 눈에 띄게 증가했다중량.. 2025. 12. 9. Redis - Redis란 무엇인가? Redis란 무엇인가?Redis 정의Redis는 Remote Dictionary Server의 약자로, Key-Value 구조를 기반으로 하는 오픈소스 비관계형(NoSQL) 인메모리 데이터베이스이다. 데이터를 RAM에 저장하여 매우 빠른 읽기/쓰기 성능을 제공하며, 캐시, 세션 관리, 메시지 큐 등 다양한 용도로 활용됌. In-Memory란?In-Memory는 데이터를 RAM(주기억장치)에 올려서 처리하는 방식장점: 디스크 I/O를 거치지 않으므로 속도가 매우 빠름단점: RAM은 휘발성이므로 서버 재시작 시 데이터 유실 가능주의: 메모리 용량을 초과하는 데이터는 처리 불가 → TTL 설정 필수 Redis를 사용하는 이유기존 RDBMS(SQL 기반)는 데이터를 디스크에 저장하기 때문에 빈번한 변경 작업에서.. 2025. 12. 9. JPA - @DynamicUpdate @DynamicUpdate 어노테이션에 대해서 알아보자! 사용하다 보면 엔티티의 업데이트가 예상치 못하게 전체 컬럼을 업데이트하는 상황을 마주칠 때가 있다. 특히 큰 테이블이나 자주 업데이트되는 테이블에서는 성능 문제가 생길 수 있다. 이럴 때 유용하게 사용할 수 있는 것이 바로 @DynamicUpdate 어노테이션이다.@DynamicUpdate란?@DynamicUpdate는 Hibernate에서 제공하는 어노테이션으로, 엔티티의 변경된 필드만 업데이트 한다. 기본적으로 Hibernate는 엔티티를 업데이트할 때 모든 컬럼을 업데이트하는 SQL을 생성한다. 하지만 @DynamicUpdate를 사용하면 실제 변경된 컬럼만 업데이트하는 SQL을 생성하도록 설정할 수 있다.참고 : @DynamicUpdate .. 2024. 7. 17. JPA - Spring Data JPA에서 엔티티의 생성 시간과 수정 시간을 자동으로 관리하기 Spring Data JPA에서 엔티티의 생성 시간과 수정 시간을 자동으로 관리하기Spring Data JPA를 사용하다 보면 엔티티의 생성 시간과 수정 시간을 자동으로 관리하고 싶을 때가 있다. 이를 위해 보통 createdTime과 updatedTime 필드를 추가하고, 이 필드를 자동으로 업데이트해주는 방법을 고민하게 된다. 이번 포스팅에서는 이러한 과정을 간단하게 해결해줄 수 있는 BaseTime 클래스를 소개 해보겠다.. ! 1. Lombok으로 간편하게 Getter 생성먼저, Lombok의 @Getter 어노테이션을 사용하여 클래스의 모든 필드에 대한 getter 메서드를 자동으로 생성해준다. 요즈음 다 .. Lombok 사용함. 물론 나도 사용함 이유는 코드의 간결성과 가독성을 높일 수 있음.. 2024. 7. 17. JPA - @EntityListeners 엔티티의 생명주기 이벤트 리스닝 EntityListeners란 무엇일까?오늘은 JPA(EntityListeners)에 대해 알아볼까 한다. EntityListeners는 엔티티의 생명주기 이벤트를 처리하기 위해 사용하는 기능이다. 이 기능을 사용하면 엔티티가 생성되거나 업데이트될 때 특정 로직을 실행할 수 있다.EntityListeners의 기본 개념EntityListeners는 엔티티 클래스에 리스너를 등록해서 엔티티의 상태 변화에 따라 특정 메서드를 호출하는 방식으로 동작한다. 예를 들어, 엔티티가 저장되기 전에, 저장된 후에, 삭제되기 전에, 삭제된 후에 등 다양한 시점에 원하는 작업을 수행할 수 있다.주요 애노테이션@EntityListeners: 엔티티 클래스에 리스너 클래스를 지정할 때 사용@PrePersist: 엔티티가 저장.. 2024. 7. 17. RUST 설치 방법 RUST 소개러스트는 모질라 리서치에서 개발한 다중 패러다임, 범용 프로그래밍 언어이다. 2006년 개발자 그레이든 호아레의 개인 프로젝트로 시작되었으며, 2009년 호아레의 고용주인 모질라가 개발에 참여모질라의 정책에 따라, 러스트는 전적으로 오픈 소스로 개발되고 있으며, 커뮤니티로부터 피드백을 받고 있다. 특징러스트 프로그래밍 언어는 사용자가 더 자신감 있게 프로그래밍할 수 있도록 역량을 강화한다. 주로 저수준 시스템 프로그래밍(메모리 관리, 동시성 등)에서 어려운 문제들을 해결하고, 사용자에게 친숙한 도구를 제공해준다. 이를 통해서 보안이나 허점의 위험 없이 효율적이고 신뢰할 수 있는 코드를 작성 할 수 있다.기존 저수준 프로그래머는 러스트를 사용해 병렬화 같은 고급 기능을 더 안전하게 도입할 수.. 2024. 6. 11. JPA - @NoArgsConstructor & @AllArgsConstructor 개념 및 사용법 개요Spring Boot와 JPA에서 @NoArgsConstructor 및 @AllArgsConstructor 애노테이션은 주로 엔터티 클래스에서 사용된다. 이러한 애노테이션은 Lombok 프로젝트에서 제공되며, 코드를 간소화하고 반복적인 작업을 줄이는 데 도움이 된다. @NoArgsConstructor@NoArgsConstructor 애노테이션은 해당 클래스에 파라미터 없는 기본 생성자를 자동으로 생성한다. 이 생성자는 JPA에서 엔터티 클래스를 사용할 때 특히 유용하다import javax.persistence.Entity;import javax.persistence.Id;import lombok.*;@Entity@Data@NoArgsConstructorpublic class MyEntity { .. 2024. 5. 16. Spring & Spring Boot - @Accessors @Accessors@Accessors(chain = true)는 Lombok 라이브러리에서 제공하는 애노테이션이다. 이 애노테이션은 자동으로 생성된 Getter 및 Setter 메소드의 동작을 변경하는 데 사용된다.기본적으로 Lombok은 @Getter 및 @Setter 애노테이션을 사용하여 필드의 Getter 및 Setter 메소드를 생성한다. 그러나 @Accessors(chain = true)를 사용하면 체인 형식의 호출을 지원하는 메소드들을 생성한다. 이것은 객체의 메소드 호출을 연결하여 단일 표현으로 나타낼 수 있게 해준다예를 들어, 다음과 같은 클래스가 있다고 가정해보자import lombok.Getter;import lombok.Setter;import lombok.AccessLevel;imp.. 2024. 5. 9. Mosquitto 설치 및 설정 Mosquitto 란?Mosquitto는 Eclipse Foundation에서 개발한 오픈 소스 MQTT(Message Queuing Telemetry Transport) 브로커이다. MQTT는 경량 프로토콜로, IoT(Internet of Things) 디바이스와 애플리케이션 간에 메시지 통신을 위해 사용된다. Mosquitto는 이러한 MQTT 프로토콜을 구현하고, 메시지 브로커로서의 역할을 수행하여 클라이언트 간의 안정적이고 신속한 통신을 지원한다.Mosquitto의 주요 특징경량성: Mosquitto는 리소스 사용량이 적고 경량적인 디자인을 가지고 있어서, 리소스가 제한된 환경에서도 효율적으로 동작한다.오픈 소스: Mosquitto는 오픈 소스 프로젝트로, 누구나 소스 코드를 확인하고 기여할 수 .. 2024. 5. 3. Java - 컬렉션(Collection) By Ji Min-Jae 17 분읽는 시간 컬렉션(collection)이란? 많은 데이터를 그 사용 목적에 적합한 자료구조로 묶어 하나로 그룹화한 객체를 말한다. 컬렉션은 배열, 리스트, 세트, 맵 등 다양한 형태로 구현될 수 있으며, 각각의 형태는 다른 종류의 데이터를 효과적으로 저장하고 관리하기 위해 사용됩니다. 💡 배열(Array)이 있는데 왜 Collection을 사용하는 걸까? 배열은 정적 메모리 할당이고, Collection은 정적 메모리 할당이 아닌 동적 메모리 할당을 하게 된다. 배열은 new int[2]는 2개 공간으로 제한되고, 미리 선언을 통해 4개의 공간을 만들어야 하지만(정적 메모리), Collection 공간이 계속 필요한 만큼 추가할 수 있다(동적 메모리) 컬렉션 프레임워크의 .. 2024. 4. 17. 이전 1 2 3 4 ··· 16 다음 반응형