GraphQL 완전정복 (키오스크를 만들며 배우는 풀스택 과정) - [2024 부분 리뉴얼]
node 16.13.1 meteor 2.7.4 로 설치하였습니다. This project uses Meteor 2.14, which isn't available on this platform. To work with this app on all supported platforms, use meteor update --release METEOR@3.1.2 to pin this app to the newest compatible release. 라는 에러를 받았습니다. 그래서 3.1.2로 설치 후, 다시 진행해도 똑같습니다.
강사님 안녕하세요. 강의 목차에는 없지만 SpringBoot + Kotlin 환경에서 Redis 캐싱 사용 관련되서도 여쭤봐도 될까요? Kotlin에선 직렬화 + 역직렬화 관련해서 자바 + lombok를 사용했던 방법과 살짝쿵 다르게 써야하더라구요.. 여러 방안을 생각중인데 어떤 방법이 Best Practice인지 궁금해서욥 감사합니다.
강의를 만들어주셔서 감사합니다. 몇가지 질문이 있습니다. Frontend와 Backend폴더를 만든이유가 협업과 소스코드관리를 위한것이라고 생각합니다. 그런데 node-modules를 Frontend와 Backend에 각각 설치하신 이유가 있으실까요? company-website에 설치해서 두곳다 이용하는방법도 있을것같은데 Frontend와 Backend를 따로 설치하신이유가 궁금합니다. 깃허브에는 node-modules가 저장되게 하지 않았는데요 그러면 현재 사용하는 노트북이 아닌 다른 노트북이나 데스크톱에서 현재 개발한것을 이어서하고싶을 경우 Ch0-3과Ch0-4의 설치를 다시 해주면되나요? 본강의를 듣고 저만의 웹페이지를 만드는게 목표인데 react에 대해 찾아보다가 Create React App(CRA)로 만드는법과 Vite, Next.js로 만드는방법이 있었습니다. 이중 Vite를 고른 이유가 있을까요? 빠르다는 장점으로 선택하신건가요? 선택이유가 궁금합니다.
안녕하세요! 캡슐화 추가 설명 강의 중 궁금한 것이 있어 질문 드립니다. 상위 모듈인 app 모듈의 providers에서 하위 모듈들의 service나 repository를 주입 받아 사용하게 되면 다음과 같은 문제가 있다고 하셨습니다. 모듈들의 관리가 힘들어진다. 단일책임원칙이 깨진다. 추가적인 학습으로 알게된 1번에서 발생할 수 있는 문제는 다음과 같습니다. -상위 모듈의 providers에서 인덱스 순서대로 service를 불러 오기 때문에 만약 하위 클래스끼리의 의존성이 존재한다면, 그 순서를 관리해줘야 되는 복잡성이 발생한다 . 순환참조 또한 일어날 수 있다. 하지만 2번 단일책임원칙이 깨진다는 문제점이 발생한다는 것은 아직 이해하지 못했습니다. app 모듈안에서 다른 클래스들의 기능을 사용할 때 참조하는 방식이 잘못된 것이지, 해당 클래스의 기능의 책임이 확장된 것은 아니라는 생각이 듭니다. 여전히 기능의 변경이 일어났을 때 해당 클래스만 수정하면 된다고 생각하기 때문입니다. 제 이해가 잘못된 것인지, 강사님께서 SRP원칙의 의미를 조금 더 확장해서 말씀해주신 것인지 궁금합니다!
return@logFor ResponseProvider.success("SUCCESS") return @logFor ResponseProvider.success("SUCCESS") BankService.kt 의 메서드에서 return @logFor을 사용하는 이유를 잘 모르겠습니다 ㅠㅠ Logging.logFor이란 람다가 끝났다는 걸 바깥함수에 알려주고 이후 로직이 있다면 해당 로직들도 실행하기 위해서일까요? 코알못이라 흙흙
강사님 안녕하세요. 코틀린을 자바처럼 쓴 제 자신을 혼내면서(?) 열심히 청강 중입니다. 강의에서 작성하신 Transactional.kt 코드를 보면 스프링의 TransactionTemplate을 활용한 명시적 트랜잭션 제어 방식과 큰 차이점이 없어 보입니다. 코틀린 래핑방식으로 사용했을때 어떤 장점이 있는걸까요? 제가 생각한 래핑 방식의 장점은 다음과 같습니다. 코드 스타일, 네이밍, optional 옵션 추가 등에서 약간 더 자유로움 예를 들어 여러 종류의 트랜잭션 처리 규칙(특정 로그, 메트릭, 롤백 조건 등)을 한곳 에 구현해서 공용유틸로 쓰기 좋고, 내부 구현을 추후 TransactionTemplate, PlatformTransactionManager 등 다양한 방식으로 손쉽게 변경 가능 트랜잭션 코드에 특별히 넣어야 할 커스텀 공통로직"이 없다면, 웬만하면 @Transactional / TransactionTemplate만으로 충분하다는 생각입니다. 정답은 없고 팀의 규칙마다 다를것 같아요. 강사님 팀에서는 어떤 방식으로 사용중이신가요? 강의 찍어주셔서 감사합니다앗~! (개인적인 사견인데 말씀하시는 중에 '죄송합니다'는 안하셔도 될것 같아요~!)
강사님 안녕하세요. 코틀린을 자바처럼 쓴 제 자신을 혼내면서(?) 열심히 청강 중입니다. 강의에서 작성하신 Transactional.kt 코드를 보면 스프링의 TransactionTemplate을 활용한 명시적 트랜잭션 제어 방식과 큰 차이점이 없어 보입니다. 코틀린 래핑방식으로 사용했을때 어떤 장점이 있는걸까요? 제가 생각한 래핑 방식의 장점은 다음과 같습니다. 코드 스타일, 네이밍, optional 옵션 추가 등에서 약간 더 자유로움 예를 들어 여러 종류의 트랜잭션 처리 규칙(특정 로그, 메트릭, 롤백 조건 등)을 한곳 에 구현해서 공용유틸로 쓰기 좋고, 내부 구현을 추후 TransactionTemplate, PlatformTransactionManager 등 다양한 방식으로 손쉽게 변경 가능 트랜잭션 코드에 특별히 넣어야 할 커스텀 공통로직"이 없다면, 웬만하면 @Transactional / TransactionTemplate만으로 충분하다는 생각입니다. 정답은 없고 팀의 규칙마다 다를것 같아요. 강사님 팀에서는 어떤 방식으로 사용중이신가요? 강의 찍어주셔서 감사합니다앗~! (개인적인 사견인데 말씀하시는 중에 '죄송합니다'는 안하셔도 될것 같아요~!)
supertest 를 통해서 다른 라우터도 테스트 코드를 생성하려고 했는데요 각각의 supertest 파일에서 sequelize.sync({force:true})가 병렬로 실행되니까 전체적인 테스트가 끝나지 않았는데 위 코드로 인해 DB가 초기화 되어버려 테스트를 실패하는 케이스가 발생했습니다. 이게 항상 발생하는 것도 아니고 테스트 수행 시간이 달라짐에 따라 결과가 매번 다르더라구요. 그래서 이 부분을 어떻게 해결해야하는지 찾아보려고 했으나 검색 키워드를 잘몰라서 도움이 될만한 정보를 찾지 못했습니다. 혹시 이런 부분은 어떻게 해야하나요? [제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다.
안녕하세요! 강의 듣다가 최종 배포에서 질문이 있습니다. 강의에서는 vite.config.js 파일 내용 수정은 없는 것 같은데요 아래 순서로 했는데 홈페이지 메인화면에서 Blocked request. This host (" 5d39-218-159-221-155.ngrok-free.app ") is not allowed. To allow this host, add " 5d39-218-159-221-155.ngrok-free.app " to server.allowedHosts in vite.config.js. 에러가 뜨는데요 vite.config.js 파일 수정을 해야되나요? 프론트, 백앤드 서버 실행 cmd 창에서 ngrok http 5173 입력 index.js 파일에서 아래와 같이 수정 app.use(cors({ //origin: "http://localhost:5173", origin: "https://5d39-218-159-221-155.ngrok-free.app", credentials: true, })); ngrok 에러는 아래와 같아요 08:36:45.923 KST GET /favicon.ico 403 Forbidden
[제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://inf.run/Qs2vt 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 이번에 컴퓨터를 밀고 처음부터 설치를 하려고 보니 노드 설치 방법이 책과는 너무 달라져서요 혹시 이미 반영이되지 않았다면 어떤식으로 해야하는지좀 알려주실수 있을까요?
기본 템플릿 생성 rafce 적용할 때 파일명 기준으로 객체 변수(NavBar) 생성 되는데 오타 때문에 삭제하고 재생성(Navbar)하면 처음 만들었던 이름 그대로 유지되는 습성이 있는데 삭제 하고 다시 만들때 바로 적용 되도록 환경 설정 따로 하는게 있는지 궁금합니다. Components 및 Page 폴더 파일 대소문자 구분 생성 이유가 따로 있는지 아니면 개인적인 개발 습관인지 답변 부탁드립니다.