해당 강의를 보면서 회사에 새로운 NestJS & TypeORM 서버를 올려둔 상태입니다. 오늘 발생한 이슈인데 로그에서는 504에러가 발생하였지만 해당 코드를 제외하고 모두 실행되었고 DB 데이터 값까지 수정된 상태였습니다. 이슈가 발생했던 부분의 간단한 코드입니다. async cancelReservation (body: Dto) { ... await thirdPartyAPI1(); // 504 exception 발생, 해당 구문을 제외하고 모두 실행완료 await thirdPartyAPI2(); // 결제취소 알림 await thirdPartyAPI3(); // 결제취소 알림 ... return this.repository.save(body); } async thirdPartyAPI1() { // 결제취소 API try { ... axios.post(...); ... } catch (e) { throw new BadRequestException(e); } } 이슈 발생 이후 504 exception 개념에 대해 찾아보았지만 약간 이해만 했을뿐 현 상황에 대해 해결법이 떠오르지 않아 질문드립니다. async / await 로 구성된 코드에서 await 코드가 완전히 종료되기전까지는 다음 코드를 실행하지 않는것으로 알고 있는데 아래의 코드들이 실행된 이유는 무엇인가요? 스스로 추측하기에는 nest js 자체에서 await 응답대기에 대한 제한시간이 있는것 같은데 정말 있다고 한다면 이 부분에 대해 수정이 가능한가요? 아직 개발경험이 많지않아 애매하게 질문드리는 점 죄송합니다. 단순히 코드의 논리적 오류가 아니라서 구체적인 질문을 하기도 힘드네요 ㅠㅠ 해당문제에 대해 접근을 어떻게해야될지부터가 막막합니다.. 추가질문) axios나 nestjs/axios에서 timelimit을 설정할 수 있는것 같은데 이 부분을 설정해줬을때 시간이 초과되면 자동으로 코드실행을 중단하고 exception error를 발생시켜주는지 궁금합니다. 또한 HttpExceptionFilter나 SuccessInterceptor 처럼 글로벌하게 세팅이 되는지도 궁금합니다.
빠진 컨트롤러 구현하기 강의 도중 로그인 시 다음과 같은 화면이 뜨는데 어느 부분이 문제인지 궁금합니다 네트워크 탭 확인해보면 요청에는 다 응답이 오고 빈값도 없습니다 심지어는 백엔드나 프런트 로그에도 에러가 없어서 문제를 모르겠습니다.. React 에러는 front/layouts/Workspace/index.ts 파일의 <Workspaces> {userData?.Workspaces.map((ws) => { console.log(ws); return ( <Link key={ws.id} to={`/workspace/${ws.url}/channel/일반`}> <WorkspaceButton>{ws.name.slice(0, 1).toUpperCase()}</WorkspaceButton> </Link> ); })} <AddButton onClick={onClickCreateWorkspace}>+</AddButton> </Workspaces> map 함수 부분에서 에러가 나는거 같습니다.
안녕하세요 강의 잘 보고 있습니다. 다름이 아니라 강의 도중 궁금한 점이 생겨 이렇게 질문 드립니다. addForm.html파일을 수정하실때 <div class="field-error" th:if="${errors?.containsKey('price')}" th:text="${errors['price']}"> 다음과 같이 코드를 작성해주셨는데 만약 th:if에서 조건이 부정이면 같은 태그(div)안에 존재하는 모든 태그들이 렌더링이 되지 않는 건가요? 아니면 타임리프 문법만 렌더링이 되지 않는건가요?
강의를 참고하면서 제 포트폴리오 사이트를 만들어보았는데 배포한 url로 사이트 들어가면 처음 렌더링시에 시간이 너무 오래걸리더라구요 ㅠㅠ react 같은 프레임워크에서는 lazy나 다른 방법을 통해서 개선하는 방법이 있는걸로 하는데 프레임워크를 사용안하고 그냥 작업을 했다보니 방법을 모르겠습니다..
createOrder 메소드 return 값으로 return new Order(memberId, itemName, itemPrice, discountPrice); 위에 식을 전달했는데 new를 붙이는 이유가 궁금합니다. new를 빼니 오류가 나더라구요 new연산자는 " 메모리(Heap 영역)에 데이터를 저장할 공간을 할당받고 그 공간의 참조값(reference value /해시코드)을 객체에게 반환 하여 주고 이어서 생성자를 호출 하게 된다."라고 배웠는데 여기서는 그냥 생성자호출용으로만 쓰인건지 궁금합니다. 그래서 new를 제거했을 때 오류가 나는 것은 Order생성자가 아니라 Order메소드를 호출한 것인 건지 궁금합니다.
안녕하세요 선생님! 위 사진처럼 영속성 컨텍스트를 초기화 후 1차 캐시에 없는 team 엔티티를 user 엔티티의 manyToOne 으로 하여 저장할 때 왜 저장이 되는지 궁금합니다. 제가 생각한 바로는 team 엔티티가 영속성 컨텍스트에 로드되어 있지 않기 때문에 에러가 나야한다고 생가하는데 정상적이게 insert 쿼리가 2번 발생합니다. 식별자, 준영속과 관련있는 내용일까요? 또한 위의 team 처럼 저장 후 영속성 컨텍스트가 초기화 되면 준영속 상태가 되나요? 감사합니다!
현재 유일한 Managers 클래스의 정적 멤버 변수로 static Managers s_instance; static Managers Instance { get { Init(); return s_instance; } } 이렇게 만들어 주셨는데 기본 접근 제한자 셋팅은 private이라 외부에서 접근 불가능 하고 static이라 데이터 영역에 올라가고 해당 클래스 내부에서만 접근이 가능하다. (제가 이해한 것이 맞나요?) 그런데 궁금한것이 다른클래스에서(외부에서) Managers.Instance로 접근이 불가능 한것은 이해가 됩니다. 그러면 강제로 Managers mg = new Managers();를 동적할당하여 객체를 만든 경우 mg.Instance로 접근을 할려고 하니 보호수준 때문에 접근이 불가능 하다는데 mg는 Managers의 객체로 Managers의 데이터를 가지고 있을 텐데 왜 접근이 불가능 한 것인가요? 정적 멤버 함수는 객체가 있든 없든 둘다 다 접근이 가능해야 하는 것 아닌가요?? (C ++에서는 객체의 유무의 상관없이 정적 멤버 함수 호출이 가능하던데 그냥 C#에서는 객체를 만들어서 객체가 있어도 정적메버 함수(프로퍼티)에 접근이 불가능 한 것인가요?)
안녕하세요 김영한 강사님, 강의에서는 단순 조회이기때문에 강제초기화를 선택적으로 할수있으니 쿼리가 나가는 수를 줄일수있는거로 이해했습니다. 그렇다면 만약 조회가아닌 Order가 다른엔티티 생성메서드에 집어넣으려면 proxy상태로 들어가면 안되니까 모두다 초기화를 해야할텐데.. 궁금한점은 지금은 간단한 예제로 Member엔티티에는 생성메서드가 없지만 추후에 생긴다고하면, 연관관계 메서드에서 member.getOrders().add(this) 할때 Order에 proxy를 모두 강제초기화를 해서 집어넣어야하는건가요? Order엔티티가 추후에 @OneToMany가 점점 늘어나는방향으로 설계가 되었고, Member 생성메서드에 Order가 들어가야해서 proxy를 강제초기화하는 과정에서 쿼리가 @OneToMany의 수만큼 나가야한다면 이것은 엔티티 설계를 비효율적으로 하는건가요? 아니면 다른방법이 있는건가요?
[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
안녕하세요 강의 잘 듣고 있습니다. 이전 강의까지 작성한 코드는 잘 돌아갔는데요.. 홈스크린에서 있는 변수를 세팅 스크린으로 넘기는 코드를 작성하면 터미널에 The following assertion was thrown during layout: A RenderFlex overflowed by 99024 pixels on the bottom. The relevant error-causing widget was: Column Column:file:///Users/gim-yeonho/Desktop/random_number/lib/screen/setting_screen.dart:28:18 The overflowing RenderFlex has an orientation of Axis.vertical. 아래와 같은 오류가 나옵니다. 화면이 꽉찬다고 하는데요 다른 것들은 건드리지 않았습니다. 아래와 같이 변수넘기는 코드만 수정을 했고 깃허브 코드와 비교해봐도 다른점이 없는데요 어디가 잘못된건지 모르겠습니다 ㅠㅠ return SettingScreen( maxNumber: maxNumber, ); import 'package:flutter/material.dart'; class SettingScreen extends StatefulWidget { final int maxNumber; const SettingScreen({required this.maxNumber, Key? key}) : super(key: key); @override SettingScreenState createState() => SettingScreenState(); } class _SettingScreenState extends State<SettingScreen> { double maxNumber = 10000; @override void initState() { // TODO: implement initState super.initState(); maxNumber =widget.maxNumber.toDouble();