게시글
질문&답변
2024.05.06
섹션6 04-05 몽구스 부분 수강중입니다.
안녕하세요! 경택 님! coolsms의 버전이 올라감에 따라, 수업에서 사용중인 node:14버전과 호환된지 않는 문제 가 발생한 것 같네요! 이러한 경우에는 2가지 방법이 있어요! 1. coolsms의 버전을 낮추어서 기존 node:14 버전과 호환 되게 만든다. 2. node:14버전을 높인다. 보통 이러한 경우에 node:14버전을 높이게 되면 이미 설치된 다른 여러 라이브러리들이 node:16버전을 호환하지 못할 수도 있으므로, 다같이 업그레이드를 해야하기 때문에 보통 대규모 공사가 될 가능성 이 있답니다! 따라서, 본 수업에서는 coolsms의 버전을 낮추어서 진행하시길 권장 드려요!^^ 수업에서 사용중인 coolsms 버전은 아래와 같습니다! // coolsms "coolsms-node-sdk": "2.0.1", // 나머지 라이브러리 "cors": "^2.8.5", "express": "^4.18.2", "mongoose": "^6.8.4", "nodemailer": "^6.9.0", "nodemon": "^2.0.20", "swagger-jsdoc": "^6.2.7", "swagger-ui-express": "^4.6.0"
- 0
- 2
- 52
질문&답변
2024.05.06
docker
안녕하세요! 동호 님! 해당 에러 메시지를 확인해 보니, Access denied for user 'root'@'localhost' (using password: YES) 라고 되어있는 부분이 보이네요! 해당 에러는 접근 권한이 없다 는 뜻으로, docker 내의 mysql이 제대로 실행 되고 있는지, 비밀번호가 알맞게 설정 되어 있는지 등을 다시 한 번 점검해 주세요! 마지막으로, 도커 수업 이전에 local에서 mysql 수업을 진행하였었는데 docker 수업중에는 local 컴퓨터의 mysql은 종료 해 주세요!
- 0
- 2
- 44
질문&답변
2024.05.06
회원가입 과제 완료용
안녕하세요! 지루한 들소 님! 과제까지 열심히 잘 따라오고 계시는군요! 전반적으로 코드에서 깔끔하다는 느낌을 많이 받았어요!^^ 나중에 코드가 더 어려워 지고 복잡해 지시더라도, 현재의 깔끔함을 유지 하는 개발자가 되셔야해요! 하단 버튼부분은 직접 button 태그에 css를 적용 하였기 때문에, 모든 버튼을 동일한 다자인으로 사용하시려는 의도가 보이는 것도 같아서 재사용 측면도 고려 하신 것 같네요!^^ 꾸준히 계속 따라오시면 좋은 결과 있으실 것 같아요! 파이팅해요!^^
- 0
- 2
- 56
질문&답변
2024.05.04
백엔드 과정을 수강 중인 학생입니다.
안녕하세요! 히응 님! 실제로 도커 수업을 진행하기 위해서는 리눅스기반의 운영체제(우분투) 또는 유닉스기반의 운영체제(mac)를 사용하실 것을 권장 드려요! 그 이유는 도커가 해당 환경을 기반으로 작동하기 때문이랍니다! 그러므로 만약, 리눅스 기반이 아닌 윈도우 운영체제에서 사용하기 위해서는, 윈도우에서 리눅스처럼 사용할 수 있는 서브시스템을 설치 하셔야 하는데요! 이를 W indow- S ubsystem-for- L inux 라고 불러요! 앞글자만 읽어보면 WSL 이 되겠죠?! 따라서, 윈도우에서는 WSL을 설치하여 도커를 사용하실 수 있답니다! 하지만, 수업 중간 중간에 윈도우와 호환되지 않아 발생하는 문제의 해결 방법을 강의에서 제공하지 않으므로 , 수업에 참여하시는데 불가능한 것은 아니지만 부드러운 진행을 위해서 가급적이면 우분투를 설치하셔서 진행하실 것을 권장 드려요!^^
- 0
- 2
- 61
질문&답변
2024.05.04
graphQL 강의중
안녕하세요! 수민 님! 텍스트 색이 갈색으로 나와서, 인식이 안된다고 생각하신 것 같아요! 실제로는 정상적으로 인식되고 있는 것이며, 색을 강의에서와 같이 알록달록하게 변경하고 싶으시다면 vscode의 extension을 설치 해 주세요^^ (사진)
- 0
- 2
- 84
질문&답변
2024.04.28
react Dom 설치 에러
안녕하세요! edo020424 님! 일반적으로 react와 react-dom은 함께 따라다닌답니다! 현재 본 강의에서는 react 버전을 최신 버전이 아닌, 17.0.2 버전을 사용하고 있기 때문에, react-dom 버전도 동일하게 17.0.2 로 맞춰 주셔야 무리 없이 진도를 따라가실 수 있어요! 현재 수업에서 사용중인 버전이에요. "next": "12.1.0", "react": "17.0.2", "react-dom": "17.0.2", 위 버전을 먼저 맞춰주시고, yarn install을 다시 진행해 주셔야 하는데요! 이전에 설치했던 node_modules와 yarn.lock은 삭제 해 주시고 yarn install 해주세요!
- 0
- 1
- 77
질문&답변
2024.04.27
윈도우 누른치로 마침표 눌렀는데 이모지가 안되는데용.?./.
안녕하세요! 히응 님! 윈도우 + '.' 이 작동하지 않는 경우에는, 윈도우 + ';' 으로도 사용해 보실 수 있습니다!^^
- 0
- 2
- 51
질문&답변
2024.04.27
레퍼지토리 주입 기준이 궁금합니다.
안녕하세요! 춘몽 님! 최초 상품 강의시부터 로그인강의까지 레포지토리 주입 방법이 모두 달랐어요! 레포지토리 직접 주입 => 레포지토리가 주입된 모듈 주입 이유는 가장 쉬운 방법부터 실무적인 방법까지 차근차근 설명드리기 위함이었는데요! 가장 쉬운 방법은 다이렉트로 필요한 레포지토리를 직접 주입하는 방법이었지만, 해당 방법은 서비스의 규모가 커지면서 비효율적인 모습 을 보여주게 됩니다! 이유는, 재사용 가능한 서비스 를 만들어서 사용하게 되면 유지보수 가 좋아지기 때문이에요! 따라서, 후반부 강의에서는 레포지토리를 직접 주입하지 않고, 재사용 가능한 서비스가 내장된 상태의 모듈을 통째로 떼었다 붙였다 하는 방식으로 코딩하고 있답니다! 하지만, 마지막 결제 트랜잭션 강의에서는 하나의 서비스에서 여러 레포지토리를 직접 연결하고 있는데, 이 부분은 트랜잭션을 설명하기 위한 강의로서 레포지토리 주입은 가장 쉬운 직접 주입으로 대체한 것일 뿐이며, 실무용으로 사용하기에는 한단계 더 심화 리팩토링이 필요하답니다! =============================================================== 시간이 되신다면 한 번 도전해 보세요! 결론부터 말씀드리면, 레포지토리를 직접 주입 받는 것이 아닌, 모듈 형태로 주입 받아야 하고, 해당 모듈 내에서 트랜잭션이 연결 되도록 설계하셔야 합니다! ex) 1. TransactionModule 이라는 모듈을 하나 만들어 주시고, 해당 모듈을 주입받습니다. 2. TransactionModule 내에서 TransactionService를 하나 만들고, 여기서 queryRunner 를 관리합니다. (getQueryRunner 등의 함수를 만드셔서 저장된 queryRunner를 반환하시면 되겠죠?!) 3. nestjs는 기본적으로 싱글톤으로 작동하기 때문에, 이대로 사용하셨다간 모든 요청자들간에 queryRunner를 공유하게 된답니다! 따라서, TransactionService는 RequestScope 이 되어야, 요청자들간에 자기만의 TransactionService가 만들어지게 되고, 자기만의 queryRunner가 하나씩 생기게 되는 것이지요! 4. 위와 같이 사용하신다면, 여러 테이블의 트랜잭션. 예를들어 결제 => 상품 => 유저 등의 트랜잭션을 묶을때, 각각에서 모두 TransactionModule을 주입받아 해당 TransactionService내의 queryRunner에 저장함으로써, 모듈 주입 방식을 사용 함과 동시에 하나의 queryRunner로 문제를 해결 하실 수 있답니다!^^
- 0
- 2
- 93
질문&답변
2024.04.27
26분50초에 세로줄 어떻게 해요 ..? ㅎㅎㅎ
안녕하세요! 히응 님! 형돈님께서 잘 설명해주신 것처럼 엔터 위의 \ 키를 쉬프트 누르고 입력 하시면 되세요!^^ 친절하게 설명해주신 형돈 님 감사드립니다!^^
- 0
- 2
- 58
질문&답변
2024.04.22
localstorage.setItem 위치 질문
안녕하세요! 민지 님! CounterMaker 함수 내에 if문을 clearTimer() 라는 위치로 이동시켰다고 이해해도 괜찮을까요?! 그렇다면, 잘 작동할 것 같네요!^^ 뿐만 아니라, 1초마다 if 검증을 하지 않아도 되니 더 효율적일 것 같아요!^^
- 0
- 2
- 69