묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결웹 게임을 만들며 배우는 TypeScript
d.ts 파일에서 유니언 타입
현재 강의에서 Object is possibly null 이라는 에러가 발생하는데 d.ts 파일 들어가서 확인해보면 타입이 유니언으로 string | null 이라서 발생하더라구요. 유니언이 또는 이라는 의미를 가지고있어서 둘중에 하나만 타입이 일치해도 괜찮은걸로 아는데 왜 에러가 발생하는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
주문 상품 테스트 시, 상품주문과 주문취소에서 같은 에러가 발생합니다. nullpointerexception, this.member is null
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래 주석처리 된 테스트는 성공적이었던 테스트입니다. 제 생각에는 orderService.order 에서 문제가 발생하는 것 같습니다. this.member가 null 값이라고 뜨네요 ㅜㅜ @Test public void 상품주문() throws Exception { //given Member member = createMember(); Book book = createBook("시골 JPA", 10000, 10); //when int orderCount = 2; Long orderId = orderService.order(member.getId(), book.getId(), 2); //then Order getOrder = orderRepository.findOne(orderId); org.assertj.core.api.Assertions.assertThat(orderId).isEqualTo(1); org.assertj.core.api.Assertions.assertThat(member.getId()).isEqualTo(1); assertEquals(OrderStatus.ORDER, getOrder.getStatus(),"상품 주문 시 상태는 ORDER");// org.assertj.core.api.Assertions.assertThat(OrderStatus.ORDER).isEqualTo(getOrder.getStatus());// org.assertj.core.api.Assertions.assertThat(book.getPrice()).isEqualTo(10000);// org.assertj.core.api.Assertions.assertThat(member.getName()).isEqualTo("회원1"); } @Test public void 주문취소() throws Exception { //given Member member = createMember(); Book item = createBook("시골 JPA", 10000, 10); int orderCount = 2; Long orderId = orderService.order(member.getId(), item.getId(), orderCount); //when orderService.cancelOrder(orderId); //then Order getOrder = orderRepository.findOne(orderId); assertEquals(OrderStatus.CANCEL,getOrder.getStatus(),"주문 취소 시 상태는 CANCEL"); assertEquals(10, item.getStockQuantity(),"주문이 취소된 상품은 그만큼 재고가 증가해야 한다."); }java.lang.NullPointerException: Cannot invoke "book.shop.domain.Member.getOrders()" because "this.member" is null at book.shop.domain.order.Order.setMember(Order.java:45) at book.shop.domain.order.Order.createOrder(Order.java:61) at book.shop.service.OrderService.order(OrderService.java:44) at book.shop.service.OrderService$$FastClassBySpringCGLIB$$c7276b73.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:123) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:388) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692) at book.shop.service.OrderService$$EnhancerBySpringCGLIB$$54b15850.order(<generated>) at book.shop.service.OrderServiceTest.주문취소(OrderServiceTest.java:58) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:567) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:688) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$6(TestMethodTestDescriptor.java:210) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:206) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:131) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:65) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:38) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$5(NodeTestTask.java:143) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$7(NodeTestTask.java:129) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:127) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:126) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:84) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:32) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:51) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:108) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:96) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:75) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) //==연관 관계 메서드==//public void setMember(Member memebr) { this.member = member; member.getOrders().add(this);}public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this);}public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this);}//==생성 메서드==//public static Order createOrder(Member member, Delivery delivery, OrderItem... orderItems) { Order order = new Order(); order.setMember(member); order.setDelivery(delivery); for(OrderItem orderItem : orderItems) { order.addOrderItem(orderItem); }
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
단위, 통합테스트에 대해 궁금한 점이 있어 질문드립니다
삭제된 글입니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 업로드 일정 질문있습니다.
영한님 강의 매우 잘 듣고 있습니다. 9월까지 모든 강의를 다 들을 것 같은데 혹시 "스프링 DB 접근 기술"과 "스프링 부트"는 언제 쯤 나오나요? 감사합니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
.travis.yml 파일에 대한 질문이 있습니다.
TravisCI에서 이번 강의에서 작성한 .travis.yml 파일을 가지고 aws beanstalk에 배포할 때 .yml 파일에는 Dockerfile.dev를 빌드하고 실행하는 내용만 적혀있는데, 돌아가는 과정을 보면 Dockerfile이 배포가 되는 것 같습니다. TravisCI에서 Dockerfile은 언제 읽는지 궁금합니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
IOS, Android 빌드하고 배포하는 방법 부탁드려요
안녕하세요 강사님 입문부터 중급까지 3개 강의 보고 있는데요 Android, IOS 빌드해서 마켓어 어떻게 올려야 하는지는 어느 강의에서 찾아볼수 있을까요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
강사님 혹시 어디 부분에서 왜 오류가 나는지 알 수 있을까요..
아래 처럼 작성했는데 답은 나오는데 채점해보면 오답이라고 나와서요 어디부분이 왜 오류인지 알수있을까요?ㅠ.. 아무리 찾아도 뭔가 빼먹은것같은데 모르겠네요.. package sec01; import java.util.Scanner; class Main { public static int solution(int n , int[][] arr){ int count = 0; for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { boolean flag = true; if(i-1 >= 0 && arr[i][j] < arr[i-1][j]) { // 상 flag = false; } if(i+1 < n && arr[i][j] < arr[i+1][j]){ //하 flag = false; } if( j-1 >= 0 && arr[i][j] < arr[i][j-1]){ // 좌 flag = false; } if(j+1 < n && arr[i][j] < arr[i][j+1]){ // 우 flag = false; } if(flag) { count++; } } } return count; } public static void main(String[] args){ Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int[][] arr = new int[n][n]; for(int i =0;i<n;i++) { for(int j=0;j<n;j++) { arr[i][j] = kb.nextInt(); } } System.out.println(solution(n,arr)); } }
-
미해결코로나맵 개발자와 함께하는 지도서비스 만들기 1
nodemon ./bin/www 입력시 host 연결이 안됩니다
터미널은 다음과 같이 뜹니다. 어떻게 하면 해결할 수 있을까요
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
mysql [실전] 크롤링과 데이터베이스 db와 프로그래밍 코드 작성과 팁 2 질문입니다
훌륭한 강의 잘 듣고있는 코린이입니다 수업 들으면서 코드 복습도 하곤 하는데 크롤링한 데이터를 주피터 노트북을 이용하여 데이터베이스에 저장시키는건 잘 되는데, 파이참이나 vscode 터미널 등에서 실행하면 맨 처음 데이터만 프린트 문으로 보여주고 파일은 실행되지않고 있다가 pymysql.err.OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction') 이런 에러가 뜹니다 혼자 해결해보려고 했으나 도저히 모르겠어서 질문남깁니다! 꼭 답변부탁드려요!! import requests from bs4 import BeautifulSoup import pymysql def subcategories(url, name): get_items(url, name, "ALL") res = requests.get(url) soup = BeautifulSoup(res.content, 'html.parser') subcategories = soup.select('div.navi.group > ul:nth-child(1) > li') for subcategory in subcategories : subcate_name = subcategory.select_one('a').get_text() subcate_url = "http://corners.gmarket.co.kr" + subcategory.select_one('a')['href'] get_items(subcate_url, maincate_name, subcate_name) def get_items(url, maincate_name, subcate_name): res = requests.get(url) soup = BeautifulSoup(res.content, 'html.parser') data = soup.select('div.best-list') for index, item in enumerate(data[1].select('li')) : title = item.select_one('a.itemname').get_text() ori_price = item.select_one('div.o-price > span') dis_price = item.select_one('div.s-price > strong > span') discount_percent = item.select_one('div.s-price em') data_dict = dict() if ori_price == None or ori_price.get_text() == "": ori_price = dis_price if dis_price == None : ori_price, dis_price = 0, 0 else : dis_price = dis_price.get_text().replace('원', "").replace(',','') ori_price = ori_price.get_text().replace('원', "").replace(',','') if discount_percent == None or discount_percent.get_text() == '': discount_percent = 0 else: discount_percent = discount_percent.get_text().replace('%', '') product_url = item.select_one('a')['href'] res = requests.get(product_url) soup = BeautifulSoup(res.content, 'html.parser') item_code = soup.select_one('span.text__item-number').get_text().split(":")[1].strip() ranking = index + 1 seller = soup.select_one('span.text__seller > a') if seller == None or seller.get_text() == "": seller = "" else : seller = seller.get_text() data_dict['maincate_name'] = maincate_name data_dict['subcate_name'] = subcate_name data_dict['ranking'] = ranking data_dict['item_code'] = item_code data_dict['seller'] = seller data_dict['title'] = title data_dict['ori_price'] = ori_price data_dict['dis_price'] = dis_price data_dict['discount_percent'] = discount_percent save_date(data_dict) def save_date(item_info): sql = f"""select count(*) from items where item_code = {item_info['item_code']};""" cursor.execute(sql) result = cursor.fetchone() if result[0] == 0 : sql = f""" insert into items (item_code, title, pri_price, dis_price, discount_percent, provider) VALUES( '{item_info['item_code']}', '{item_info['title']}', {item_info['ori_price']}, {item_info['dis_price']}, {item_info['discount_percent']}, '{item_info['seller']}' ); """ sql.replace('\n', '') print(sql) cursor.execute(sql) sql = f""" insert into ranking (main_category, sub_category, item_ranking, item_code) VALUES( '{item_info['maincate_name']}', '{item_info['subcate_name']}', '{item_info['ranking']}', '{item_info['item_code']}' ); """ sql.replace('\n', '') print(sql) cursor.execute(sql) db = pymysql.connect(host='localhost', port=3306, user='root', passwd='비밀번호', db='bestproducts', charset='utf8') cursor = db.cursor() url = 'http://corners.gmarket.co.kr/Bestsellers' res = requests.get(url) soup = BeautifulSoup(res.content, 'html.parser') categories = soup.select('div.gbest-cate > ul.by-group > li') for category in categories : maincate_name = category.select_one('a').get_text() maincate_url = "http://corners.gmarket.co.kr" + category.select_one('a')['href'] subcategories(maincate_url, maincate_name)
-
미해결15일간의 빅데이터 파일럿 프로젝트
hdfs dfs-ls -R /pilot-pjt/collect/car-batch-log에 디렉토리가 없다는데...이건 어떻게 해결할까요 ㅠㅠ
(사진)
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 대신 필터를 사용해야되는 특별한 상황이 어떤 상황인지 궁금합니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실제 개발에 관해서..
강사님이 워낙 잘 설명해주신 덕분에 기능이나, 어떤 방식으로 돌아가는지는 잘 이해했습니다! 하지만, 개발이 아직 익숙치 않은 입장에서 고민인 것이 실제 혼자서 개발할 때 domain에서 어떤 기능까지 구현해야할지, 어떤 부분을 서비스에서 구현해야할지 저만의 기준이 없어 아직 확신이 들지 않고 각각의 클래스에서 어떤 메서드를 구현해야할지 설계하기가 힘든데 이런 부분은 어떻게 채워가는 것이 좋을까요? 어느정도 정형화 되어 있는 부분이여서 익숙해지는건가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
Request failed with status code 404 문제 ㅜ 도와주세요
{ "message": "Request failed with status code 404", "name": "Error", "stack": "Error: Request failed with status code 404\n at createError (http://localhost:3000/static/js/vendors~main.chunk.js:1142:15)\n at settle (http://localhost:3000/static/js/vendors~main.chunk.js:1376:12)\n at XMLHttpRequest.handleLoad (http://localhost:3000/static/js/vendors~main.chunk.js:616:7)", "config": { "url": "/api/users/register", "method": "post", "data": "{\"email\":\"123123@gmail.com\",\"password\":\"123123\",\"name\":\"dan\"}", "headers": { "Accept": "application/json, text/plain, */*", "Content-Type": "application/json;charset=utf-8" }, "transformRequest": [ null ], "transformResponse": [ null ], "timeout": 0, "xsrfCookieName": "XSRF-TOKEN", "xsrfHeaderName": "X-XSRF-TOKEN", "maxContentLength": -1, "maxBodyLength": -1 } } 로그인, 회원가입까지 만들어봤는데 둘다 안되네요. 페이지를 찾을수 없는걸로 나오는데 문제가 무엇일까요. /api/users/login/api/users/register 오타 문제도 아닌것같고.... 혼자 찾아보려다가 답이 안보여서 도움 요청합니다 ㅜㅜ 깃헙 주소도 같이 남길께요 . https://github.com/WanzGoh/Node.js_boiler-plate 감사합니다.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
마이크로 태스크로 들어가는 콜백함끼리는 순서대로 실행되는게 맞나요?
강의에서 마이크로 태스크로 들어가는 콜백함수끼리는 순서대로 실행된다고 하셨는데 실행 했을때, 순서 상관없이nextTick이 우선적으로 실행됩니다. Promise.resolve().then(() => console.log("promise")); process.nextTick(() => console.log("nextTick")); //nextTick //promise 또, promise의 then안쪽에서 console.log를 바로 실행했을때는 순서 상관없이 promise가 우선적으로 실행됩니다 ㅠㅠ Promise.resolve().then(console.log("promise")); process.nextTick(() => console.log("nextTick")); //promise //nextTick
-
미해결Do It! 장고+부트스트랩: 파이썬 웹개발의 정석
FBV로 대문 페이지 자기소개페이지 만들기 에러
FBV로 대문 페이지 자기소개페이지 만들기 에러가 나서 코드를 확인하고 싶은데 강사님 깃허브에서 어느 파일명으로 찾아야 할까요?
-
미해결남박사의 파이썬으로 실전 웹사이트 만들기
진자2 with 문 문의
8분 57초 쯤에 보면 아래와같이 with 문이 나옵니다 with문은 어떻때 사용하는건가? with문을 써야하는 이유를 알려주시면 감사하겠습니다 {% with ...%} {% endwith %}
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Validation API Exception 관련 질문.
이렇게 전체 API Exception을 한 경우와 멤버 API에게만 Exception을 설정한 게 있습니다. 문제는 userHandle(Exception e)를(서버 오류) ApiControllerAdvice에 넣으면 validation 유효 판단을 할 때, signUpValidation을 호출하지 않고, userHandle(Exception e)를 먼저 호출했었습니다. 그래서 userHandle(Exception e)를 MemberApiController에만 넣었더니 userHandle(Exception e)가 먼저 실행되기보다는 정상적으로 SignupValidation을 실행했는데요. 그러면 Exception(내부 서버 오류용)을 ApiControllerAdvice에 넣지 말고, Member 같은 특정 API에만 모두 공통으로 넣어야 하는건가요?
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
tf.function 데코레이터로 된 함수는 반드시 tf.function로 데코레이터가 되어 있어야 하나요?
궁금합니다~
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
user
user가 지금 현재 로그인되어있는 사람을 가리킨다는 것은 알겠습니다만 detail.html에서 user.date_joined나 user.username를 바로 사용하셨는데 이렇게 user에 따르는 하위 객체들은 어디서 확인을 할 수 있나요? 또 User에서 바로 user로 넘어가셨는데 이는 User라는 모델객체에서 user가 어떤역할을 담당하는지는 또 어디서볼수있는지 궁금합니다
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
comments: [commentSchema]
삭제된 글입니다