profile
공부하는거 정리

Role 체크 어노테이션 만들기 2

클래스에 @CheckRole을 한 경우 특정 메서드는 예외로 할 수 있게 무시 어노테이션을 따로 만들어줌Aspect 만들기

2025년 7월 30일
·
0개의 댓글
·

Role 체크 어노테이션 만들기 1

스프링에서 권한 체크를 좀 더 깔끔하게 하고 싶어서,어노테이션으로 역할(Role)을 체크하는 방식으로 만들어봤다.어노테이션 정의하기먼저 커스텀 어노테이션을 만든다. 클래스나 메서드에 붙일 수 있도록 @Target을 지정해주고, 런타임 시점에 리플렉션으로 읽을 수 있게

2025년 7월 25일
·
0개의 댓글
·

스프링 트랜잭션 전파 속성

스프링에서 트랜잭션 전파는 트랜잭션의 경계에서 이미 진행 중인 트랜잭션이 있거나 없을 때 어떻게 동작할 것인가를 결정하는 기능@Transactional 어노테이션이 존재하는 메서드 호출시 기존에 트랜잭션이 존재하면 재사용할지 예외를 던질지 등 행동을 결정 가능트랜잭션

2025년 7월 18일
·
0개의 댓글
·

함수형 프로그래밍이란?

📌 핵심 개념 요약:순수 함수(Pure Function)→ 입력이 같으면 항상 결과가 같고, 외부 상태를 변경하지 않는 함수불변성(Immutable Data)→ 데이터를 수정하지 않고, 복사본을 만들어 변경고차 함수(Higher-Order Function)→ 함수를

2025년 6월 18일
·
0개의 댓글
·

이벤트 버블링

이벤트 버블링(Event Bubbling)은HTML 요소에서 이벤트가 발생했을 때, 그 이벤트가 해당 요소에서 시작하여, 부모 → 조상 요소까지 전파되는 현상입니다.왜 이벤트 버블링이 발생하는가? (왜 생겨났는가?)🔹 이유 1: 트리 구조인 DOM의 자연스러운 전파

2025년 6월 9일
·
0개의 댓글
·

Redis가 싱글 스레드로 동작하는 이유

동시성 문제를 피하기 위해멀티스레드에서는 레이스 컨디션이나 데드락 같은 문제가 생기기 쉬운데 싱글 스레드에선 이런 걱정이 없음 모든 명령을 순차적으로 처리해서 데이터 일관성을 쉽게 유지할 수 있음빠른 성능을 위해Redis는 메모리 기반이라 I/O가 빠름 싱글 스레드 구

2025년 6월 5일
·
0개의 댓글
·

프로세스 컨텍스트 vs 스레드 컨텍스트

스레드 컨텍스트 스위칭이 프로세스보다 빠른 이유스레드 컨텍스트 스위칭(Thread Context Switching)의 경우 프로세스 컨텍스트 스위칭(Process Context Switching)과 달리 MMU 새로운 주소 체계 바로 보도록 수정하고 TLB 가상 메모리

2025년 5월 20일
·
0개의 댓글
·

JPA에서 ID 생성 전략

JPA에서 엔티티의 기본 키(ID)는 두 가지 방식으로 생성할 수 있습니다.✅ 직접 할당: @Id만 사용. 애플리케이션 코드에서 ID 값을 명시적으로 설정합니다.✅ 자동 생성: @Id + @GeneratedValue를 함께 사용. JPA가 식별자 생성 전략에 따라 자동

2025년 5월 19일
·
0개의 댓글
·

동시성(Concurrency)이란?

🎭 비유: 웨이터가 있는 식당식당에 웨이터 한 명(= CPU)이 있고, 여러 손님(= 작업, 스레드)이 있다고 가정해보겠습니다.단일 작업 처리 (동시성 X)웨이터가 한 손님의 주문을 받고, 음식 나오기를 기다리고, 그 손님에게 음식 가져다주고, 계산까지 다 끝낸 후에

2025년 5월 13일
·
0개의 댓글
·

