묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
401 unauthorized error
안녕하세요 강사님! 늘 빠른 답변 감사합니다. 다름이 아니라 제가 해당 영상을 보고 제 docker registry 에 eureka image 를 push 하기 위해서 build를 하려고 하는데, 다음과 같은 에러가 뜨더라구요. [+] Building 1.5s (4/4) FINISHED => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 37B 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => ERROR [internal] load metadata for docker.io/library/openjdk:17-ea-11-jdk-slim 1.4s => [auth] library/openjdk:pull token for registry-1.docker.io 0.0s ------ > [internal] load metadata for docker.io/library/openjdk:17-ea-11-jdk-slim: ------ failed to solve with frontend dockerfile.v0: failed to create LLB definition: failed to authorize: rpc error: code = Unknown desc = failed to fetch oauth token: unexpected status: 401 Unauthorized 무엇이 문제일까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
OneToOne 매핑에서 Unique constraint와 Soft delete
안녕하세요, 김영한 강사님. 일대일 관계에서 DB에 Unique constraint를 걸어준다는 것에는 공감이 되었습니다. 그런데 저번 강의 어떤 질문에서, 실무에서는 데이터 이력 유지를 위해 deleted를 나타내는 컬럼을 추가하여 활용한다고 말씀하신걸 봤는데, 이 경우 만약 Member의 기존 Locker가 삭제되어야하고, 새로운 Locker를 매핑해주어야 한다면, memberId에 걸린 Unique constraint에 의해 새로운 Locker 추가가 불가능한것이 아닌가 생각이 들었습니다. 짧은 검색을 통해 제약조건을 deleted = false인 컬럼에만 걸수 있는 방법이 있다는 것을 알았는데요, 실무에서도 이렇게 사용하시는지, 다른 방법이 있을지 궁금합니다. 감사합니다.
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
회문문자열 질문
public String mysolution(String str) { Boolean answer = true; str = str.toLowerCase(); char[] c = str.toCharArray(); int lt = 0 , rt = str.length()-1; while(lt<rt) { if(c[lt]!=c[rt]) { answer = false; break; } lt++; rt--; } return answer ? "YES" :"NO"; } 위처럼 문자열바꾸기 할떄 썼던 방법을 쓰는것 보다 강의에서 풀어주신 방법이 더 효율적인 이유가 궁금합니다!!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
양방향 관계에서 '주인이 아닌쪽은 읽기만 가능'의 의미가 궁금합니다.
안녕하세요, 김영한 강사님. 양방향 매핑 관계에서 '주인이 아닌쪽은 읽기만 가능하다' 라고 설명해 주셨는데요, 이 의미가 잘 이해가 가지 않습니다. 저는 이를 이해하기로, Member(하인) - Order(주인) 관계에서 List<Order> orders = member.getOrders(); 로 가져온 order 객체들에 대해 수정이 불가능하다라고 이해를 했는데요, 간단한 실험을 해보니 orders.forEach(order -> { order.setOrderStatus(OrderStatus.CANCEL); entityManager.persist(order); }); 의 방법으로 order들이 update 되는 것을 확인할 수가 있었습니다. 반대로 order.getMember(); 로 가져온 member들에도 수정이 가능했고요. 혹시 제가 잘못 이해하고 있는것일까요? 감사합니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
좋은 강의 만들어 주신 덕분에 지난 과제와 이번 과제 모두 혼자 할 수 있었습니다.
좋은 강의 내주셔서 정말 감사드립니다. 처음에는 내가 할 수 있을까 걱정했지만, 지난시간과 이번 시간에 내준 과제 모두 스스로 해결했습니다. 강의를 들으면 들을수록 제 자신이 성장하는게 느껴지네요. 특히 뷰 만드는것이 제일 힘들었는데, 강의 보면서 터득한 부트스트랩으로 도큐멘트를 보면서 만들어보니 재밌더군요, 과제 구현 중에 Subgraph라는 것을 말씀하셨는데, @EntityGraph(attributePaths = {"event", "event.study"})List<Enrollment> findByAccountAndAcceptedOrderByEnrolledAtDesc(Account account, boolean accepted); 이런식으로 해도 동작하더라구요. 그래도 이렇게 하는 것 보다 엔티티 도메인 클래스에 직접 명시해주는게 낫나요? 항상 좋은 강의 감사드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
백엔드에대한 응답처리
saga에서 백엔드 요청을하고 그에대한 응답처리도 saga에 작성해둔 try catch 문으로 해결하는데 여기서 백엔드에서 로그인 미들웨어로 로그인안된경우 응답을 exports.isLoggedIn = (req, res, next) => { if (req.isAuthenticated()) { next(); } else { res.status(401).send('로그인이 필요합니다.'); } }; 이렇게 하게되어있습니다. 여기서 로그인 체크 미들웨어에서 로그인이 안되어서 응답을 401 로그인이 필요합니다로 전달하게되면 saga에서 작성된 try catch 에서 에러를 잡아서 상태를 변경하는데 만약 로그인이 되어있지않아 "로그인이 필요합니다"라는 응답을 메세지로 화면에 보여주고싶으면 이것도 saga에서 처리하는게 맞나요? 현재 코드는 function likePostAPI(data) { return axios.patch(`/post/${data}/like`); } function* likePost(action) { try { const result = yield call(likePostAPI, action.data); yield put({ type: LIKE_POST_SUCCESS, data: result.data, // {PostId: ... UserId: ...} }); } catch (err) { console.error(err); yield put({ type: LIKE_POST_FAILURE, data: err.response.data, }); } } 에러발생시 응답으로 전달된 "로그인이 필요합니다." 에러메세지를 띄우려고 할 경우 아래처럼 작성하려는데 다른 좋은방법이있나요? 아니면 그냥 아래처럼 작성해도 괜찮을까요?? function likePostAPI(data) { return axios.patch(`/post/${data}/like`); } function* likePost(action) { try { const result = yield call(likePostAPI, action.data); yield put({ type: LIKE_POST_SUCCESS, data: result.data, // {PostId: ... UserId: ...} }); } catch (err) { console.error(err); alert(err.response.data); yield put({ type: LIKE_POST_FAILURE, data: err.response.data, }); } }
-
미해결Tip으로 배우는 엑셀(Excel)
2:21분 즈음에 절대참조를 언급하시는데 그건 어떤건가요?
절대참조는 어떤 것인지 궁금합니다.
-
미해결처음 배우는 리액트 네이티브
Notification Icon들의 색깔과 배경을 어떻게 바꿀까요?
react native를 이제 막 배우는 초보입니다. 간단하게 webview를 통해 개발의 맛을 보고 있는 중인데요. Notification bar에 나오는 아이콘들의 색깔와 배경을 어떻게 지정을 하는지 모르겠어요 --; 강의를 들어보고, doc을 찾아봤는데도 어떻게 접근을 해야할지 몰라서입니다. 마찬가지로 제일 하단에 home 버튼, back버튼의 색깔와 배경도 어떻게 접근을 해야할지요? 아래와 같이 해봤답니다. --; import * as React from 'react'; import {StyleSheet,View, Text} from 'react-native' ; import { NavigationContainer} from '@react-navigation/native'; import { createStackNavigator} from '@react-navigation/stack'; import { WebView } from 'react-native-webview'; function HomeScreen() { return ( <WebView source={{ uri: 'http://segerodc.org/' }}/> ); } const Stack = createStackNavigator(); function App() { return ( <NavigationContainer> <Stack.Navigator screenOptions={{ headerStyle:{ height:27, backgroundColor: '#555555', }, headerTitleStyle:{ fontSize: 0, }, headerTintColor: '#fff', }} > <Stack.Screen name="Home" component={HomeScreen} /> </Stack.Navigator> </NavigationContainer> ); } export default App;
-
미해결리눅스 입문 - 개념으로 탄탄히!!
리눅스를 쓰는 이유
안녕하세요 선생님. 정말 좋은 강의 제공해주셔서 감사드립니다. 들으면서 드는 생각이 있어 질문 드립니다. 어떤 프로그램을 최대한 활용하기 위해서는 CLI를 이용하는 것이 좋은 것 같다는 생각이 드는데, OS가 리눅스여야 하는 이유가 있나요? 윈도우에서 CLI를 통해 프로그램을 이용하는 것보다 리눅스에서 프로그램을 이용하는게 속도가 더 빠른건가요?
-
미해결업무 자동화를 위한 파이썬 pyautogui, beautifulsoup 크롤링 기초
FileNotFound Error
driver = webdriver.Chrome() 이걸 입력했더니 아래와 같은 에러가 뜨네요 ..크롬 드라이버 버전확인해서 설치했고 맥북입니다! -------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/common/service.py in start(self) 71 cmd.extend(self.command_line_args()) ---> 72 self.process = subprocess.Popen(cmd, env=self.env, 73 close_fds=platform.system() != 'Windows', /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py in __init__(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, user, group, extra_groups, encoding, errors, text, umask) 950 --> 951 self._execute_child(args, executable, preexec_fn, close_fds, 952 pass_fds, cwd, env, /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/subprocess.py in _execute_child(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, gid, gids, uid, umask, start_new_session) 1820 err_msg = os.strerror(errno_num) -> 1821 raise child_exception_type(errno_num, err_msg, err_filename) 1822 raise child_exception_type(err_msg) FileNotFoundError: [Errno 2] No such file or directory: 'chromedriver' During handling of the above exception, another exception occurred: WebDriverException Traceback (most recent call last) <ipython-input-12-ec48251f04f8> in <module> ----> 1 driver = webdriver.Chrome() /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive) 71 service_args=service_args, 72 log_path=service_log_path) ---> 73 self.service.start() 74 75 try: /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/selenium/webdriver/common/service.py in start(self) 79 except OSError as err: 80 if err.errno == errno.ENOENT: ---> 81 raise WebDriverException( 82 "'%s' executable needs to be in PATH. %s" % ( 83 os.path.basename(self.path), self.start_error_message) WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
완강 후
강사님 강의 너무 잘 듣고있습니다^^ 하루에 4문제 정도 꾸준히 풀고 강의 듣고있습니다. 다름이 아니라 몇일 지나면 강의를 다 볼 것같은데 아직 문제를 딱 보고 뭘 물어보는 문제이고 어떻게 접근해야할지를 정확하게 모르겠어서 해당 강의 문제를 다시 풀어볼려고하는데 .. 새로운 문제를 도전하는게 좋을까요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
학습하는 방식이
여러장의 이미지에 바운딩 박스를 지정해주고 그 바운딩박스의 픽셀값을 학습함으로써 모르는 이미지가 들어갔을때 학습한 데이터로 그 이미지에 대한 결과를 도출하는 것이 맞나요?
-
미해결처음 시작하는 Infrastructure as Code: AWS & 테라폼
선생님의 AWS Provisioning github 를 보고 질문이 들었습니다.
선생님이 만들어주신 AWS Provisioning github를 보며 제 서비스 인프라를 구축하려 합니다. https://github.com/DevopsArtFactory/aws-provisioning terraform_setup.sh에서는 어떤 것을 하는지, 파악하려 하고 있습니다. 다만, 제가 쉘 스크립트 언어를 잘 몰라, 전체적으로 파악하는데 어려움이 있습니다. 예를들어 저런 것들은 왜 설정해야하는지 등등 입니다. 혹시 간단하게 주석을 달아주시거나 setup 코드들의 배경을 설명해주실 수 있으실까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
mock서버 생성이 안됩니다!ㅜㅜ
mock 서버 생성시 자꾸 이런 알림이 뜨며 생성이 안되는데 혹시 어떤 이유인지 알 수 있을까요?ㅠㅠ
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
이 코드 어디에 문제가 있을까요..?
강사님, 안녕하세요? 강사님 코드를 보면서 코드를 짜봤는데 출력이 2가 나옵니다.. ㅜㅜ 아무리 봐도 어디에 문제가 있는지 모르겠는데 어디에 문제가 있을까요..? ㅜㅜ
-
미해결Vue.js 제대로 배워볼래?(Vue.js 프로젝트 투입 일주일 전)
책 80쪽 오류 인가요?
책 80쪽에 실무팁에서 밑에서 첫번째 줄과~두번째 줄에서 "접속 빈도가 높은 검포넌트는 prefetch를 적용하거나" 아닙니까?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
문제 관련 질문드립니다
#include <iostream> #include <stdio.h> using namespace std; int main () { freopen("input.txt","rt",stdin); char a[100]; char c; gets(a); for (int i = 0; a[i] != '\0'; i++){ if (a[i] != ' '){ if (a[i] >= 65 && a[i] <= 90) { printf("%s",a[i] + 32); } else printf("%s",a[i]); } } return 0; } 다음과 같이 풀이과 다르게 작성했는데 어느 부분에서 오류가 발생했는지 모르겠습니다. 무엇이 문제인가요ㅠㅠ
-
미해결스프링 핵심 원리 - 기본편
강의내용이 이해가 가지않아 질문드립니다!
provider로 하지않아도 log-demo를 url에 쓰면 요청되는 게 아닌가요? 애플리케이션을 띄울 때 요청이 없다고 하셨는데 그러면 애플리케이션을 띄운 후에 url에 log-demo를 치기때문에 request가 실행하지 않는건가요? 그래서 애플리케이션을 띄우고 url에 log-demo치면 provider가 request스코프를 이용한 것을 찾아주게되는건가요?? 이해가 잘가지않습니다..ㅜㅜ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
allocationSize를 50으로 하면 MappingExcpetion이 일어납니다
실습에서 SEQUENCE전략의 성능 최적화를 위하여 allocationSize를 50으로 설정하는 것을 해 보고 있는데, 관련 db의 시퀀스 증가 사이즈는 1인 반면 현재 설정을 50으로 했다고 매핑 예외가 뜨네요 ㅠㅠ.. 1로 하면 에러가 뜨지 않는데, 이 관련 db의 시퀀스 증가 사이즈를 어떻게 변경할 수 있을까요.? DB시퀀스 값이 하나씩 증가하도록 설정되어 있으면 allocationSize 값을 반드시 1로 설정해야한다고 강의자료에도 적혀있는데, 그렇다면 SEQUENCE전략을 사용하면서도 allocationSize 값을 이용한 성능 최적화는 불가능 한건가요? Caused by: org.hibernate.MappingException: The increment size of the [MEMBER_SEQ] sequence is set to [50] in the entity mapping while the associated database sequence increment size is [1]. at org.hibernate.id.enhanced.SequenceStyleGenerator.configure(SequenceStyleGenerator.java:261) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.createIdentifierGenerator(DefaultIdentifierGeneratorFactory.java:118) @Entity @SequenceGenerator( name ="MEMBER_SEQ_GENERATOR", sequenceName = "MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름 initialValue = 1, allocationSize = 50) public class Member { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "MEMBER_SEQ_GENERATOR") private Long id;
-
미해결스프링 핵심 원리 - 기본편
ObjectProvider 질문입니다.
안녕하세요! 이번강의에서 ObjectProvider 오브젝트를 Autowired로 의존관계 주입을 받아서 사용하는데요! 제가 토비의 스프링 책이랑 강사님 강의랑 같이 공부중인데, Autowired 로 의존관계 주입을 받을때에는 일단 스프링 컨테이너에 등록된 빈들 중에서 타입이 맞는 오브젝트를 주입해주는 것으로 알고있는데요 그렇다면 저 예제에서 ObjectProvider<PrototypeBean> 인터페이스를 구현한 오브젝트가 스프링 컨테이너에 빈으로 등록이 되어야 의존관계 주입을 받을 수 있을것 같은데요 책에서는 ObjectFactory 예제이긴 하지만 어쨋든 XML 파일에 ObjectFactoryCreatingFactoryBean 이라는 빈을 생성해서 ObjectFactory 의존관계를 주입받아서 사용하는데, 강의에서는 빈 생성없이 그냥 바로 주입받아서 쓰는 것 같아서 질문드립니다.