안녕하세요. 본 강의를 통해 celery 를 처음 접하는 초보 입니다. 섹션2 의 Task Routing 에 대해 알아보기 강의를 보고 질문드립니다. standalone_celery 에만 작성된 mul 이나 xsum 함수(<- 이렇게 부르는 게 맞나요?)는 어떻게 실행하나요? 현재 상태에서는 실행할 수 없는 게 맞나요? django-app 에서는 해당 함수들이 ImportError 가 발생하고(실제 해당 함수가 없을 테니 여기까진 이해했습니다.) celery-standalone 에 들어가 python shell 에서 mul.delay(1,1) 을 실행하면 어디에도 queue2 로 task 가 실행된 로그가 뜨지 않습니다. 궁금합니다. P.S 'Celery 의 task 에 작성된 함수들이 queue 로 실행된다.' 가 맞는 표현인가요? 틀린 표현이라면 더 적합한 표현을 알고 싶습니다.
https://www.inflearn.com/community/questions/1516484 해당 게시글의 답변중 아래 문장이 이해가 잘 안갑니다 ㅠ 물론, 삭제된 데이터가 극히 적다면, 위 비용은 딱히 문제가 안될 수도 있긴 합니다. 삭제되지 않은 데이터가 훨씬 많다면, 조건에 일치(isDeleted=false)하는 데이터를 빠르게 찾을 수 있으므로, 스캔하는 범위는 어차피 적을테니깐요. 하지만 삭제된 데이터가 많아질수록 조건에 일치하는 데이터를 찾기 위해 스캔하는 범위가 길어질 수 있으므로 , 인덱스를 걸어둬야 빠르게 조회가 가능합니다! 인덱스를 걸지 않았을때 삭제되지 않은 데이터(isDeleted = false)가 훨씬 많다면 스캔하는 범위가 적은 이유 를 잘 모르겠습니다.. 인덱스가 없으면 삭제된 데이터가 많든, 많지 않든 무조껀 풀 스캔을 해서 스캔 범위는 똑같은게 아닌걸까요? 또한, 데이터 연속성도 스캔할시 관련이 있는건지 궁금합니다. 인덱스가 없을때 where isDeleted = false 쿼리 실행시 id가 4번까지만 스캔해서 스캔 범위가 적은걸까요? ㄸ 직전 조건와 같을때 위와 같이 데이터가 흐트러져있다면 풀스캔을 하는 걸까요? 인덱스 공부좀 해야겠네요 흙흙
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
안녕하세요. aws 의 용량부족이라 추가하고 mount 했고요. 순서대로 주피터노트북 연결까지는 성공을 했습니다. 그런데 !pip install pymysql 이 실행이 안되서, 도커연결 cmd 창에서 실행하니, pip가 없다고 나와서, sudo apt install python3-pip 로 인스톨을 하니 리부팅을 하라고 해서 리부팅까지 하고, 연결이 해제되고 docker ps 하니 실행되는게 없어서 다시 실행하고, 토큰 확인해서 다시 주피터 노트북연결해서 들어가고 나서 다시 !pip install pymysql을 실행하니까 안되네요. cmd 창에서 수행하니까, 에러가 나는데요, 확인해 보니 시스템이 관리하는 환경에서 직접적으로 패키지를 설치하려고 할 때 발생하는 거라, 이런 경우, Python 패키지를 설치하는 방법으로 가상 환경을 사용하거나 pipx 를 사용하라고 하는데요. 혹시 강의 중간에 제가 놓친 부분이 있는 걸까요? 가상환경으로 구축을 따로 해야 하는건지..??
강의 ID 329086 AWS Certified Solutions Architect - Associate 자격증 준비하기 해당 과정 문의를 진행했는데 아래와 같이 답변이 왔습니다. "안녕하세요. 기업 결제 수강생 분은 제가 연장 권한이 없습니다. 인프런에 문의 부탁 드립니다. 감사합니다." 그리하여 인프런에 문의 합니다. 업무와 병행 하다보니 일정이 여의치 않아 연장을 요청 드립니다. 6개월 이나 1년 연장 요청 드립니다. 감사합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] Autowired members must be defined in valid Spring bean (@Component|@Service|...) 라는 에러가 나왔습니다 코드 진행은 강의와 동일한 것 같아요.. package halo.core.scope; import jakarta.annotation.PostConstruct; import jakarta.annotation.PreDestroy; import lombok.RequiredArgsConstructor; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Scope; import org.springframework.scheduling.annotation.Scheduled; public class SingletonWithPrototypeTest1 { @Test void prototypeFind(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(PrototypeBean.class); PrototypeBean prototypeBean1 = ac.getBean(PrototypeBean.class); prototypeBean1.addCount(); Assertions.assertThat(prototypeBean1.getCount()).isEqualTo(1); PrototypeBean prototypeBean2 = ac.getBean(PrototypeBean.class); prototypeBean2 = ac.getBean(PrototypeBean.class); prototypeBean2.addCount(); Assertions.assertThat(prototypeBean2.getCount()).isEqualTo(1); } @Test void singletonClientUserPrototype(){ AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ClientBean.class,PrototypeBean.class); ClientBean clientBean1 = ac.getBean(ClientBean.class); int count1= clientBean1.logic(); Assertions.assertThat(count1).isEqualTo(1); ClientBean clientBean2 = ac.getBean(ClientBean.class); int count2= clientBean2.logic(); Assertions.assertThat(count2).isEqualTo(2); } @Scope("singleton") static class ClientBean{ private final PrototypeBean prototypeBean; @Autowired public ClientBean(PrototypeBean prototypeBean) { this.prototypeBean = prototypeBean; } public int logic(){ prototypeBean.addCount(); int count = prototypeBean.getCount(); return count; } } @Scope("prototype") static class PrototypeBean{ private int count =0; public void addCount(){ count++; } public int getCount(){ return count; } @PostConstruct public void init() { System.out.println("PrototypeBean.init" + this); } @PreDestroy public void destroy() { System.out.println("PrototypeBean.destroy" + this); } } }
public class ForEx3 { public static void main(String[] args) { for (int sum = 0, max = 100, i = 1; i <= max; sum += i, i++) { System.out.println(sum); } } } 이렇게 ForEx2에서 for문 괄호 안에서 여러개 선언이 가능하다고 하셨어서 한번 여러개 선언해서 해봤습니다. 근데 결과값이 왜100까지 더한값이 안나오고 99까지 더한값밖에 안나오는건지 잘 이해가 안됩니다!
강사님과 똑같이 따라 갔는데 강의에서 강사님께서는 rout53에 도메인이 있다고 나오시고 저는 없어서 선택이 안되고 있습니다. 혹시 인증서를 만들 때 도메인 이름을 강사님과 같이 임시로 아무렇게나 지었는데 그래서 그런건가요? 만약 그렇다면 기존에 있는 이름? 을 어디서 보고 올바르게 맞춰 작성해야 하나요?
DELETE A1 FROM Person A1 INNER JOIN Person A2 ON A1.email = A2.email WHERE A1.id > A2.id; 이너조인 연습 DELETE FROM Person --삭제 WHERE id IN ( SELECT id --외부 서브쿼리 FROM ( SELECT id, --내부 서브쿼리 ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) as id_rank FROM Person ) Number_Practice WHERE id_rank > 1 --외부조건 2순위 이상 ); 윈도우함수 Row_number 활용 PARTITION BY - 그룹 ORDER BY - 순위 (id) WITH CTE_practice AS ( SELECT id, ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) as id_rank FROM Person ) DELETE FROM Person WHERE id IN (SELECT id FROM CTE_practice WHERE id_rank > 1); CTE 이용 WITH CTE_NAME AS ( 내부서브쿼리 ) DELECT WHERE id IN ( 외부 서브 쿼리) 3가지를 연습해봤는데, 실무적으로는 어느 것을 더 지향하는지 (좋은코드? 클린코드?) 궁금해서 질문드립니다.
안녕하세요! 강의를 보다가 궁금증이 생겨서 질문 남깁니다. @Inheritance(strategy = InheritanceType.JOINED) @Inheritance(strategy = InheritanceType.SINGLE_TABLE) 영한님께서 InheritanceType.JOINED 전략을 쓰다가 성능이 잘 안나온다 싶으면 InheritanceType.SINGLE_TABLE 만 바꾸면 구조를 다 바꿀 수 있는 것이 JPA의 장점이라고 했습니다. 근데 실제로 서버를 운영하고 있는 상황에서 저렇게 바꿔도 기존의 데이터와 테이블에 영향이 없는지 궁금합니다.
회원가입 후 로그인 된 상태로 home으로 이동하게 되는데 여기서 useSession정보가 업데이트 되지않아서 Props로 session정보를 넘겨주는 방식으로 사용하셨는데 다르게 처리하는 방법도 있을까요 ? 예를 들면 로그인 모달에서 했던 것 처럼 서버액션을 사용하지 말고 클라이언트 컴포넌트에서 fetch 를 처리한 후 replace(/home) 시키는 방법이요 !
예제로 배우는 딥러닝 자연어 처리 입문 NLP with TensorFlow - RNN부터 BERT까지
class Encoder(tf.keras.layers.Layer): def __init__(self, num_layers, d_model, num_heads, dff, input_vocab_size, maximum_position_encoding, rate=0.1): super(Encoder, self).__init__() self.d_model = d_model self.num_layers = num_layers self.embedding = tf.keras.layers.Embedding(input_vocab_size, d_model) self.pos_encoding = positional_encoding(maximum_position_encoding, self.d_model) self.enc_layers = [EncoderLayer(d_model, num_heads, dff, rate) for _ in range(num_layers)] self.dropout = tf.keras.layers.Dropout(rate) def call(self, x, training, mask): seq_len = tf.shape(x)[1] # adding embedding and position encoding. x = self.embedding(x) # (batch_size, input_seq_len, d_model) x *= tf.math.sqrt(tf.cast(self.d_model, tf.float32)) x += self.pos_encoding[:, :seq_len, :] x = self.dropout(x, training=training) for i in range(self.num_layers): x = self.enc_layers[i](x, training, mask) return x # (batch_size, input_seq_len, d_model) 위와 같이 클래스 인코더가 정의 되어있고 아래와 같이 테스트를 진행했습니다 오류가 발생하여 [training=False, mask=None] 으로 수정하여 진행을 해도 같은 오류가 발생합니다. sample_encoder = Encoder(num_layers=2, d_model=512, num_heads=8, dff=2048, input_vocab_size=8500, maximum_position_encoding=10000) temp_input = tf.random.uniform((64, 62), dtype=tf.int64, minval=0, maxval=200) sample_encoder_output = sample_encoder(temp_input, training=False, mask=None) print(sample_encoder_output.shape) # (batch_size, input_seq_len, d_model) 오류내용 ValueError: Exception encountered when calling Encoder.call(). Only input tensors may be passed as positional arguments. The following argument value should be passed as a keyword argument: False (of type <class 'bool'>) Arguments received by Encoder.call(): • x=tf.Tensor(shape=(64, 62), dtype=int64) • training=False • mask=None 문제가 무엇일까요 ㅜㅠ
좋은 강의 너무 감사드립니다! JOIN 개념 배우다가 의문이 생겨 질문 남깁니다! 혹시 JOIN 연산 수행했을 때 합쳐진(JOIN 결과) 테이블은 통째로 지정할 순 없나요? 예를 들면 실습해주신 쿼리에서, JOIN을 했는데 다시 tp.* , t.* , p.* 처럼 일일이 호출할 거면 JOIN한 의미가 있나 해서요.. 😅 JOIN을 했으니까, tp.* 만 호출해도 전체 테이블이 다 나오면 편할 거 같은데, 그렇게 되지 않는 이유가 궁금합니다!
안녕하세요! 강의를 잘보고 있습니다. 강의를 보다가 질문이 있는데요,. 같은 디스패쳐를 썼을때, 자식 코루틴이 코루틴 스코프를 새로 만드는게 어떤 효과를 기대할 수 있나요? 스코프를 새로 만드는게 어떤 이점이 있는지 잘이해가 안되는 것 같습니다.. 또 부모코루틴안에서 새로운 코루틴 스코프를 만든 자식 코루틴과 그냥 자식 코루틴 이 2개가 있을 때 동작하는 방식에서도 차이가 있는지 궁금합니다!
문제1 기능 동작 사용성 확인 각 영역 클릭율 클릭 이후 주문 전환율 문제2 검색 만족도 지표 결과 화면 진입 이후 주문 전환율 주문 까지 걸리는 시간 문제3 검색 필터 기능 필터 클릭율 페이지 진입 이후 필터 클릭 까지 걸리는 시간 > 사용성 지표 문제4 배달 서비스에서 가장 중요한 지표 거래 DAU > 배달 앱에서의 최종 과업 = ‘주문 완료’ 가장 중요한 핵심 지표 늘릴 수 있는 방법 빠르고 간편한 주문 과정 ux 빠른 배달 서비스 제공 폭넓은 메뉴 선택지 제공 방문 DAU > 액션 주기가 짧은 배달앱 특성상 데일리 유저수 중요할듯 쿠폰, 프로모션 마케팅 사용자 행동 패턴 분석 및 추천 서비스 제공 주문 요일, 시간대별 주문 음식 등 패턴 분석해서 푸시 알림 발송 이전 검색어, 클릭 카테고리 등 분석해서 화면에서 유도 문제5 추천 알고리즘의 성능 지표 파악할 지표 해당 추천 콘텐츠(상품) 클릭율, 구매 전환율 확인, 콘텐츠 체류 시간 확인 이유 제대로 타겟팅 되었는지 클릭율로 1차적인 관심도를 파악할 수 있다 상품 클릭 이후 구매 전환율을 통해 유저의 행동에서 더 명확하게 성능을 파악할 수 있다 체류 시간이 짧고 이탈 했다면 관심도가 떨어진다는걸 유추할 수 있다 체류 시간이 길다면 콘텐츠에 관심도가 높다는걸 유추할 수 있다 문제6 자주 사용하는 서비스의 지표 번개장터 가장 중요한 지표 : 상품 등록 DAU 중요 이유 등록된 상품이 많아야 방문 dau가 올라가고 구매로 전환이 되면 구매/판매하는 유저의 최종 목적이 달성되기 때문이다. 이 과정에서 번개장터는 거래시 발생하는 수수료를 가져간다. 따라서 상품 등록 과정의 ux가 복잡하지 않은게 중요한 부분이될수 있다. 그 외에 확인해야 하는 지표 거래 DAU 방문 DAU 문제7 퍼널 개선 프로젝트 개선 이후 가입 완료율 확인 개전 전/후 전환율 비교 전환율이 더 떨어졌다 > 이탈 지점 확인 > 개선점 파악 전환율이 올랐다 > 어떻게하면 더 높일 수 있을까? 가입이후 온보딩에서 소개된 기능 클릭율 확인 클릭율이 저조한 기능들은 온보딩에서 생략해보기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 아니오 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 영한님께서 내부 클래스에서 외부 클래스의 private 필드에 접근할 수 있다고 말씀해주셨는데. 외부 클래스의 메소드의 경우도, 중첩 클래스의 private 필드나 private 생성자에 접근할 수 있나요?
Editor component를 만드는 과정에서 onClickAdd 함수는 App.tsx에 남기는 이유가 궁금합니다. 강의에서는 setTodos를 호출해야 하기 때문이다 라고 말씀하셨는데, setTodos 또한 Editor component로 옮기면 안될까요? 우선 Editor로 모두 옮겼을 때 강의에서 한 것과 똑같은 기능을 하기는 하는데, 이렇게 하면 어떤 비효율적인 측면이 있는지 궁금합니다.