묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
aws lambda로 lazy loading 구현
(안녕하세요. 제로초님 매번 질문드릴때마다 빠르게 답변해주셔서 정말 감사 드립니다.) 지금 useInfiniteQuery를 통해 게시물의 정보들을 한번에 모두 받아오는 것이 아닌 5개씩 나눠서 받아오도록 구현을 마쳤습니다. 그리고 여기에 한번더 최적화를 진행하기 위해 lazy loading image 기법을 도입하려고 하는데요 도입이유는 사용자가 처음 받아오는 이미지를 모두 다 볼 수 있는 형태가 아니기 때문입니다. 일반적인 모니터라면 사용자는 1개의 게시물 밖에 보지 못합니다. 그래서 이러한 점에서 나머지 4개에는 resize(50*50)정도로 사진 크기를 줄여서 전송하고 사용자가 스크롤을 하여 화면을 내리면 intersection observer를 통해 사용자가 볼수 있는 정도의 resizing된 이미지를 요청하여 화면에 렌더하려고 합니다.그러기 위해서는 thumb파일 이외에 50* 50 사이즈의 이미지를 저장하는 파일을 한개 더 만들려고 하는데 여기서 막혔습니다.궁금한게 aws-lambda를 한개 더 만들어야 하나요?아니면 resizing해주는 lambda한개에서 2종류의 resizing처리가 가능한가요?return 부분의 callback 함수에 파라미터를 어떻게 넣어야 하는지 잘 모르겠습니다..그리고 제가 하려는 최적화 방식이 효과 있는 방식이 맞는건가요?혹시 제거 간과 하고 있는 부분은 없는지 궁금합니다..답변해주시면 감사하겠습니다.
-
해결됨자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
[ 스레드 풀 이해와 구현 ] 예시코드 버그
선생님 안녕하세요. 강의를 듣다가 조금 이상한 부분이 있어서 문의드립니다.[ 스레드 풀 이해와 구현 ] 강의에서 작성하는 코드를 저도 그대로 따라치면서 실습을 하고 있는데요.그런데 예시 코드의 동작에 약간의 문제를 발견했습니다. 강의에서 보여주는 코드는 아래와 WorkerThread 코드는 아래와 같습니다. 그런데 제가 한 ThreadPoolMain 클래스에서 Task 를 3000 개 정도 주고, ThreadPoolSize =20 을 주고 돌려보니까, 2가지 이상현상을 확인했습니다.1. Null Poiniter Exception 발생중복 처리각각의 문제가 발생하는 이유를 정리해보니 다음과 같더라구요. NPE 발생 원인// 시나리오 1 if (!taskQueue.isEmpty()) { // 쓰레드 A,B 2개가 동시에 여기에 접근 // 쓰레드 A 가 먼저 Poll 을 해서 가져가버림. // 쓰레드 B 는 비어있는 Queue 에 대하여 poll, null 을 반환 받음 task = taskQueue.poll(); } else { continue; } // 쓰레드 A 는 정상 시작 // 쓰레드 B 는 NullPointerException! task.run(); 중복처리 원인// 시나리오 2 if (!taskQueue.isEmpty()) { // 쓰레드 A,B 2개가 동시에 여기에 접근 // 쓰레드 A 가 먼저 Poll 을 해서 가져 가버림. // 쓰레드 B 도 Poll 해서 task 를 가져감. task = taskQueue.poll(); } else { continue; } // 쓰레드 A 는 작업 시작 // 쓰레드 B 도 중복으로 해당 task 실행 task.run(); 혹시 코드를 아래처럼 짜야 되는 게 아닌지 조심스럽게 문의해봅니다.
-
해결됨스프링 핵심 원리 - 기본편
UnsatisfiedDependencyException 질문입니다
https://drive.google.com/file/d/1Ilyl5R3LPq0dH7d2lsg0cwKXXNzxQsjj/view?usp=sharing 강의 내용과 똑같이 코드를 따라했는데 Autowired로 했을때 오류가나네요 ㅠㅠㅠ 어떤게문제일까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
강의설명에 맥os는 미지원인데
맥으로 수업수강하는건 아예 불가능한건가요? 완전 초보자입니다ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
entity setter 사용 x
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 내용에 entity에 setter는 사용하지 않는다 변경내용을 추적하기 어렵다. 변경 확인하려면 오랜 시간이 소요될 수 있다라고 말씀해주셨는데,entity에 직접적으로 setter 를 쓰지 않고 dto에서 entity 로 옮겨서 save 할 때, toEntity toDto 메소드를 만들어서 일일히 사용하고 있다가 스프링에서 지원하는 BeanUtils.copyPropertyies(source,target) source -> target으로 복사하는 메소드를 알게 되었고, 이게 작동되려면 source에는 getter 가 target 에는 setter 가 필요한 걸로 알고 있는데 화면에서 받아온 requestDTO 를 entity로 복사할 때 entity에 setter 가 필요한데 이걸 사용하기보다 그냥 builder 패턴을 사용한 메소드를 사용하는 게 맞을까요?.. 궁금하여 질문드립니다..
-
해결됨Google 공인! 텐서플로(TensorFlow) 개발자 자격증 취득
슬랙 초대 부탁드립니다.
henrykim9319@gmail.com 슬랙 초대 부탁드립니다. 감사합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Custom Filter 적용2 수강중인데 CustomFilter클래스 apply가 호출이 안되네요.
CustomFilter 클래스는 기동될 때 로그로 찍어서 확인했는데 생성은 되는데 apply 함수가 호출이 안되네요. first ,second, apigateway 프로젝트 재빌드를 해도 호출이 안되네요. pre, post filter log가 호출이 안되는 이유가 무엇인가요?CustomFilter.java@Component @Slf4j public class CustomFilter extends AbstractGatewayFilterFactory<CustomFilter.Config> { public CustomFilter(){ super(Config.class); log.info("TEST TEST"); } @Override public GatewayFilter apply(final Config config) { log.info(" TEST 1 TEST 2"); // Custom Pre Filter return ((exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); ServerHttpResponse response = exchange.getResponse(); log.info("Custom PRE filter : request id -> {}", request.getId()); // Custom post Filter return chain.filter( exchange ).then(Mono.fromRunnable(() -> { log.info("Custom POST filter : response code -> {}", response.getStatusCode()); })); }) ; } public static class Config{ // put the configuration properties } }application.ymlserver: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: mvc: routes: - id: first-service uri: http://localhost:8081 predicates: - Path= /first-service/** filters: # - AddRequestHeader=first-request, first-request-header2 # - AddResponseHeader=first-response, first-response-header2 - CustomFilter - id: second-service uri: http://localhost:8082 predicates: - Path= /second-service/** filters: # - AddRequestHeader=second-request, second-request-header2 # - AddResponseHeader=second-response, second-response-header2 - CustomFilter apigateway 로그 2023-12-31T01:50:27.862+09:00 WARN 2068 --- [apigateway-service] [ main] trationDelegate$BeanPostProcessorChecker : Bean 'reactorDeferringLoadBalancerExchangeFilterFunction' of type [org.springframework.cloud.client.loadbalancer.reactive.DeferringLoadBalancerExchangeFilterFunction] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected into a currently created BeanPostProcessor [loadBalancerWebClientBuilderBeanPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies.2023-12-31T01:50:28.212+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.CustomFilter : TEST TEST2023-12-31T01:50:28.216+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.Filter.GlobalFilter : TEST TEST2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [After]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Before]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Between]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Cookie]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Header]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Host]2023-12-31T01:50:29.192+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Method]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Path]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Query]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [ReadBody]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [RemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [XForwardedRemoteAddr]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [Weight]2023-12-31T01:50:29.193+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.g.r.RouteDefinitionRouteLocator : Loaded RoutePredicateFactory [CloudFoundryRouteService]2023-12-31T01:50:29.564+09:00 INFO 2068 --- [apigateway-service] [ main] DiscoveryClientOptionalArgsConfiguration : Eureka HTTP Client uses RestTemplate.2023-12-31T01:50:29.922+09:00 WARN 2068 --- [apigateway-service] [ main] iguration$LoadBalancerCaffeineWarnLogger : Spring Cloud LoadBalancer is currently working with the default cache. While this cache implementation is useful for development and tests, it's recommended to use Caffeine cache in production.You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.2023-12-31T01:50:29.956+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.eureka.InstanceInfoFactory : Setting initial instance status as: STARTING2023-12-31T01:50:30.008+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Initializing Eureka in region us-east-12023-12-31T01:50:30.009+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Client configured to neither register nor query for data.2023-12-31T01:50:30.019+09:00 INFO 2068 --- [apigateway-service] [ main] com.netflix.discovery.DiscoveryClient : Discovery Client initialized at timestamp 1703955030017 with initial instances count: 02023-12-31T01:50:30.024+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application APIGATEWAY-SERVICE with eureka with status UP2023-12-31T01:50:30.314+09:00 INFO 2068 --- [apigateway-service] [ main] o.s.b.web.embedded.netty.NettyWebServer : Netty started on port 80002023-12-31T01:50:30.320+09:00 INFO 2068 --- [apigateway-service] [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 80002023-12-31T01:50:30.708+09:00 INFO 2068 --- [apigateway-service] [ main] c.e.a.ApigatewayServiceApplication : Started ApigatewayServiceApplication in 5.877 seconds (process running for 6.826)
-
해결됨빅데이터 클러스터 구축 패키지; 성공을 향한 로드맵
강의자료
혹시 강의 자료는 어디서 얻을 수 있을까요? 개인적으로 인프런 강의 구매한 사람 입니다.
-
미해결스프링 핵심 원리 - 기본편
PDF 강의자료 p.119 @Autowired 누락
AllBeanTest 클래스 내 DiscountService 클래스의생성자 메서드 위에 @Autowired가 누락돼있습니다. 강의본에서는 있는데 PDF 파일 내 코드에는 없네요.완강 후 PDF 코드 따라치면서 복습하다가 발견해서 글 올립니다.여담으로 PDF 내 코드가 다 있어서 빠르게 복습하기 좋아요!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
html 한글 깨지는 현상
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]html 파일 복사붙여 넣기 하시는거 따라했는데제 화면에는 한글이 깨져서 나옵니다.(한글 대신 네모박스)어떻게하면 해결 할 수 있을지 도와주시면 감사하겠습니다.
-
해결됨떠먹는 Three.js
WebGL 1 지원 중단에 대해
영상 : [손쉬운 조작 OrbitControls] 에서 three의 경로 설정 중 THREE.WebGLRenderer: WebGL 1 support was deprecated in r153 and will be removed in r163WebGL 1 지원은 r153에서 사용 중단되었으며 r163에서 제거될 예정입니다.라는 메세지가 나왔습니다. 질문 : 이게 나중에는 오류가 날 수 있다는 뜻인가요? 맞다면 어떻게 대비를 해야 하는지 궁금합니다.
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의자료 부탁드립니다.
강의자료 부탁드리겠습니다. ang2509@naver.com 입니다.
-
해결됨핸즈온 리액트 네이티브
안드로이드 스튜디오 오류
1장부터 난관이네요 ㅠ구글 플레이 스토어 같은 어플 다운 받는 플렛폼이 없습니다. 완전 초기상태이구요영상 대로 했습니다 expo 다운 받아야 다음 영상으로 넘어갈 탠데 어떻게 해야하나요 크롬 켜면 화면이 엄청 깨져서 진행을 못하고있습니다
-
해결됨Airflow 마스터 클래스
섹션 7 custom operator 실습 질문 (variable)
선생님 안녕하세요좋은 강의 감사드립니다. 섹션 7 custom operator 실습 강의에서 계속 오류가 나서, 이런 저런 시도를 해보던 도중에 variable 에 문제가 있다는 것을 알고 수정해서 해결을 했는데요. 강의대로 했는데 안되는 이유를 모르겠습니다. 아래는 저의seoul_api_to_csv_operator.py 파일인데요 class SeoulApiToCsvOperator(BaseOperator): template_fields = ('endpoint', 'path','file_name','base_dt') def init(self, dataset_nm, path, file_name, base_dt=None, **kwargs): super().__init__(**kwargs) self.http_conn_id = 'openapi.seoul.go.kr' self.path = path self.file_name = file_name self.endpoint = '{{var.value.apikey_openapi_seoul_go_kr}}/json/' + dataset_nm self.base_dt = base_dt self.endpoint = '{{var.value.apikey_openapi_seoul_go_kr}}/json/' + dataset_nm 부분을self.endpoint = 'api key 직접 입력/json' + dataset_nm 으로 바꾸니까 코드가 정상적으로 실행이 되었습니다. 그런데 이해가 안되는것이 airflow admin --> variable 에 들어가서 강의에 나오는대로 그대로 입력을 했거든요. Val 부분에 정확한 api key가 입력된 것도 수차례 확인했습니다. 어디에서 문제가 있는걸까요??
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
? 코딩하는 이유
int? 나 <string, object>? 뒤에 ?를 넣는 이유가 뭔가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
주문조회 V3.1 실행 후 Query 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.V3.1 실행 후 콘솔창에 뜨는 쿼리문이 다음과 같이 뜹니다.springboot version 3.2.1 이고 Hibernate5JakartaModule로 설정했습니다.application.properties도 아래와 같이 설정했습니다.그외 부분도 강사님 코드를 그대로 복붙해도 다음과 같이 물음표가 너무 많이 뜨는데 버전 문제인건가요?
-
미해결김영한의 실전 자바 - 기본편
참조형과 매서드 호출 강의 중 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] 강의 자료 중에 위 부분에서 질문이 있습니다.student1 과 student2가 다른 곳에 저장될 수 있는 이유는 student1이 매서드에서 생성되고 인스턴스에 저장된 후에 매서드의 매개변수 student가 지워져서 계속 매서드안의 인스턴스 student를 생성할 수 있는 건가요? 근본적인 질문은 student1과 student2가 매서드를 통해 생성이 되었는데 어떻게 다른 주소를 가지게 되는 지입니다.
-
해결됨독하게 되새기는 C 프로그래밍
왜 변수 주소 사이에 offset이 있는 건가요?
매개변수를 아래 처럼 선언하고void Add (int a, int b, int c)메모리 창에서 보면 중간에 빈 곳 없이 3개가 연속으로 채워져 있는데 32비트 환경에서 지역 변수로 int a = 1, b = 2; 이렇게 선언을 하면 중간에 cc cc 이런 값들이 채워져 있고 12바이트 만큼 서로 떨어져 있는데요 왜 이런 현상이 발생하는 건가요?중간에 cc로 채워진 부분은 딱히 사용하는 것 같지는 않은데 낭비가 되지는 않나요?
-
해결됨리눅스 입문 - 개념으로 탄탄히!!
kill -TERM 옵션
kill -TERM 옵션이나 -ABRT의 옵션처럼 kill -l로 조회한 시그널에서 SIG만 빼면 그대로 옵션으로 사용할 수 있는 원리인걸까요?예를 들어 15) SIGTERM에서 SIG만 빼고 TERM을 옵션으로 kill -TERM 25963로 사용하는 원리가 맞는걸까요?
-
미해결Next + React Query로 SNS 서비스 만들기
Server Action에 대한 질문과 클라이언트 컴포넌트에서 ServerAction을 활용할 때의 장점이 궁금합니다.
선생님의 설명 덕분에 클라이언트 컴포넌트에서도 Server Action을 활용하는 방법을 알게 되었습니다. 하지만 몇가지 의문이 있는 상태입니다. ㅜㅜServer Action이라는 것이 클라이언트 컴포넌트에서 직접 DB에 접근하거나 별도의 브라우저에서 요청하지 않더라도 서버에 요청을 보내서 Prerendering 하는 방식이 맞을까요?그러면 보안 상의 장점도 가질 수 있고, 속도에도 개선이 생기는게 맞을까요?클라이언트 컴포넌트에서 Server Action을 사용하게 된다면 기존의 Server Action의 장점이 없어지는 것 같은데 사용하는 이유가 단순히 강의에서의 설명을 위함이신지 아니면 별도의 장점이 있으셔서 강의에 넣으실 계획을 하신 건지 궁금해서 질문남깁니다!