묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨순수 함수형 프론트엔드 언어 Elm 가이드
Elm의 functor?
안녕하세요.또 하나의 선생님 챗지피티와 함께 수강하고 있습니다.그리고 (기대하시는 바와 조금 다르게) 함수형에 대해 전혀 모르지만, 필요와 끌림에 의해 일단 Elm 배우기를 시작했어요.질문입니다."엘름 아키텍쳐 - The Elm Architecture" 강의 중 펑터(functor)라는 표현을 쓰셨는데(정확히 어딘지 다시 못 찾겠네요 ㅜㅜ)챗지피티는 Elm엔 functor 라는게 없다라더라고요. 그런가요?챗지피티에 하고 받은 질문과 답변을 첨부합니다:---> "String.any Char.isDigit password" in here, "Char.isDigit" is called as functor right?> In Elm, the term "functor" is not typically used in the same way as it is in other functional programming languages like Haskell. In Haskell, a functor is a type class that implements the fmap function (or <$>) for a data structure, allowing you to apply a function to the values inside it.However, in the Elm context, Char.isDigit is simply a function that takes a Char and returns a Bool indicating whether the character is a digit or not. When you use it with String.any like String.any Char.isDigit password, Char.isDigit is not referred to as a functor but rather as a predicate function. String.any takes this predicate function and applies it to each character in the string, checking if any of the characters satisfy the predicate.In functional programming terms, you might say that String.any is a higher-order function because it takes another function (Char.isDigit in this case) as an argument. The combination of String.any and Char.isDigit checks each character of the string to see if it meets the criteria specified by Char.isDigit, which is to be a digit.So, to clarify:Char.isDigit is a predicate function.String.any is a higher-order function that applies the predicate to each element in a string.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
로컬과 프로덕션 환경에서 동작이 좀 다르네요
binggo.me 라는 도메인으로 작업하는 중인데요, 리액트 라우트는 아래와 같이 작성이 되어있습니다. return ( <BrowserRouter> <Routes> <Route element={<App />}> <Route path="/" element={<Navigate replace={true} to="/home" />} /> <Route path="home" element={<UserHomePage />} /> <Route path="challenge/new" element={<MakeChallengePage />} /> <Route path="bingos/:bingoId" element={<BingoPage />} /> <Route path="challenge/:challengeId" element={<ChallengePage />} /> </Route> <Route path="*" element={<NotFoundPage />} /> </Routes> </BrowserRouter> ); '/'로 접근하면 '/home'로 리디렉션은 잘 되는데, '/home'로 바로 접근할 때 로컬에서는 잘 되고 프로덕션에서는 에러가 뜨네요. 다른 페이지들도 마찬가지로 접근이 안됩니다. 에러 내용은 아래와 같은데NotFoundError: Not Found at /home/ubuntu/local/bingo/bingo/server/app.js:45:8 at Layer.handle [as handle_request] (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:317:13) at /home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:284:7 at Function.process_params (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:335:12) at next (/home/ubuntu/local/bingo/bingo/server/node_modules/express/lib/router/index.js:275:10) at SendStream.error (/home/ubuntu/local/bingo/bingo/server/node_modules/serve-static/index.js:121:7) at SendStream.emit (node:events:513:28) at SendStream.error (/home/ubuntu/local/bingo/bingo/server/node_modules/send/index.js:270:17) at SendStream.onStatError (/home/ubuntu/local/bingo/bingo/server/node_modules/send/index.js:421:12)app.js 45번째 라인은 접근할 수 없는 경로에서 404를 뱉게하는 부분인 것 같습니다.app.use(function (req, res, next) { next(createError(404)); });근데 또 db랑 연결해둔 api부분은 잘 접근이 되어요.잘은 모르지만 서버쪽의 app.js파일에서 라우팅을 한 경우에는 잘 되고(/api 경로로 수업때 해주신 것 처럼 라우팅 해뒀습니다), 프론트쪽 작업에서 해둔 라우팅이 로컬에서는 잘 먹고, 프로덕션에서는 안먹고 있는 것 같아요.혹시 이 문제의 해결 방법이 있을까요? 해결하기 위해서 더 필요한 정보가 있으시다면 말씀주시면 감사하겠습니다!
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
왜 서버의 루트 디렉토리에 node관련 파일을 설치하는 게 아니라 local디렉토리를 만들어서 설치하는지 알 수 있을까요?
왜 서버의 루트 디렉토리에 node관련 파일을 설치하는 게 아니라 local디렉토리를 만들어서 설치하는지 알 수 있을까요?
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
삽질 내용 공유드려요.. (혹시 도메인 접속 안되는 분들)
안녕하세요:)좋은 강의 감사히 잘 듣고 있습니다!아래 내용은 도메인 연결 후 접속 안 되시는 분들께서 한 번 참고하시면 좋을 것 같습니다.저는 도메인을 구매하지 않고, 기존에 사용하던 도메인에 연결했는데 접속이 안 되더라구요.이유는 크롬 브라우저에서 https로 접속한 기록이 있는 도메인은 자동으로 https로 리다이렉트 시키기 때문입니다. (네임 서버도 바꾸고.. 엄청 삽질했네요 흑..)참고 url: https://comple.co.kr/471해결방법은 다른 브라우저로 접속하거나, 아래 URL로 이동하셔서chrome://net-internals/#hsts좌측 'Domain Security Policy' 탭으로 이동Delete domain security policies 부분에 프로토콜 부분(https:// 등)을 제외한 본인 도메인을 입력위 내용을 해주시면 정상 접속이 됩니다.단, 다시 https로 도메인 페이지를 접속하시면 또 해주셔야 합니다. 🥲
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
무한 build
안녕하세요 강의를 듣고 제 프로젝트에 적용해볼려고 하는데(리액트만 ec2에 배포를 해볼려고 합니다) 무한 build가 되더라구요 그래서 ec2모니터링을 해보니 cpu가 99퍼를 차지하는 걸 확인했습니다.그래서 이 상황을 해결하려고 ec2인스턴스 스펙을 좀 더 높여볼까하는 생각도 해봤는데 비용적인 부분때문에 걱정이 되더라구요혹시 ec2인스턴스의 스펙업 이외의 해결 방법이 있을까요?
-
해결됨Svelte.js SPA 영화 검색 프로젝트
snowtemplate 를 설치하는중에 에러가 발생합니다.
안녕하세요 예제를 따라가다 보니 snowtempalte를 npm으로 설치중에 에러가 발생하네요강의 촬영시와 시간이 좀 흘러서 설치에 문제가 있어보이는데 보완할 수 있는 내용을 명시해주시면 좋을 것 같습니다.감사합니다.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
빌드 오류
======CMD====== 19./deploy.sh 20======END====== 212023/03/05 13:19:14 Process exited with status 127 22err: bash: ./deploy.sh: No such file or directorydeploy.sh 파일이 없다고 하는 것 같은데 확인해보면 잘 존재해 있습니다.#!/bin/bash source ~/.bash_profile cd ~/git/backfront/ git pull origin main cd frontend/ npm i npm run build cp -rf dist/* ../backend/public cd ../backend/ npm i pm2 stop web pm2 start bin/www --name web --update-env sleep 2 pm2 list 도와주십시오ㅠ
-
미해결만들면서 배우는 프론트엔드 DO IT 코딩 (Next.js, Typescript)
배포 관련 질문
안녕하세요, 강사님.강의를 듣고 있는 학생입니다.제가 Next.js를 가지고 개발을 하고 있는데 배포를 할 때, Next.js로만 dockerfile을 작성해서 배포하면 되는 걸까요? 아니면 Vue.js와 같은 SPA 처럼 Nginx를 포함시켜서 dockerfile을 작성하고 각각 컨테이너를 만들고 연결시켜주면 되는 건가요?제가 이쪽 지식이 부족해서 수업 이외에 다른 것도 여쭤보게 되었는데,, 만약 답변이 가능하시다면 염치불구하고 물어보고 싶습니다 ㅠㅠ배포 환경은 EC2와 같은 가상컴퓨터환경(클라우드)에서 쿠버네티스를 만들고 그 위에 올릴거 같은데,, 어떤 구조를 참고하면 좋을지 고민이에요.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
강의자료 (Source Code ) 는 어디서 다운 로드 받나요?
안녕하세요?좋은 강의 잘 듣고 있습니다. 강의자료 (Source Code ) 는 어디서 다운 로드 받나요?pdf는 다운로드 받았는데 Source Code는 못 찾겠네요 전체 강의자료 파일 첨부되어 있습니다. 메시지는 보이는데 전체 강의자료 받을 수 있을까요? 감사합니다.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
`GLIBC_2.28' not found 오류
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found 오류가 있어 2시간 삽질 하였습니다.해당 강의에서 AWS linux로 기본 셋팅을 하고 있는데node 18버전을 지원하지 않는다고 합니다.우분투 20으로 서버 셋팅 하시던가node 버전 다운하셔서 진행하시면 됩니다.
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
Ubuntu를 사용하지 않고 Amazon Linux를 사용하는 이유가 있나요?
Ubuntu를 사용하지 않고 Amazon Linux를 사용하는 이유가 있나요?
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
npm -S 옵션
안녕하세요. 수업을 듣던 중npm i -S swagger-ui-express swagger-jsdoc에서 -S 옵션이 궁금하여 검색해본 결과예전에는 --save와 같은 의미로 사용되었던 옵션같으나 npm 최신버전들에서는 npm i (npm install)에 디폴트로 save 옵션이 적용되어있고,오히려 save를 하지 않을 때npm i --no-save 로 사용하는듯 합니다. 혹시 저와 비슷한 궁금증을 가진분들이 계실까하여 질문글로 남겨둡니다. 감사합니다~ https://stackoverflow.com/questions/40868494/what-is-the-s-in-npm-i-s
-
해결됨Svelte.js SPA 영화 검색 프로젝트
안녕하세요 Vite + Svelte로 프로젝트 시작하려고하는데 prettier + eslint 설정이 잘 안되고 있습니당
안녕하세요 Vite + Svelte로 프로젝트 시작하려고하는데 prettier + eslint 설정이 잘 안되고 있습니다 ㅠㅠ https://github.com/sveltejs/prettier-plugin-svelte#readme 이곳에 가서 prettier 설정하는거 보고 dependency 설치 후 .prettierrc 파일을 root directory에 만들어서 하는데 .svelte file에게만 prettier rules가 적용이 안되고 있습니다. 무슨 영문인지 도대체 모르겠습니다. 미리 답변 감사 드립니다!
-
미해결React 기반 Gatsby로 기술 블로그 개발하기
특정 게시글을 클릭하여 상세 페이지로 넘어가는 과정과 SPA에 관한 질문
안녕하세요. 강의 잘 보고 있는데요. 저는 본 강의를 '참고'하여 스스로 블로그를 만들고 있는데요. 다름이 아니라, 강의 코드를 보면 게시글 리스트중, 특정 게시글 아이템을 클릭하면 to={slug}하게 되어 있는데요. 그래서 markup의 상세 페이지로 넘어가는데, 이때 렌더링되는게 templates 폴더에 존재하는 post template이고요. 근데 이때 index 화면과 똑같은부분은 import Template from 'components/Common/Template' 에서 import해와서 Template으로 래핑해 놓았는데(index.tsx 컴포넌트도 마찬가지로 Template로 래핑되어 있구요) 여기서 의문은 특정 게시글 아이템을 클릭해서 상세 페이지로 넘어갈 때 SPA처럼 동작하는게 맞을까요? 왜냐하면 보통 리액트로 따지면 최상위 컴포넌트를 Router로 래핑해서 사용하기 때문에 SPA로 동작이 가능해지지만, gatsby에서 사용하는 리액트는 router로 별도로 래핑은 안하는 것 같아서요. index.tsx를 Template로 래핑하고, Link To를 통해 상세 페이지로 넘어갔을 때도 Template을 래핑 해놓은 거라면, 변화가 필요한 영역만 바뀌는게 아니라 페이지 전체가 처음부터 다시 렌더링되는게 아닌가 싶어서 여쭙습니다 추가적으로, 앞서 말씀드린대로 처음부터 다시 렌더링 하는 경우라면, 상태를 지속적으로 관리하는건 어렵겠지요? 가령, 사이드바에서 depth가 1이상인 폴더 구조를 갖는 항목들이 있고, 각 항목들이 1개 이상의 md문서를 갖고 있을 때, 사용자가 여러 개의 폴더를 open했다가 특정 md문서로 들어가는 경우, 앞서 open되었던 폴더드의 상태를 계속 유지하는 것은 어렵겠쬬?
-
미해결React + API Server 프로젝트 개발과 배포 (CI/CD)
Let`sEncrypt 관련 에러문제
Domain: example.com Type: dns Detail: DNS problem: SERVFAIL looking up A for example.com - the domain's nameservers may be malfunctioning; DNS problem: SERVFAIL looking up AAAA for grimlerdl.com - the domain's nameservers may be malfunctioning 이 강의 보고 잘 작동하는 프로젝트를 올려놨었는데 몇일 지나고 보니까 사이트가 안들어가져서 ec2삭제하고 다시 진행하는중에 위와같은 에러를 마주하였습니다. 구글링 해봐도 DNS관련 지식이 포함되어있는 영어들이라 잘 모르겠어서 질문드립니다. ㅠ 무엇이 문제이걸 까요??
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
EC2 인스턴스 재시작과 (중지/시작) 도메인 레코드 등록/삭제 관련
개설한 EC2 인스턴스를 상시 실행이 아닌, 중지/재시작으로 관리하며 학습하고 있는 중입니다. (비용 때문에) 아마도 Elastic IP 서비스를 이용하지 않으면, 인스턴스 재구동시 IP 정보가 변경될텐데요, 앞서 Route 53 서비스를 통하여 도메인 레코드를 등록한 정보에 새로 구동된 인스턴스 서버의 IP 를 도메인 레코드로 재등록 (삭제/등록) 해줘야만 다시 정상 등록이 될 것으로 이해하고 있습니다. 궁금한 점은, 혹시 인스턴스만 중지시키고, 별도로 도메인 레코드 등록정보를 삭제하지 않았을 경우에 대한 문제점이나 비용 차징에 관한 정보를 자세히 알 수 있을까요?
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
git ssh key 개인키
개인키는 절대 노출되면 안되는걸로 알고있는데 공개키 대신 개인키로 등록하는 이유가 있나요?
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
cannot get / 404에러에 대하여... ㅠ
완강후, 제목과 같은 에러를 겪고 있습니다. 모가 문제일까 ...... 고민해보다가 nginx.conf에 들어가보니까.. server { if ($host = [나의url]) { return 301 https://$host$request_uri; } # managed by Certbot listen 80; listen [::]:80; server_name [나의 url] _; return 404; # managed by Certbot 맨아래 https인증서 받을때 생긴 새로운 코드인데 (검증) 저의 사이트에 접속하면 404를 리턴하는 코드인거 같습니다.. 혼란스럽네요 ㅠㅠ
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
git clone시, 유저네임과 비밀번호를 입력하라는 ec2...
21분에 케누님이 git clone해서 프로젝트를 가져오시는데 저 같은경우에는 Username for 'https://github.com': 위와 같이 유저네임과 그 다음 비밀번호를 입력하라고 합니다..ㄷㄷ;; 이게 클론이나 pull할때 그냥 유저네임 입력하고 비밀번호 입력하면 되지만 ..... 문제는 아래와 같습니다 ㅠㅠ ======CMD====== ./deploy.sh ======END====== err: fatal: could not read Username for 'https://github.com': No such device or address out: out: up to date, audited 1465 packages in 6s out: out: 169 packages are looking for funding out: run `npm fund` for details out: out: 19 vulnerabilities (13 moderate, 5 high, 1 critical) out: out: To address issues that do not require attention, run: 깃허브 액션을 사용해서 git pull로 변경사항을 가져오는데;; 저런 에러가 발생하네요 ;;; 저와 케누님의 깃허브 설정이 몬가 다른거 같긴한데;;;; (흐음..) 원인을 잘 모르겠어서 케누님께 질문드리려고 합니다 ㅠ
-
해결됨React + API Server 프로젝트 개발과 배포 (CI/CD)
환경변수를 이용한 동적빌드 구간에서 질문 !!
frontend/.env파일에서 VITE_API_SERVER= 이렇게만 설정해주셨는데.... 이 부분이 잘 이해가 안갑니다. fetch(import.meta.env.VITE_API_SERVER + '/api/hello') .then(response => response.json()) .then(data => greet.innerHTML = JSON.stringify(data)) 보시다시피 위의 코드가 빌드되었을 텐데요?? VITE_API_SERVER를 아무것도 지정안하면 요청이 /api/hello 이렇게만 나오는거 아닌가요?? 그런데 케누님 영상에서는 도메인이 붙어있네요? ㄷㄷ;;; 이 부분이 잘 이해가 안가요 ㅠㅠ....