inflearn logo
Khóa học

Khóa học

Chia sẻ kiến thức

Bài viết của yh

yh yh

@yh

Học viên
601,545
Đánh giá khóa học
42,089
Đánh giá khóa học
5.0

Bài viết 9111

Hỏi & Đáp

용어 사전

안녕하세요. SJ님 네 이렇게 Comment를 붙여서 관리하는 방법은 실제 운영에서 많이 사용하는 방법입니다. 그럼에도 불구하고 별도의 용어사전은 따로 관리해야 새로운 컬럼을 추가할 때 용어사전을 찾아보고 관리할 수 있겠지요? 감사합니다.

Lượt thích
0
Số bình luận
2
Lượt xem
31

Hỏi & Đáp

조인쿼리에서의 인덱스 설계

안녕하세요. hee duk kim님 조인이라는 것이 FK를 기준으로 연결되기 때문에 해당 컬럼에는 기본적으로 인덱스가 필요합니다. 조인과 관련된 최적화는 실전 데이터베이스 성능 최적화에서 다룰 예정입니다. 감사합니다.

Lượt thích
0
Số bình luận
2
Lượt xem
25

Hỏi & Đáp

SingletonService가 JVM이 뜰 때 생성되는게 맞나요?

안녕하세요. 파부님 결론부터 말씀드리면, SingletonService 객체는 “JVM이 실행되는 순간” 생성되는 것이 아니라, SingletonService 클래스가 처음 실제로 사용되어 초기화될 때 생성됩니다. 예를 들어 public class Main { public static void main(String[] args) { System.out.println("main 시작"); } } 이 경우 JVM은 Main 클래스는 사용하지만, SingletonService 클래스는 아직 사용할 필요가 없습니다. 그래서 SingletonService 클래스가 로딩/초기화되지 않고, 당연히 생성자도 호출되지 않습니다. 감사합니다.

Lượt thích
0
Số bình luận
2
Lượt xem
71

Hỏi & Đáp

order_product 까마귀발

안녕하세요. 김진규님 생각하신 내용이 맞습니다 :) 감사합니다.

Lượt thích
0
Số bình luận
2
Lượt xem
50

Hỏi & Đáp

SpringBoot 4.0.6 버전에서 PackageLogTracePostProcessor exception

안녕하세요. 마성호님 Configuration도 프록시 대상에 추가되는 문제가 있는 듯 합니다. 다음 코드를 참고해서 Configuration을 제외하는 코드를 적용해주세요 🙂 감사합니다. package hello.proxy.app.config.v4_postprocessor.postprocessor; import lombok.extern.slf4j.Slf4j; import org.jspecify.annotations.Nullable; import org.springframework.aop.Advisor; import org.springframework.aop.framework.ProxyFactory; import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.AnnotationUtils; import org.springframework.util.ClassUtils; @Slf4j public class PackageLogTracePostProcessor implements BeanPostProcessor { private final String basePackage; private final Advisor advisor; public PackageLogTracePostProcessor(String basePackage, Advisor advisor) { this.basePackage = basePackage; this.advisor = advisor; } @Override public @Nullable Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException { log.info("param beanName={} bean={}", beanName, bean.getClass()); // 프록시 대상 여부 체크 // 프록시 적용 대상이 아니면 원본 그대로 진행 String packageName = bean.getClass().getPackageName(); if (!packageName.startsWith(basePackage)) { return bean; } // 설정 클래스(@Configuration)는 프록시 대상에서 제외 // 설정 클래스를 프록시로 감싸면 @Bean 팩토리 메서드 호출이 깨진다 // (CGLIB로 강화된 설정 클래스라 getUserClass로 원본 클래스를 얻어 어노테이션을 검사) Class userClass = ClassUtils.getUserClass(bean.getClass()); if (AnnotationUtils.findAnnotation(userClass, Configuration.class) != null) { return bean; } // 프록시 대상이면 프록시를 만들어서 반환 ProxyFactory proxyFactory = new ProxyFactory(bean); proxyFactory.addAdvisor(advisor); Object proxy = proxyFactory.getProxy(); log.info("create proxy: target={} proxy={}", bean.getClass(), proxy.getClass()); return proxy; } }

Lượt thích
0
Số bình luận
3
Lượt xem
92

Hỏi & Đáp

[DB설계] 탈퇴 유저의 구독 정보 유지 및 이메일 마스킹 관련 질문입니다.

안녕하세요. obi님 우선 제 생각에 비즈니스 정책을 단순하게 변경하는게 가장 좋을 것 같아요. 하지만 그게 어려운 상황이라면, 중간 테이블을 하나 만들어서 해결하는 것이 필요합니다. 예를 들어서 users -> subscribers -> subscriptions 구조를 만드는 것이지요. users: 로그인 계정 subscribers: 구독 권리를 가진 주체 subscriptions: 현재 구독 정보 users는 탈퇴 후 재가입하면 새로 생길 수 있으니, 구독이 직접 바라보면 안 됩니다. 대신 구독은 오래 유지되는 subscriber_id를 바라보게 합니다. 그래서 재가입 시에는 새 users 로우를 만들고, 기존 subscriber_id에 다시 연결합니다. 즉, 핵심은 구독의 FK를 user_id가 아니라 subscriber_id로 바꾸는 것입니다. 감사합니다.

Lượt thích
0
Số bình luận
1
Lượt xem
59

Hỏi & Đáp

김영한로드맵으로 백엔드개발자가 될 수 있나요?

안녕하세요. 호준님 이 로드맵은 이미 실무에 있는 주니어 개발자 분들도 많이 듣고 있는 로드맵이어서, 모든 과정을 충분히 소화한다면 실무에 필요한 개발자가 될 수 있다 생각합니다. 취업을 기준으로 생각하면다면 생각하신 대로 진행하시되 다음 내용을 참고해서 전체 로드맵을 진행하시는 것을 추천드립니다. 전체 로드맵은 다음을 참고해주세요. https://youtu.be/8hsFZg-i6wo?si=pIfnDiSRvja5LkvS 감사합니다 🙂

Lượt thích
0
Số bình luận
2
Lượt xem
136