묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결웹 게임을 만들며 배우는 React에 TypeScript 적용하기
lodash 사용 유무에 대한 고견을 듣고 싶습니다.
우선 해당 강의와 연관성 없는 질문 죄송합니다. 현업에서 lodash 라이브러리를 사용하는 것에 대해 어떻게 생각하시는지 궁금합니다. 선생님께서는 최신 JS 문법들을 활용하고 조합하시는 것 같아서 궁금합니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
lodash 사용 유무에 대한 질문.
선생님께서는 현업에서 lodash 라이브러리를 사용하는 것에 대해 어떻게 생각하는지 궁금합니다. 필요한 함수들을 전부 직접 만들어 사용하시는 편이신가요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
put/patch에 대한 질문입니다
회원정보수정할 때 "patch를 사용할까?"라는 궁금증이 생겨서 질문하게 되었습니다. 왜냐하면 회원정보 수정시 patch개념을 이용하여 수정하게 되면 서버 로직에서 유저 정보 데이터 유무에 따라 분기하여 db에 update하게 되어 중복되는 코드가 많아진다고 생각했습니다. // 회원정보수정 API에서 nickname, email 바디값을 받는다고 했을 때 // 아래 코드와 같이 구현해야한다고 생각했습니다. if(nickname){ update user set nickname = 'inflearn' where id = 1 } else if (email){ update user set email = 'inflearn@gmail.com' where id = 1 } // 왜냐하면 만약에 회원정보수정 API에서 클라이언트에서 nickname은 보내고 email은 안보내는 상황에 // if문같은 분기가 없으면 아래 코드와 같이 email에 null값이 들어갈 것으로 예상되었기 때문입니다. update user set nickname = 'inflearn', email = null where id =1 그래서 저같은 경우는 회원정보수정API는 put메서드를 사용하고 유저정보를 다 보내도록 했습니다. 그리고 회원정보수정API에 모든 회원정보 데이터를 보내도록 하고 아래 코드와 같이 회원정보수정API 로직이 시작하는 부분에 모든 예외상황을 생각해서 바디값이 왔는지 유무를 체크하여 예외처리하는 식으로 구현했습니다. if (!profile_nickname) return res.status(400).json({ code: 'invalid_profile_nickname' }) 그러다보니 클라이언트에서는 회원정보 수정데이터가 10개중에 하나만 바뀌어도 모든 데이터를 회원정보수정API에 보내는 비효율적인 문제가 생기더라고요. 저도 제가 구현한 방식이 비효율적인 걸 알고 있는데 어떻게 구현하는게 맞는지 생각이 나지않아 질문하게 되었습니다. 어떻게 하면 patch를 잘 이용할 수 있을까요?현재 저 같은 경우는 수정과 관련된 API이면 put만 사용하고 예외적으로 patch를 사용하는 경우는 비밀번호 변경일 때만 사용했는데요. 왜냐하면 user테이블의 비밀번호 부분만 변경을 하는거니까 patch를 사용하는게 맞다고 생각했습니다.
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
ㅜㅜdiv가 왜 0.5초만 보여지고 다시 감춰질ㄲㅏ요
ㅜㅜdiv가 왜 0.5초만 보여지고 다시 감춰질ㄲㅏ요
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
이상한 문구가 나오네요
print('Hello Python Basic!') 이렇게 입력했는데 하단에는 Python [Finished in 0.316s]이렇게 나와요 ㅠ
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
3xx-리다이렉션 강의 중 질문 있습니다.
안녕하세요:) 결제 API에서 클라이언트와 서버 통신 예외처리에 대해 질문이 있습니다. 6분 34초경에 "클라이언트에서 유저가 페이지 리로드할 경우가 있어서 동일 주문이 서버에 요청이 될 수 있기 때문에 서버에서도 예외처리해놔야한다"고 하셨습니다. 제가 영한님의 말씀을 듣고 처음 생각난 방식은 클라이언트에서 주문번호를 난수로 만들어준 다음 쿠키에 저장하여서 동일한 주문번호를 서버에 요청했을 때 서버에서 거절하면 된다고 생각했은데, 클라이언트에서 주문번호를 자리수가 짧은 난수로 만들었을 때 중복되는 값이 발생할 것으로 생각이 드네요. 그래서 이 방법은 또 다른 이슈를 발생시킬 것 같아 좋은 방법은 아닌 것 같고... 2 번째로는 처음 생각한 방법을 응용한건데 난수를 유저테이블의 index와 구분자 그리고 현재 유닉스시간까지 숫자를 합쳐서 만들면 중복될 가능성이 낮아질 것 같다는 생각을 했습니다. 예) 12/1609305240 혹시 더 나은 방법이 있을까요? 8분30초 경에 말씀해주시는 주문 중복을 피하는 방법에 대해서는 이해했습니다!
-
미해결스프링 기반 REST API 개발
HATEOAS 질문
강의를 듣다보니까 과거에 제가 네이버 댓글 크롤링을 한 기억이 생각 났는데요. 그 곳에서 현재 댓글 목록을 보는 API 응답으로 다음 댓글 페이지, 이전 댓글 페이지 URL이 JSON 요소로 담겨서 왔는데 이런 것이 HATEOAS를 지키는 예라고 이해하면 되나요?
-
해결됨진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
개인 정보 수준 에러에 대해서
강의 내용 중에 body를 함수로 변환하고표2에서 body 함수를 불러올 때,개인 정보 수준에 대해서 묻고, 뭘 누르든 간에 에러가 납니다.(office365 최신 엑셀 기준, 옵션은 공공, 프라이빗 같은 선택이 가능) 개인 정보 강화 측면에서 <body> 함수를 불러올 때,입력해놓은 인증키 코드의 일부분이 삭제되거나 해서제대로 불러오지 못한 현상이 아닌가 싶습니다. (추측) 이래저래 검색해보니 꽤 유명한 에러인 듯 합니다.https://docs.microsoft.com/ko-kr/power-query/dataprivacyfirewall(에러 상세 내용) 강의에는 문제가 없으나내용 참고하셔서 보충해주셨으면 좋겠습니다. 감사합니다!
-
미해결Redux vs MobX (둘 다 배우자!)
redux 관련 문의 드립니다.
redux vs mobx 강의를 듣던 중 index2.js를 다음과 같이 작성하고 명령어 node index2를 실행하였더니 Cannot access 'store' before initialization, 라는 에러가 나와서, store 선언부 즉, const store = createStore~~~ 부분을 initialState 바로 밑으로 옮기면 다시 Cannot access 'enhancer' before initialization, 라는 에러가 뜨고 이로 인해서 enhancer를 다시 최상단으로 올리면 Cannot access 'firstMiddleware' before initialization라는 에러가, firstMiddleware를 최상단으로 올리면 처음의 Cannot access 'store' before initialization 가 뜨는 악순환이 반복되고 있는데, 도대체 무엇이 잘 못된것 일까요?ㅠㅠ 아무리 강의를 다시 봐도 제로초님과 같은 순서로 작성한 것 같은데요.. const { createStore, applyMiddleware } = require("redux"); const reducer = require("./reducers"); const { logIn, logOut } = require("./actions/user"); const { addPost } = require("./actions/post"); const initialState = { user: { isLoggingIn : true, data: null, }, posts: [], }; const firstMiddleware = (store) = (dispatch) = (action) => { console.log("액션로깅", action); dispatch(action); }; const thunkMiddleware = (store) = (dispatch) = (action) => { if (typeof action === "function"){ // 비동기 (비동기인 경우 액션을 함수로 넣겠다!) return action(store.dispatch, store.getState); } return dispatch(action); }; const enhancer = applyMiddleware( firstMiddleware, thunkMiddleware, ); const store = createStore(reducer, initialState, enhancer); console.log("1st", store.getState()); // 하단의 코드들은 react component에서 작성 및 실행되어야 하는 코드. store.dispatch(logIn({ id: 1, name: "eunsonny", admin: true })); console.log("2nd", store.getState()); // store.dispatch(addPost({ userId: 1, id: 1, content: "첫번째 안녕하세요."})); // console.log("3rd", store.getState()); // store.dispatch(addPost({ userId: 1, id: 2, content: "두번째 안녕하세요."})); // console.log("4th", store.getState()); // store.dispatch(logOut()); // console.log("5th", store.getState());
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 JPA 동적 쿼리 관련 질문
안녕하세요 영한님 늘 좋은 강의를 만들어 주셔서 감사합니다. 아직 JPA에 대한 기본적인 이해가 부족한 상황인데 궁금한 게 있어서 살짝 바보같은 질문드립니다. 현재 JPA의 동적 쿼리를 해결하려고 많은 엔지니어 분들이 고민하고 있는 것으로 알고 있는데요. 프로젝트를 시작할때 동적쿼리가 필요한 로직만 Mybatis를 적용할 수 있을거나 그런 사례가 있을 까요?
-
미해결[라즈베리파이] IoT 딥러닝 Computer Vision 실전 프로젝트
섹션3-라즈베리파이에서 직접 쓴 손글씨 인식 질문
안녕하세요. 먼저 저와 같은 문제가 있는지 아래의 질문과 답을 찾아보았습니다. 여러명이 질문한 것이 있어서, 그대로 다 해보았으나 해결되지 않아 질문드립니다. -언어 영어 설정, h5 파일 같은 폴더, 노마드선생님이 제공한 소스코드 그대로 사용, 강의 내용대로 그대로 설치, 라즈베리파이4 사용 -폴더 이름만 class로 변경 섹션3의 마지막 강의(10분29초)에서, 아래와 같은 에러가 뜹니다. ㅠㅠ (cv) pi@raspberrypi:~/class $ python3 RBP_DL15_MNIST_PiCamera.py Traceback (most recent call last): File "RBP_DL15_MNIST_PiCamera.py", line 8, in <module> model = tf.keras.models.load_model('digits_model.h5') File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/save.py", line 146, in load_model return hdf5_format.load_model_from_hdf5(filepath, custom_objects, compile) File "/home/pi/.virtualenvs/cv/lib/python3.7/site-packages/tensorflow_core/python/keras/saving/hdf5_format.py", line 166, in load_model_from_hdf5 model_config = json.loads(model_config.decode('utf-8')) AttributeError: 'str' object has no attribute 'decode'
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
Exe가 없습니다
7분8초쯤에 나오는 exe파일이 없는데..없어도 되는건가요.. 선생님 파일탐색기에 나오는 나머지 파일들은 다 나오는데 exe는 없어요ㅜㅜ 그리고 저 파일 들어갈때 bin파일 들어가고 debud 들어가고 netcoreapp3.1이라는 파일이 하나 더 잌ㅅ어요
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
You have reached your pull rate limit 확인부탁드립니다.
안녕하세요. 깃허브 연동해서 travis.ci 시작하는 화면에서 이렇게 에러가 나는데 확인 부탁드려요!!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안녕하세요.
안녕하세요.강사님 좋은 강의 감사드립니다. HTTP - API - 컬렉션 post기반등록은 어디에서 어떻게 사용이 되는건지알수있을까요?? 그리고 컬렉션이 서버가 관리하는 리소스 디렉토리라고 하셨는데 컬렉션이 /members가 어떻게 리소스 디렉토리가 되는지도 알고싶습니다! 감사합니다.
-
미해결함수형 프로그래밍과 JavaScript ES6+
사용하시는 개발 툴이 뭔지 궁금합니다....
되게 편리한거 같아서 여쭈어 봅니다...
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
선생님은 어떻게 회원가입이 가능했던거죠??
지난번 영상에서 마지막 포스트맨 부분이 안돼서 헤매다가 이번 영상 첫번쨰에서 고쳐주신 오류 보고 else문 추가 후 데이터 입력이 가능 했는데 선생님은 어떻게 성공하신거죠?? 영상에 시간차가 있었던걸까요??
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
logout시 req.user는 undefined 인 이유.이렇다면 로그인을 안하는 것 아닐까요?
로그인을 한 후 로그아웃을 해보았습니다. 로그인을 하면 /profile 페이지로 가게되고 /auth/logout을 하면 / 로 돌아옵니다./auth/loginn을 하게 되면 로그가 아래와 같이 잘 찍히고 페이지 이동도 잘 됩니다. Executing (default): SELECT `id`, `email`, `nick`, `password`, `provider`, `snsId`, `createdAt`, `updatedAt`, `deletedAt`, `followingId`, `followerId` FROM `users` AS `User` WHERE (`User`.`deletedAt` IS NULL AND `User`.`email` = 'ydkim@gmail.com'); POST /auth/login 302 292.273 ms - 60 GET /profile 304 0.878 ms - - GET /main.css 304 3.621 ms - - /auth/logout을 할 때 강의에서 말씀하신 대로 router.get("/logout", (req, res) => { console.log(req.isAuthenticated()); console.log(req.user); console.log(req.session); req.logout(); req.session.destroy(); res.redirect("/"); }); 이렇게 해보았는데 로그는 아래와 같이 나옵니다. 유저가 로그인 되었다는 session이나 쿠키를 어떻게 확인하나요? 그리고 req.user은 어떻게 확인하나요? POST /auth/login 302 312.140 ms - 60 GET /profile 304 17.371 ms - - GET /main.css 304 16.912 ms - - false undefined Session { cookie: { path: '/', _expires: null, originalMaxAge: null, httpOnly: true, secure: true } } GET /auth/logout 302 4.894 ms - 46 GET / 304 9.218 ms - - GET /main.css 304 2.477 ms - -
-
미해결파이썬 무료 강의 (활용편2) - GUI 프로그래밍 (4시간)
tkinter Button의 command에서요
label1 = Label(root, text="안녕하세요") label1.pack() def change(): label1.config(text="또 만나요") btn = Button(root, text="클릭", command=change) btn.pack() change라고 정의된 함수에서 함수 바깥에 있는 label1을 사용하는 것을 볼 수 있는데요. 원래 함수에서 함수 바깥에 있는것을 참조하려면 global을 써야하지않나요? 안써도 되는 건 왜 일까요? 답변 기다립니다. 고맙습니다.
-
미해결실전 리액트 프로그래밍
예제 코드는 어디서 받나요?>
ㅇ
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
수업자료
수업자료 어떻게 봐야하나요,,?