동시성 제어를 위한 JPA Lock

동시성 상황(여러 사용자가 동시에 Stack 생성 요청)에서 중복 생성 문제를 확실히 막기 위해@Lock(LockModeType.PESSIMISTIC_WRITE)를 이용해 락을 걸어주는 방식비관적 락이란?"다른 트랜잭션이 이 데이터를 수정할 수도 있다" 라고 비관적으로

2025년 4월 29일
·
0개의 댓글
·

private 메서드, @Transactional 동작할까?

결론부터 말하면 동작하지 않는다Spring에서는 @Transactional, @Cacheable, @Async 같은 애너테이션이 런타임에 동작하는 Spring AOP 기반으로 처리된다.Spring AOP는 JDK Dynamic Proxy나 CGLIB 방식을 이용해 프록

2025년 4월 29일
·
0개의 댓글
·

n8n을 사용해 IMAP 이메일 수신 시 Slack으로 메시지 전송하기

n8n을 활용해 IMAP 이메일을 수신하면, 그 내용을 자동으로 Slack에 메시지로 전송하는 방법을 소개합니다.n8n 인스턴스IMAP 이메일 계정 (Gmail, Outlook 등)Slack 워크스페이스 및 Webhook URLn8n 편집 화면에서 IMAP Email

2024년 11월 21일
·
0개의 댓글
·

n8n이란 무엇인가?

n8n

2024년 11월 15일
·
0개의 댓글
·

스프링 스케줄러 환경별 세팅

로컬환경에서 스케줄러 실행 Xjava -jar -Dspring.profiles.active=dev

2024년 5월 29일
·
0개의 댓글
·

JPA 팁

엔티티 매핑 최적화엔티티 클래스와 데이터베이스 테이블 간의 매핑을 최적화하는 것은 JPA 성능 향상에 매우 중요합니다.필드 매핑: 필요하지 않은 필드는 매핑하지 않도록 합니다. 모든 데이터베이스 열을 엔티티 필드로 매핑하면 메모리 사용량과 성능에 영향을 미칩니다.Fet

2024년 5월 13일
·
0개의 댓글
·
post-thumbnail

AOP를 활용한 로그 추적 기능

aop를 활용하여 메소드 실행중 슬로우 쿼리와 오류 발생시 해당 상황을 로그테이블에 저장하는 기능을 만들어 보았다.Service 클래스에 있는 특정 기능에 sleep을 걸고 메소드를 실행하였다. log가 잘 저장되었을까엣 저장 실패Connection is read-on

2023년 4월 26일
·
0개의 댓글
·
post-thumbnail

Next-Auth 소셜 로그인 [구글]

NextJS 에서 next-auth를 이용하면 google , facebook , naver 같은 소셜 로그인 기능을 쉽게 만들 수 있어요.next 13버전, next-auth 4버전을 사용했습니다..env 파일을 이용해서 google 클라이언트 키와 시크릿키를 저장합

2023년 3월 13일
·
0개의 댓글
·

CSS 선택자

띄어쓰기는 자손\> 는 첫번째 자식인접 형제 선택자 A + B A 근접 B만A 뒤에 따라오는 B는 전부 A ~ B자식 요소중 포커스에 걸리면

2023년 1월 16일
·
0개의 댓글
·
post-thumbnail

자바스크립트 in 연산자

유투브 보다가 팁 발견출처 : 제로초 : 잘 모르는 "간단한" 자바스크립트 문법 5가지

2022년 7월 5일
·
0개의 댓글
·
post-thumbnail

React 인라인 스타일의 단점

style을 적용할 때 인라인 스타일을 이용할 때가 많았다 (편하니까)이런식으로..하지만 인라인식으로 작성하게 되면 불필요한 리랜더링을 하게 된다. 이유는?결론부터 말하면 {} === {} 가 false 이기 때문!리액트의 버추얼돔이 검사를 하면서 어디가 달라졌는지 찾

2022년 5월 29일
·
0개의 댓글
·