묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
로그인에서 받아온 Session을 활용하고 자 할 때
안녕하세요 선생님자주... 문의드려 죄송합니다.로그인에서 가져온 Session 값을 활용하는 방법DAL 부분의 활용 여부로그인에서 가져온 Session 값을 활용하는 방법 public async Task<IActionResult> GetUser(GetUserDTO getUserDTO) { if (ModelState.IsValid) { } else { return Redirect("/login/SearchUserId"); } GetUserResponseDTO dto = await loginService.GetUser(getUserDTO); HttpContext.Session.Set("LoginUser", dto); return Redirect("/home/index"); } "LoginUser"으로 세션값을 사용하는 것은 이해했습니다. controller public async Task<IActionResult> GetUserList () { if (ModelState.IsValid) { } else { return Redirect("/home/UserList"); } GetUserResponseDTO ? user = HttpContext.Session.Get<GetUserResponseDTO>("LoginUser"); GetUserListResponseDTO dto = await UserListService.GetUserList(); return Redirect("/home/index"); }service public async Task<GetUserListResponseDTO> GetUserList(GetUserListDTO getUserListDTO) { var configuration = new MapperConfiguration(cfg => { }); Mapper mapper = new Mapper(configuration); Dictionary<string, object> dc = mapper.Map<GetUserListDTO, Dictionary<string, object>>(getUserListDTO); ProcCall procCall = new ProcCall(); DataTable dt = await procCall.RequestProcedure("SP_UserList", dc); GetUserListResponseDTO dto = new GetUserListResponseDTO(); return dto; }구현하고자 하는 내용.로그인 해서 나온 데이터를 활용하여 조회 화면을 구성하고자 함A 등급을 가진 사람한테 -> A-1 화면만 조회하도록 구현하고자 합니다.Session 값을 가져와서 구현하고자 했는데.. 그럼 DTO를 거치면 안 될까요...? DAL 부분의 활용 여부SP_ 형식을 차용하는데 DAL.Mapper와 DAL.Model 추가적인 사용은 필요가 없을 것 같습니다...?DB와 소통하는 부분으로만 남겨도 될까요?
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
안녕하세요 선생님 reverse 함수 사용하지 않고 문제풀이 해봤는데...
안녕하세요 선생님. reverse 함수 사용하지 않고 문제 풀이 해봤는데 dev c++에서는 예제 잘 돌아갔는데백준에서는 틀렸다고 나와서 질문 드립니다!왜 오류가 나오는지 , reverse 사용하지 않고 괜찮게 작성한 코드인지 궁금합니다! http://boj.kr/5ee18678eb5c4dd98d782a257769f061
-
해결됨독하게 시작하는 C 프로그래밍
연령별 버스 요금 계산 문제에서 범위에 따른 결과 차이
저는 65세를 기준으로 제어문을 만들어 보았습니다。 다만 어린이 요금 부분에 (4<= age <= 13과(age <=13)사이에 결과값에 차이가 생기는데 왜 차이가 생기는지 궁금해요
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
tf.keras.model.reset_states()
파이썬 버전이 다른지 텐서플로우 버전이 다른지 모르겠지만 자꾸 코드가 실행되지 않는 부분들이 있어 조금식 바꿔가면서 강의 듣고 있습니다. 그러던 중 Char-RNN실습에서 tf.keras.Model.reset_states()에 오류가 생겨 질문 드립니다. class exModel(tf.keras.Model): def __init__(self): super(exModel, self).__init__() self.layer = tf.keras.layers.Dense(10, activation = None, kernel_initializer = 'zeros', bias_initializer = 'zeros') def call(self, x): logits = self.layer(x) return logits My_model = exModel() My_model.reset_states()결과 :'exModel' object has no attribute 'reset_states' Tensorflow : 2.16.1Python : 3.10.13실습 파일 : train_and_sampling_v2_keras.py ==================================================================실습 코드 :# -*- coding: utf-8 -*- # Char-RNN 예제 - Keras API를 이용한 구현 # Reference : https://github.com/tensorflow/docs/blob/master/site/en/tutorials/text/text_generation.ipynb from __future__ import absolute_import, division, print_function, unicode_literals #python 2와 호완 from absl import app #Google에서 만든 API / Tensorflow와 같이 쓰이니 공부해두자 import tensorflow as tf import numpy as np import os import time # input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성하는 utility 함수를 정의합니다. def split_input_target(chunk): input_text = chunk[:-1] target_text = chunk[1:] return input_text, target_text # 학습에 필요한 설정값들을 지정합니다. data_dir = tf.keras.utils.get_file('shakespeare.txt', 'https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt') # shakespeare #data_dir = './data/linux/input.txt' # linux batch_size = 64 # Training : 64, Sampling : 1 ''' 기존 : [batch_size, data_dimension] 시계열 데이터 : [batch_size, sequence_len,data_dimension] ''' seq_length = 100 # Training : 100, Sampling : 1 #몇 글자를 한 시퀀스로 할 것인가 embedding_dim = 256 # Embedding 차원 hidden_size = 1024 # 히든 레이어의 노드 개수 num_epochs = 10 # 학습에 사용할 txt 파일을 읽습니다. text = open(data_dir, 'rb').read().decode(encoding='utf-8') # 학습데이터에 포함된 모든 character들을 나타내는 변수인 vocab과 # vocab에 id를 부여해 dict 형태로 만든 char2idx를 선언합니다. vocab = sorted(set(text)) # 유니크한 character vocab_size = len(vocab) print('{} unique characters'.format(vocab_size)) char2idx = {u: i for i, u in enumerate(vocab)} ''' character - index(int) mapping ''' idx2char = np.array(vocab) # 학습 데이터를 character에서 integer로 변환합니다. text_as_int = np.array([char2idx[c] for c in text]) # split_input_target 함수를 이용해서 input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성합니다. char_dataset = tf.data.Dataset.from_tensor_slices(text_as_int) sequences = char_dataset.batch(seq_length+1, drop_remainder=True) dataset = sequences.map(split_input_target) # tf.data API를 이용해서 데이터를 섞고 batch 형태로 가져옵니다. dataset = dataset.shuffle(10000).batch(batch_size, drop_remainder=True) #================================데이터 구성=========================================== # tf.keras.Model을 이용해서 RNN 모델을 정의합니다. class RNN(tf.keras.Model): def __init__(self, batch_size): super(RNN, self).__init__() self.embedding_layer = tf.keras.layers.Embedding(vocab_size, embedding_dim) #기본 예제라 특수적으로 임베딩 차원이 더 크게 했다 #batch_input_shape=[batch_size, None] self.hidden_layer_1 = tf.keras.layers.LSTM(hidden_size, return_sequences=True, stateful=True, recurrent_initializer='glorot_uniform') self.output_layer = tf.keras.layers.Dense(vocab_size) def call(self, x): embedded_input = self.embedding_layer(x) features = self.hidden_layer_1(embedded_input) logits = self.output_layer(features) return logits # sparse cross-entropy 손실 함수를 정의합니다. def sparse_cross_entropy_loss(labels, logits): return tf.reduce_mean(tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)) #sparse_categorical_crossentropy : one - hot encoding까지 알아서 해줌 # 최적화를 위한 Adam 옵티마이저를 정의합니다. optimizer = tf.keras.optimizers.Adam() # 최적화를 위한 function을 정의합니다. @tf.function def train_step(model, input, target): with tf.GradientTape() as tape: logits = model(input) loss = sparse_cross_entropy_loss(target, logits) grads = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) return loss def generate_text(model, start_string): num_sampling = 4000 # 생성할 글자(Character)의 개수를 지정합니다. # start_sting을 integer 형태로 변환합니다. input_eval = [char2idx[s] for s in start_string] input_eval = tf.expand_dims(input_eval, 0) # 샘플링 결과로 생성된 string을 저장할 배열을 초기화합니다. text_generated = [] # 낮은 temperature 값은 더욱 정확한 텍스트를 생성합니다. # 높은 temperature 값은 더욱 다양한 텍스트를 생성합니다. temperature = 1.0 # 여기서 batch size = 1 입니다. model.reset_states() for i in range(num_sampling): predictions = model(input_eval) # 불필요한 batch dimension을 삭제합니다. predictions = tf.squeeze(predictions, 0) # 모델의 예측결과에 기반해서 랜덤 샘플링을 하기위해 categorical distribution을 사용합니다. predictions = predictions / temperature predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy() # 예측된 character를 다음 input으로 사용합니다. input_eval = tf.expand_dims([predicted_id], 0) # 샘플링 결과를 text_generated 배열에 추가합니다. text_generated.append(idx2char[predicted_id]) return (start_string + ''.join(text_generated)) def main(_): # Recurrent Neural Networks(RNN) 모델을 선언합니다. RNN_model = RNN(batch_size=batch_size) # 데이터 구조 파악을 위해서 예제로 임의의 하나의 배치 데이터 에측하고, 예측결과를 출력합니다. #Sanity Check : 데이터 문제 없는지 확인 for input_example_batch, target_example_batch in dataset.take(1): example_batch_predictions = RNN_model(input_example_batch) print(example_batch_predictions.shape, "# (batch_size, sequence_length, vocab_size)") # 모델 정보를 출력합니다. RNN_model.summary() # checkpoint 데이터를 저장할 경로를 지정합니다. checkpoint_dir = './training_checkpoints' checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt_{epoch}") for epoch in range(num_epochs): start = time.time() # 매 반복마다 hidden state를 초기화합니다. (최초의 hidden 값은 None입니다.) hidden = RNN_model.reset_states() for (batch_n, (input, target)) in enumerate(dataset): loss = train_step(RNN_model, input, target) if batch_n % 100 == 0: template = 'Epoch {} Batch {} Loss {}' print(template.format(epoch+1, batch_n, loss)) # 5회 반복마다 파라미터를 checkpoint로 저장합니다. if (epoch + 1) % 5 == 0: RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print ('Epoch {} Loss {:.4f}'.format(epoch+1, loss)) print ('Time taken for 1 epoch {} sec\n'.format(time.time() - start)) RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print("트레이닝이 끝났습니다!") sampling_RNN_model = RNN(batch_size=1) sampling_RNN_model.load_weights(tf.train.latest_checkpoint(checkpoint_dir)) sampling_RNN_model.build(tf.TensorShape([1, None])) sampling_RNN_model.summary() # 샘플링을 시작합니다. print("샘플링을 시작합니다!") print(generate_text(sampling_RNN_model, start_string=u' ')) if __name__ == '__main__': # main 함수를 호출합니다. app.run(main)결과 :AttributeError: 'RNN' object has no attribute 'reset_states'tf.keras.layers.Embedding에 batch_input_shape에서 오류가 발생해서,https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding 참고해서 지웠고, 다른 부분은 안 건드렸습니다.tf.keras.layers.Embedding( input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, embeddings_constraint=None, mask_zero=False, weights=None, lora_rank=None, **kwargs )
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 처리하기 - 세션 직접 만들기 관련 질문입니다.
SessionManager를 보면 SESSION_COOKIE_NAME과 로그인 할 때마다 새로 생성한 sessionId로 쿠키를 만드는 것 같습니다.이 프로그램을 사용하는 여러 멤버들이 동시에 로그인을 한다면, sessionId는 다르지만 SESSION_COOKIE_NAME이 동일한 쿠키가 중복되서 생기지 않나요?findCookie에서는 SESSION_COOKIE_NAME만 가지고 로그인한 멤버가 사용하는 sessionId를 제대로 찾을 수 있는건가요?
-
미해결
강의 재생이안됩니다
아이패드 에어5로 크롬, 네이버에서 강의재생이안됩니다..재생오류 3016이라고 뜨고 안되네요..인터넷 연결은 잘되있고, 쿠키삭제 다했는데도 안됩니다..
-
해결됨[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
하반기 일정에 대해 궁금합니다
T2 진행과 관계없이 하반기에 M2는 진행하시는것 같은데, 언리얼 데디도 같이 진행이 되는건가요?그리구 서버는 뒤끝말고 직접구현하는 방식으로 갔으면 좋을 것 같아요.. 그냥 제 희망사항입니다 ㅎㅎ감사합니당
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
선생님 마지막 공부법 질문요!
머리식힐겸 유튜브 채널에 있는 강의도 1~2개 봤는데유형 바뀌기 전에 강의들이라...현재 수강하고 있는 강의 위주로 복습하는게 맞겠죠!? 바쁘신데 공부법 질문만 올려서 죄송합니다 ㅠ
-
해결됨[리뉴얼] 맛집 지도앱 만들기 (React Native & NestJS)
로그아웃할때 /server/uploads/index.html' 파일을 찾을수없다고 에러가 나오는데 어떻게해야할까요?
로그아웃 버튼을 클릭하면 Error: ENOENT: no such file or directory, stat '/Users/user/Documents/code/MatzipApp/server/uploads/index.html'이런 에러가 나오고있어서 uploads폴더에 Index.html파일을 추가하니까 에러는 안나오는데 index.html에 아무것도 안작성해도되나요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
자막 오탈자 제보
Part2 9강 44:24시점의 '로딩이 완료되면 현재 단어를 사용해서'라는 자막에 '형변환'이 '현재 단어'로 잘못 나와있습니다. 강의 내부 자막 오류를 어디에 제보하면 좋을지 몰라 이곳에 남깁니다.
-
해결됨김영한의 실전 자바 - 중급 2편
연결리스트 배열 선언?
해시 알고리즘6-해시 충돌 구현 파트에서 LinkedList<Integer>[] buckets = new LinkedList[CAPACITY];이런 코드가 등장했는데요. 제가 앞선 강의에서 이런 내용을 놓친 것인지는 잘 모르겠지만...ㅠ제네릭을 통해 선언하는 것인데new LinkedList<>()[CAPACITY]; 를 하면 안되는 이유가 무엇인가요?
-
미해결ASP.NET Core MVC +ASP.NET Core +REST API +.NET 8.0
Request.Query는 배열로는 받을 수 없나요?
queryString으로 데이터를 받아오는 것에서 매개변수에 string[] datas를 해주면, datas Name을 가진 input 태그에서는 받는 값들은 이 배열에 모인다는 걸 이해 했습니다. 근데 Request.Query로는 그게 불가능한가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형1모의문제1 - 문제3 질문
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요문제3의 변환 과정에서 아래와 같이 코드를 짜도 문제 없는건가요? 결과값은 동일합니다. df['f3'] = df['f3'].fillna(0) df['f3'] = df['f3'].replace('silver', 1).replace('gold', 2).replace('vip', 3)그리고 pandas에서 sum을 1번처럼 작성하는걸 더 권장한다고 들었는데 어떤 차이가 있는 건가요?1. print(df['f3'].sum())2. print(sum(df['f3']))
-
미해결ISMS-P 인증기준 선택 특강
강의 교안이 있을까요?
안녕하세요강의 교안이 있을까요?아니면 별도 교재를 구매해야 하나요?
-
해결됨개발자를 위한 쉬운 도커
docker commit 오류
안녕하세요. 윈도우 powershell 이용해서 이미지 commit 예제를 하던 중 오류가 나서 질문드립니다. 이렇게 docker commit requires at least 1 and at most 2 arguments. 가 발생하는데 어떻게 해결할 수 있을까요? +) git bash로 실행하니까 오류 사라졌습니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
SQL MAPPER Mybatis
최근에 우연히 spring.start.io에서 프로젝트를 만들다가 스프링 부트 3.3버전에서는 mybatis 의존성 추가를 막아 놓은것을 발견했습니다. mybatis라는 기술이 최신 버전의 스프링에서는 별로 좋지않은 방법이어서 의존성 추가를 못하게 막아놓는 건가요?
-
해결됨[켠김에 출시까지] 유니티 방치형 키우기 게임 (M1 + C1)
변경된 프로젝트에서 한번쯤 다뤄주셨으면 좋겠을법한 내용
안녕하세요. Rookiss님. 강의 정말 잘듣고있고 여러모로 도움이 많이 되고 있습니다~!!감사합니다. :) 다름이 아니오라 새로 진행될 프로젝트 T2 에서 한번 다뤄주셨으면 하는 바람에서 적어봅니다. 1) 방치형 혹은 디펜스 게임에서 유독히 Int32 범위를 넘어서는 큰 수들을 자주 볼수있는데 이 큰 수를 어떤 방식으로 처리하시는지 Rookiss 님의 노하우가 있으신지 궁금합니다. 2) 소규모 개발사들이 서버를 쓴다고 하면 뒤끝을 많이 이용하는 것같습니다. 서버 강좌도 좋지만 개인적으로는 뒤끝을 이용한 서버 운영 노하우(?) 를 배우는것도 실제 프로젝트에 바로 접목 해볼수 있을것 같아 뒤끝 연동으로 진행해주셨으면 하는 바람입니다. 이상입니다~!! 여러모로 고퀄리티의 강의 다시한번 감사드립니다~!!그리고 T2도 함께 화이팅하겠습니다~!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
stratify 설정 질문
선생님 강의 잘 듣고 있습니다. 다름이 아니라 예전에 혼자 공부할 때 데이터 분할을 할 때 stratify를 설정해서 데이터 불균형을 처리한다고 들었는데, 제가 놓친 것일 수도 있지만 선생님 강의에서는 따로 이에 관한 설명을 본 적이 없어서 질문드립니다. 2유형을 푸는 데에 있어서 stratify는 굳이 설정을 안 해도 문제가 없을까요? 아니면 시험 볼 때 설정을 해놓는 게 더 좋을까요?
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
35:50분의 name: x[‘name’]!, 질문입니다.
35:50분의 질문입니다.Name: x[‘name’]!,Group: x[‘group’]!, 이 부분은 위에 있는 map의 key에들어 있는 값이라고 하면서 어떻게 나중에 value값이 되는 건지 잘 이해가 안되는데요~ ㅠㅠ
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
3-O 질문 있습니다
큰돌 선생님이 제 멘토라고 생각하고 열심히 배우는 중입니다 ㅎㅎ다음은 제 코드입니다.http://boj.kr/9f42d776453a4633b13e660610a7eb74cnt가 찾은 ret 이상이면 (제 코드에서는 mn) return하는 코를 안 적으면 왜 시간초과가 나는지 잘 모르겠습니다.문제를 풀 때 최악의 상황을 생각해서 그 최악의 상황을 돌렸을 때 제한 시간안에 돌아가야 한다고 생각합니다.만약 정답이 가로선 3개를 추가하는 것인 최악의 상황에서 이 코드가 유의미한 시간복잡도 차이를 만들어내지 못하는게 아닌가 하고 생각합니다. 이 문제 같은 경우 테스트케이스가 그러한 방식으로 짜여져있어서 통과와 시간초과라는 차이를 만드는 것인지 궁금합니다.전에 선생님께서 가르쳐주신 조합 코드를 생각해보면 한번 확인한 위치는 다시는 확인을 안 하도록 start+1을 해서 코드를 작성했던 기억이 납니다. 하지만 이 코드는 확인했던 행 - 1까지는 확인을 안하도록 here을 사용하지만 열, 즉 j는 1부터 확인함으로써 중복으로 검사하고 있습니다. 왜 무한루프가 안 생기는지 이해가 잘 되지 않습니다.