묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
공부방향과 진로에 대해서 질문 드립니다.
현재 안정적인 직장(공기업 사무직)을 가지고 있지만 우연한 계기로 개발에 흥미를 가져서 계속 공부하고 있습니다. 개발 공부하면서 스스로를 많이 돌아 본 결과 저는 개발하는게 너무 재밌고, 제 적성에도 맞습니다. 컴퓨터앞에 하루종일 앉아서 코딩하면 너무 재밌고 시간도 잘 갑니다.이전에 최상위권 대학 문과 학부를 졸업했지만, 작년에 방송대 컴퓨터과학과 편입하여 내년 2월 우수한 성적으로 졸업을 앞두고 있고, 정보처리기사 자격증도 취득했습니다. 현재는 잠깐 휴직하고 부트캠프에서 javascript 기반으로 공부하고 있습니다. 다만 나이가 좀 많습니다. 30대 중반... 개인적으로 프론트보다 백엔드쪽이 성향에 맞아서 백엔드 개발자로 취업하고싶지만, 취업이 안된다면 개인적으로 1인 앱개발, 1인 창업, 외주 웹 프로젝트 등으로 현재 회사를 다니면서 개발을 계속하고 싶습니다.그래서 한국에서 백엔드의 정석이라는 spring말고 제로초님 강좌 들으면서 javascript, node.js, next.js 등을 학습하기로 결정하고 계속 공부 중입니다.요약하자면 30대 중반 방송대 컴퓨터학과 졸업생이 node.js와 typescript, nest.js를 학습하면 백엔드 개발자로 신입 취업하는 것이 가능할까요? 아니면 취업이 아니라 다른 방향으로 이외로 눈을 돌려봐야 될까요? 제로초님의 생각은 어떤지 궁금합니다. [제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
선생님 안녕하세ㅛ
선생님 https://github.com/open-mmlab/mmdetection/issues/8834위와 같은 증상인것 같은데MMsegmentation 할때 ballon 데이터 학습시키는데 자꾸 멈추는것 같습니다.. 이부분이 더 고민인게 멈추는 것인지 학습을 하는 것이지 의문입니다 그래서 epoch 1로 해봤는데도.. 안되는 것 같아요..왜그런걸까요.. ㅠㅠ..
-
미해결리눅스 커맨드라인 툴 (Full ver.)
강사님한테 배운것들 맥 os 에서도 쓰임새있나요?
맥이랑 리눅스둘다 유닉스 계열이잔아요.로드맵 강의 따라가고 있는데요.맥os 에서 가르쳐 주신 명령어나 다른 내용들 공통분모인 부분이 있나요??.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
custom.js 오류문제
처음에는 강의듣고 코드 쓰는데에 불편함이 없어서 사용했는데 계속 오류창이 뜨고 가끔 안되는 상황도 있어서 질문드립니다.
-
미해결홍정모의 따라하며 배우는 C언어
static 변수를 동적할당하면 free 해줘야 하나요?
static 변수는 프로그램 종료시에 할당해제 되므로 따라 free를 안해줘도 상관없지만 malloc 과 같이 메모리를 할당하여 사용하면 메모리 누수 방지를 위해 free를 해줘야 하는걸로 알고 있습니다. 여기서 궁금한 점이 static 변수를 동적할당하면 그건 free 를 해줘야 하나요??
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
linux 관련 문의
안녕하세요! 1강이 아닌 바로 2강을 결제해서 vitis와 Vivado를 설치하여 강의를 듣고있는데 1강을 참고하여 따로 Linux 환경에서 Vitis를 다시 깔아야할까요? 아니면 그대로 진행해도될까요? 감사합니다
-
미해결
강의 리스트 좋아요 기능
나중에 또 보고싶은 강의를 저장해놓고 싶어서 강의 내 커리큘럼 리스트 안에도 좋아요 기능이 있으면 좋을것같습니다!
-
해결됨유니티 머신러닝 에이전트 완전정복 (기초편)
A2C 알고리즘을 드론 환경에 적용하려면
안녕하세요, 드론 환경에서 A2C 알고리즘을 적용해서 실험해보려고 합니다.환경에 맞게 적용을 하기 위해 state_size, action_size를 각각 9와 3으로 설정하고, 이 외에도 여러 부분을 수정하여 돌려 보려고 했는데 잘 안 되네요.get_action() 함수를 손보거나, preprocess를 하는 부분을 수정해주어야 할 것 같은데, 어떻게 해결해야 할지 잘 모르겠습니다.현재 상태에서는 다음과 같은 오류가 발생하고 있습니다.A2C.py의 코드는 아래와 같습니다.import numpy as np import datetime import platform import torch import torch.nn.functional as F from torch.utils.tensorboard import SummaryWriter from collections import deque from mlagents_envs.environment import UnityEnvironment, ActionTuple from mlagents_envs.side_channel.engine_configuration_channel\ import EngineConfigurationChannel # A2C를 위한 파라미터 값 세팅 state_size = 9 action_size = 3 load_model = False train_mode = True discount_factor = 0.9 learning_rate = 0.00025 run_step = 100000 if train_mode else 0 test_step = 10000 print_interval = 10 save_interval = 100 # VISUAL_OBS = 0 # GOAL_OBS = 1 # VECTOR_OBS = 2 # OBS = VECTOR_OBS # 유니티 환경 경로 game = "Drone" os_name = platform.system() if os_name == 'Windows': env_name = f"C:/Users/user/anaconda3/envs/mlagents/Drone_0427/Drone_1002_3.exe" elif os_name == 'Darwin': env_name = f"../envs/{game}_{os_name}" # 모델 저장 및 불러오기 경로 date_time = datetime.datetime.now().strftime("%Y%m%d%H%M%S") save_path = f"./saved_models/{game}/A2C/{date_time}" load_path = f"./saved_models/{game}/A2C/20210709235643" # 연산 장치 device = torch.device("cuda" if torch.cuda.is_available() else "cpu") print("CUDA is available" if torch.cuda.is_available() else "CPU is available") # A2C 클래스 -> Actor Network / Critic Network 정의 class A2C(torch.nn.Module): def __init__(self, **kwargs): super(A2C, self).__init__(**kwargs) self.d1 = torch.nn.Linear(state_size, 128) self.d2 = torch.nn.Linear(128, 128) self.pi = torch.nn.Linear(128, action_size) self.v = torch.nn.Linear(128, 1) def forward(self, x): x = F.relu(self.d1(x)) x = F.relu(self.d2(x)) return F.softmax(self.pi(x), dim=1), self.v(x) # A2CAgent 클래스 -> A2C 알고리즘을 위한 다양한 함수 정의 class A2CAgent(): def __init__(self): self.a2c = A2C().to(device) self.optimizer = torch.optim.Adam(self.a2c.parameters(), lr=learning_rate) self.writer = SummaryWriter(save_path) if load_model == True: print(f"... Load Model from {load_path}/ckpt ...") checkpoint = torch.load(load_path+'/ckpt', map_location=device) self.a2c.load_state_dict(checkpoint["network"]) self.optimizer.load_state_dict(checkpoint["optimizer"]) # 정책을 통해 행동 결정 def get_action(self, state, training=True): # 네트워크 모드 설정 self.a2c.train(training) #네트워크 연산에 따라 행동 결정 pi, _ = self.a2c(torch.FloatTensor(state).to(device)) action = torch.multinomial(pi, num_samples=1).cpu().numpy() return action def train_model(self, state, action, reward, next_state, done): state, action, reward, next_state, done = map(lambda x: torch.FloatTensor(x).to(device), [state, action, reward, next_state, done]) pi, value = self.a2c(state) # Value network with torch.no_grad(): _, next_value = self.a2c(next_state) target_value = reward + (1-done) * discount_factor * next_value critic_loss = F.mse_loss(target_value, value) #Policy network eye = torch.eye(action_size).to(device) one_hot_action = eye[action.view(-1).long()] advantage = (target_value - value).detach() actor_loss = -(torch.log((one_hot_action * pi).sum(1))*advantage).mean() total_loss = critic_loss + actor_loss self.optimizer.zero_grad() total_loss.backward() self.optimizer.step() return actor_loss.item(), critic_loss.item() # 네트워크 모델 저장 def save_model(self): print(f"... Save Model to {save_path}/ckpt ...") torch.save({ "network" : self.a2c.state_dict(), "optimizer" : self.optimizer.state_dict(), }, save_path+'/ckpt') # 학습 기록 def write_summray(self, score, actor_loss, critic_loss, step): self.writer.add_scalar("run/score", score, step) self.writer.add_scalar("model/actor_loss", actor_loss, step) self.writer.add_scalar("model/critic_loss", critic_loss, step) # Main 함수 -> 전체적으로 A2C 알고리즘을 진행 if __name__ == '__main__': # 유니티 환경 경로 설정 (file_name) engine_configuration_channel = EngineConfigurationChannel() env = UnityEnvironment(file_name=env_name, side_channels=[engine_configuration_channel]) env.reset() # 유니티 브레인 설정 behavior_name = list(env.behavior_specs.keys())[0] spec = env.behavior_specs[behavior_name] engine_configuration_channel.set_configuration_parameters(time_scale=12.0) dec, term = env.get_steps(behavior_name) # A2C 클래스를 agent로 정의 agent = A2CAgent() actor_losses, critic_losses, scores, episode, score = [], [], [], 0, 0 for step in range(run_step + test_step): if step == run_step: if train_mode: agent.save_model() print("TEST START") train_mode = False engine_configuration_channel.set_configuration_parameters(time_scale=1.0) #preprocess = lambda obs, goal: np.concatenate((obs*goal[0][0], obs*goal[0][1]), axis=-1) #state = preprocess(dec.obs[OBS]) #state = preprocess(dec.obs[OBS],dec.obs[GOAL_OBS]) state = dec.obs[0] action = agent.get_action(state, train_mode) action_tuple = ActionTuple() action_tuple.add_continuous(action) env.set_actions(behavior_name, action_tuple) env.step() dec, term = env.get_steps(behavior_name) done = len(term.agent_id) > 0 reward = term.reward if done else dec.reward next_state = term.obs[0] if done else dec.obs[0] score += reward[0] if train_mode: agent.append_sample(state[0], action[0], reward, next_state[0], [done]) # 학습 수행 actor_loss, critic_loss = agent.train_model() actor_losses.append(actor_loss) critic_losses.append(critic_loss) if done: episode += 1 scores.append(score) score = 0 # 게임 진행 상황 출력 및 텐서 보드에 보상과 손실함수 값 기록 if episode % print_interval == 0: mean_score = np.mean(scores) mean_actor_loss = np.mean(actor_losses) mean_critic_loss = np.mean(critic_losses) agent.write_summray(mean_score, mean_actor_loss, mean_critic_loss, step) actor_losses, critic_losses, scores = [], [], [] print(f"{episode} Episode / Step: {step} / Score: {mean_score:.2f} / " +\ f"Actor loss: {mean_actor_loss:.2f} / Critic loss: {mean_critic_loss:.4f}") # 네트워크 모델 저장 if train_mode and episode % save_interval == 0: agent.save_model() env.close()답변 주시면 감사하겠습니다!
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - NFT
ERC-721을 위한 baobab 사이트에 계정만들기부터 안되요.
baobab 사이트에서 KLAY Faucet 화면에서 로그인 하시는데요. 현재 사이트에 들어가보면 탭(Using Keystore File)이 안보입니다. 오히려 그 위에 메뉴 Send KLAY & Token에 들어가니 비슷한 화면이 보이는데.. 이 화면을 이용해도 될까요?
-
해결됨대세는 쿠버네티스 (초급~중급편)
Statefulset PersistentVolumeClaim 생성
안녕하세요 또 여쭤볼 게 있어서 문의 드립니다.퍼시스턴트볼륨클레임을 예제와 같이 동일하게 생성하였는데생성된 퍼시스턴트볼륨클레임에는 용량도 없고퍼시스턴트 볼륨도 생성되지 않았습니다.혹시 어떤 부분을 확인해봐야 할까요?
-
미해결홍정모의 따라하며 배우는 C언어
vscode로 수업 들어도 괜찮을까요??
노트북이 m1맥북 하나여서 vscode로 수업 듣고있는데요.앞으로 쭉 수업 들으려면 윈도우에서 vs로 수업 듣는게 나을까요?vscode로 따라하면서 수업듣는데 무리 없을까요??회사에서 남는시간에 듣고있는데 노트북이 맥북밖에없네요ㅠㅠ프로그래밍은 이 강의로 처음 입문중인 쌩초보입니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Network error: Connection refused
- 강의 내용외의 개인 질문은 받지 않아요. (개인 과제, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..)- 저 포함, 다른 수강생 분들이 함께보는 공간입니다. 보기좋게 남겨주시면 좋은 QnA 문화가 될 것 같아요. (글쓰기는 현업에서 중요한 능력입니다!)- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.mobaxterm 설치후 우분투 실행하는데 다음과 같이 뜨면서 실행되지 않습니다.
-
미해결스프링 핵심 원리 - 기본편
@autowired, @bean
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. DI 관련해서 질문이 있어 여쭤봅니다. Lombok을 추가해서 중복된 코드를 제거하는 부분까지 봤는데 궁금한 점이 아직도 풀리지 않아 질문드립니다. 스프링 데이터 JPA를 사용해서 프로젝트를 하는데 repo에는 extends JPArepository<entity, pk>를 추가하였고 domain에는 @Entity, @Getter, @Setter,@NoArgsContrustor를, service에는 @Service, @RequiredArgsContructor를, controller에는 @RestController, @RequiredArgsController를, repository에는 아무런 annotation을 심어놓지 않았습니다. 강의를 들어봤을 때 스피링 JPA에서는 DI를 하려면 a) config를 만들고 @Bean을 따로 등록하거나, b) 이 방법을 사용하지 않으려면 @component, @autowired를 같이 쓰는 방법이 있다는 것으로 이해를 했습니다. 하지만 저는 repository에는 @repository라는 annotation을 붙이지 않았으며, 따로 bean을 등록하지 않고 도메인, 서비스, 컨트롤러에 @component annotation만 넣고 @autowired는 사용하지 않았습니다. 그런데 원하는 결과값이 나와 어느 부분에서 DI가 실현된건지 궁금합니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 7:05초에서 미들타임 에러가 무슨뜻인가요?
미들타임 에러가 무슨뜻인가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
H2 DB 접근 거부 에러
수업 들으며 h2 db 잘 사용하고 있었는데요...오늘 접속하려고 보니 해당 에러가 발생하며 H2 콘솔 접근이 안됩니다 ㅠㅠJDBC URL 을 jdbc:h2:~/test 로 지정하면 정상 접근 되는 상황입니다.db 파일도 제대로 있고,db 파일 삭제 후 다시 파일 만들어 시도해도 동일한 현상입니다. 어떻게 조치해야 할까요? ㅠㅠ
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 관련해 선택 사항 질문
구파고 선생님 https://techhelpnotes.com/spring-boot-springboot-feignclient-vs-webclient/또 다른 선택 사항으로 sebclient 가 있는데 feign vs webcliet 에서 네이버 광고 api 연동으로 뭔가 대쉬보드 같은걸 만들고 싶다 그러면 어떤게 좋나요?
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
아이콘 안보이는 문제
삭제버튼 쓰레기통 아이콘이 안보이고, +도 아이콘이 아니라 <>+<> 이렇게 된거입니다.index.html 에 <link> 이부분은 깃허브에서 코드 그대로 복사 해 왔습니다. 어떻게 해야 할까요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Assertions
김영한 강사님의 수업 pdf파일로 공부하던 중에 궁금한게 생겼습니다. assertj의 assertions와 jupiter의 assertions를 번갈아 가면서 쓰시던데 단지 기능에 따라서 쓰시는 건가요?
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Spring Cloud OpenFeign (2) 5분 39초 질문
디버깅을 65번째 줄에 찍고 디버깅 모드로 실행한뒤요청 날리면 이게 맞나요?
-
미해결취미로 해킹#3(WebGoat)
tmp 폴더는 임의로 생성하신 걸까요
윈도우 10 기준 명령어는 ./ 을 붙여야 실행이되고제가 임의로 tmp폴더를 만들어서 영상대로 파일을 집어넣고 터미널에서 열었는데 이렇게 뜨네요 ㅠ