묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
jwt 관련 질문
안녕하세요 제로초님 jwt로 구현을 해보려고 시도 중입니다!이해가 안되는 것들이 많아 질문 남깁니다 ㅠㅠ 1. 서버에서 jwt토큰을 발급할때 클라이언트에서 사용할 데이터들(이름, 주소, 프로필 이미지 등)을 jwt 토큰 페이로드에 넣어서 보내고 클라이언트에선 토큰만으로 해당 데이터를 추출하여 사용하는 방식이 맞는건가요? 2. refresh 토큰은 서버에서 별도로 저장하지만 클라이언트에서도 access 토큰이 만료되면 refresh 토큰을 보내야 해서 클라이언트에서도 별도로 저장을 해야할지 싶은데 로컬스토리지나 쿠키에 저장을 한다면 결국 탈취당할 위험이 있기에 클라이언트에서 refresh토큰을 어디에 보관해야하는지 궁금합니다. 3. XSS 공격을 막기위해 cookie에 HttpOnly 옵션으로 자바스크립트에서 접근을 못하게 막는다면 클라이언트 개발하는 코드에서도 document.cookie 로 쿠키에 접근을 못하는게 맞나요??4. 쿠키에 저장하게 된다면 모든 요청마다 헤더에 쿠키정보가 자동으로 담겨서 보내지는 걸로 알고있는데 그렇기에 쿠키보다 로컬스토리지를 사용하는 방법이 더 선호되는지 궁금합니다!
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
invalid or does not take any parameters 오류 해결방법
2_deploy_contracts.js 파일 맨 끝에 빈 라인 없으면 오류 나네요. > truffle migrate --reset 후 다시 > truffle deploy --network klaytn 하시면 됩니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Event 방식
AutoResetEvent 방식을 공부하다 궁금한게 생겨서 질문 남깁니다. AutoResetEvent 방식은 강의에서 말씀하신것처럼 운영체제에게 이벤트를 요청하며 CPU 점유를 반환하고 대기하고 있다가, 이벤트가 처리되어 락을 얻을 수 있는 순간이 왔을때, 운영체제가 직접 아까 요청했던 그 쓰레드를 깨워서 실행하도록 하는 방식이라고 이해해도 되나요? 기존의 랜덤메타와 다른건, 이벤트를 등록해두고, 이벤트가 처리되어 본인이 실행될 수 있을때, 다른 스케쥴링을 다소 무시하고 먼저 본인이 새치기하듯 먼저 실행된다고 이해했는데 잘 이해했는지 궁금합니다. 그리고 이러한 방식이 기존의 2번 방식이었던 Sleep, Yield와 같은 랜덤메타 방식보다 좀더 성능적(속도)으로 느리다고 이해했는데 잘 이해했는지 궁금합니다.
-
미해결스프링 핵심 원리 - 고급편
오타 확인 부탁드립니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 수업 자료 중 3.템플릿 메서드 패턴과 콜백 패턴.pdf의 39번 page의 OrderServiceV5의 public void orderItem(String itemId) 메서드 내부의 template.execute()의 파라미터로 들어가는 문자열이 OrderController.request() -> OrderService.orderItem() 로 바뀌어야할 것 같습니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
SpinLock과 Mutex 클래스에 대해
SpinLock은 계속 CPU를 들고 반복한다는걸 알고 있는데, 정확히는 자신에게 주어진 Time slice(시간)을 모두 사용했다면 결국 스핀락 방식도 CPU를 반환하고 나중에 다시 자신의 차례가 됐을때 다시 자신에게 주어진 최대 시간을 모두 사용한뒤 반복하는 과정을 반복한다고 이해하는게 맞나요? 이전에는 정확하게 알지못해서 스핀락 구조일때 정말로 해당 쓰레드는 절대로 CPU(코어)를 돌려주지 않고 영원히 독점하는줄 알았는데 그게 아니라, 운영체제 정책에 따라 자신에게 할당된 최대 시간(time slice) 만큼만 최대로 독점한다는 의미로 이해하는게 맞는지 궁금합니다. 그리고 강의 마지막에서 나온 Mutex 클래스의 동기화 방식은 기존에 학습했던 3가지의 경우(스핀락, 랜덤메타(양보), 이벤트)에서 이벤트와 동일하다고 이해해도 괜찮을까요? 아니면 위의 3가지 경우와 완전히 다른 4번쨰 방식이라고 아는게 좋을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
멀티코어에서 락을 얻기 위한 경쟁
강의를 듣고 공부하다가 궁금한게 생겨서 질문 남깁니다. 만약 멀티코어 환경에서 1. 서로다른 코어에서 실행중인 서로다른 쓰레드가 2. 동시에 동일하게 실행하고 있던 같은 프로세스 내의 공유자원에 접근하기 위해 락을 얻으려할때, 3. interlocked든 다른 lock이든 정말 미세한 차이가 안날만큼 정확하게 동시에 락을 획득하는 경우는 존재할 수 없나요? 없다면 그 이유가 무엇인지 궁금합니다. (물론, 그럴 확률이 매우 적을수 있다는건 알지만, 완벽하게 이런 경우를 차단할수도 없는게 아닌가 헷갈립니다ㅠ)
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
n:m 관계 정의 시 궁금점
n:m 관계 정의 시에 궁금한 점이 있어서 질문 남깁니다. 동적인 카테고리가 있는 게시판의 경우 유저가 해당 카테고리에 게시글을 쓰는 걸 구현하기 위해서 category 라는 테이블을 만들고 user가 category에 여러 게시글을 쓸 수 있고 여러 카테고리에 게시글을 쓸 수 있어서 n:m 관계라고 정의했습니다. user - board - category 이런 식으로 되어있을 때 board에서 user의 정보와 category의 정보가 필요할 때 각각을 가지고 올 수 있어야 하는데sequelize에서는 관계가 없기 때문에 가져올 수 없다고 하더군요 이런 경우에는 user-category n:m으로 관계를 정의 하는게 아닌 user-board n:1 board-category 1:n 으로 정의하는 것이 맞을까요??
-
미해결코딩테스트 실전 모의고사(with C++) : 대기업 대비
오렌지 나무 문제 질문드립니다
안녕하세요. 선생님 질문드립니다. 아래와 같이 검사 범위를 지정하면 반드시 우리가 원하는 모든 영역을 다 검사할 수 있다는 것은 직관적으로 이해해야하는 것인가요? 혹시 우리가 원하는 모든 영역을 다 검사한다는 것을 좀 더 쉽게 이해할 수 있을까요? 제 경우 더 어려운 방법이긴 하지만, 모든 점을 순회하며 각 점을 기준으로 아래와 같이 4개의 영역을 S범위로 하여 검사하면 될 거라 직관적으로 생각했습니다. (빨간 점은 모든 나무 중 하나의 나무)
-
미해결Database - SQL
강의 소리가 좀 작네요
모니터 사운드로 듣는데 최대치 입니다만.. 인프런 사운드 최대치 모니터 사운드 최대치 인데 작네요 ㅠㅠ
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
3번째 사진 그림 질문이있습니다.
3번째 사진에서 그럼 제가 이해한게 맞는지에 대해 여쭤보고싶은데요. 이 부분이 리액트서버 3000번 포트로부터 받아왔다는 예시를 그랩마켓 로고로 보여주셨었는데 그거까지는 이해가 됐거든요..?ㅠㅠ (질문 1) 그런데 그럼 아래의 그림! 이 부분은 저희가 만드는 곳중 어디서버를 의미하는 걸까요?제가 생각했을때는 저희가 만든 server.js가 API서버이니까 그거를 말하는 것 같고, 저희가 만든 api를 통해서 축구공이나 농구공, 키보드 이미지를 보여준거를 표시해놓은게 맞나요?(url경로가 저희가 아직까지는 사용하고 있지않은 .../grab.png랑 .../silky.png라서 헷갈려서 질문드립니다 ㅠㅠ)그래서! 저 리액트서버(스토리지 서버)의 경로를 바꿔주겠다.이런 의미 맞으신건지 여쭤보고싶습니다.. (질문 2)그런데 또 한 가지 의문점은 이미지는 잘 나오고 있는데 경로를 왜 바꿔주시는건가요? (앞에서 얘기해주실 수도있었겠지만..제가 놓쳤다면 죄송합니다..)
-
미해결함수형 프로그래밍과 JavaScript ES6+
공부 방향성 질문
안녕하세요 프론트엔드로 취업을 준비중인 취준생입니다. 질문사항은 다음과같습니다. 1. 강의의 최종목적이 go,pipe,curry등의 재사용성이 높은 함수를 직접 구현해서 사용하는것을 목표로해야하는지, 단순히 작동원리를 파악하는것을 목표로 두어야하는지가 궁금합니다. 어떻게든 강의내용을 돌려보면서 어떻게 동작하는지, 사용함으로써 얻게되는 이점에대해선 알 수 있을거같은데 프로젝트에서 이러한 함수들을 직접 구현할 수 있을지가의문이듭니다. 2. 이후 강의인 응용편을 바로 듣는것을 추천하는지, 아니면 우선 지금 듣는 이 강의를 다듣고 지금까지배웠던 여러 함수들을 작은프로젝트에 적용해보면서 익숙해진후에 응용편을 듣는것을 추천하시는지 궁금합니다.(강의는 이미 구매한 상태입니다.)
-
미해결탄탄한 백엔드 NestJS, 기초부터 심화까지
(0 , rxjs_1.lastValueFrom) is not a function 오류
해당 코드로 npm run start:dev실행하면 뜨는 오류입니다. moongoose에 rxjs6버전에서 deprecated된 문법으로 작성된 코드로인해생긴것으로 보입니다. nestjs 버전을 8이상, rxjs를 7이상버전(7.4.0으로 해결)으로 업데이트하면 해결되니 참고바랍니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 데이터베이스 상 테이블 생성 안됨
코드를 제대로 작성하고 SQL문이 제대로 나가는것까지 제대로 확인했습니다만 H2 데이터베이스로 접속해보면 MEMBER 테이블 자체가 아예 생성이 되어있지 않습니다. yml도 제대로 작성한 듯 보이는데 어떤 부분을 확인해야할까요...!
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
현업에서도 패키지를 사용하여 작업을 하나요?
제목 그대로의 궁금증입니다. 대부분의 CV 기업이나 AI 회사들이 스타트업에 가까운데, 이러한 기업들이 패키지를 사용하여 작업하는지 궁금합니다. 실제 제품으로 판매할 때에는 코드로 구현하지만, 연습단계에서는 패키지를 사용하여 구현하는 것인지.. 갑자기 궁금해지네요,
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Optional 쓰이는 곳 (확인 질문.)
Optional은 DB테이블 데이터가 null일 때를 대비해, 컨트롤러나 서비스 계층에서 꺼내 쓸 경우 null예외를 피하기 위해 감싸서 사용하는 게 맞나요 ? 엔티티 필드명에 감싸서 사용하는 건 아니죠 ? :[ 되게 바보같은 생각이었을 수도 있는데 null값이 그대로 들어갈 경우, 업데이트할 때 까다롭다는 강의내용을 들어서 처음에는 아무생각 없이 null이 들어가는 곳에는 다 Optional.empty로 바꿔 들어가야겠구나 했는데 엔티티 필드명에 null이 안들어가게 Address는 Optinoal로 감싸야되나 했다가 고민하다가 뒤늦게 내린 결론인데 확실한건가 싶어서 질문합니다 ;; @Entity@Getter@NoArgsConstructorpublic class Member { @Id @GeneratedValue private Long id; private String username; private int password; @Embedded private Address address; public Member(String username, int password) { this(username, password, null); } public Member(String username, int password, Address address) { this.username = username; this.password = password; this.address = address; }}
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
SpringConfig에 생성자
JpaMemberRepositotry 실행할 때 SpringConfig.class파일에서 EntityManager em 변수랑 새로운 생성자를 만드는데 왜 이전에 만들어 둔 DataSource를 매개변수로 가진 생성자를 지우지 않고 그대로 두면 오류가 뜨는건지 궁금합니다.
-
미해결Flutter 입문 - 안드로이드, iOS 개발을 한 번에 (with Firebase)
ThemeData의 accentColor속성 deprecated
5:14에 accentColor 속성이 이젠 deprecated 돼서 쓸 수 없다고 하는데 어떻게 해야하나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
예외 처리에 대해서 어떻게 구현하는지 궁금합니다!!
안녕하세요!! 강의를 다 듣고 예제에서 하나씩 코드를 추가하면서 공부하고 있는중에 궁금한게 생겨서 올렸습니다! Optional을 사용해서 NullPointException이 발생하지 않도록 한다면, 이후에 Controller에서 Optional 안에 값이 있으면 값을 보내고 없으면 alert로 보내도록 했는데 실무에서도 이런 방식으로 사용하는지 궁금합니다! 그리고 찾아보니 @ControllerAdvice로 따로 처리하는것도 있는걸 알게되었습니다. 강의에서 '이미 있는 회원입니다.' 라고 예외를 출력하는 부분이 있는데 이 예외를 @ControllerAdvice 어노테이션으로 등록한 클래스에서 따로 처리하는 방법도 생각했는데 이러한 방법도 가능한지 의견을 어쭈어보고 싶습니다.
-
해결됨우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
안녕하세요! 매직 method 질문있습니다.
예를들어 __add__ 같은 경우 1) 이 method를 실행시켜주는 기호 + 는 프로그래머가 설정할 필요 없이 파이썬 내부에서 알아서 래핑(?)이 되는건가요? (각 기호만 입력하고 실행하면 그 기호와 짝이 맞는, 클래스 내 정의된 매직method가 실행되서매직 매서드라고 하는건가요..?! ) 2) magic method 목록에 없는 새로운 magic method(마치 함수를 새로 짜듯이)를 만들 수는 없는건가요? 3) 그렇다면 각각 고유한 magic method들과 짝이 맞는, 구현시키는 기호( +, -, *...) 는 스스로 숙지하고 있어야 하는건가요? 4)추가로 클래스 정의할 때, class Car(object), class Car() 이렇게 괄호안에 object를 쓰는 경우와 쓰지 않는 경우가 있는데 둘의 차이점은 무엇인가요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
질문이 있습니다.
예전에 Selective Search 를 학습하였을 당시에는, bounding box의 coordinate의 right와 bottom에 left와 top을 더해주어야 제대로된 bounding box가 형성되었습니다. 또한, 저번에도 이와 관련된 질문을 했었는데, 그때 답하신 것이 ---------------------------------------------------------- opencv의 rectangle()함수가 좌상단 좌표, 우하단 좌표를 필요로 하기 때문입니다. selective search는 좌상단 좌표와 너비, 높이를 반환합니다. 때문에 우하단 좌표의 x축값(right)은 좌상단 좌표의 x축값(left) + 너비, y축값(bottom)은 좌상단 좌표의 y축값(top) + 높이로 계산합니다. ------------------------------------------------------------- 이로 답변하셨거든요. 근데 이번 예제는 달랐습니다. 같은 cv2.rectangle() 함수를 썼는데도 불구하고 left와 top값을 더하지 않고도 제대로된 bounding box가 형성되었거든요. 우선 하나의 bounding box만 출력하고 좌표를 확인했을때의 right와 bottom의 coordinate는 아직 더해지지 않은 값이 입력하였으나, rectangle()에 그대로 넣어도 bounding box가 제대로 출력되는게 신기합니다. 이해를 돕기 위한 관련 사진 첨부합니다. 그림을 보면 right와 bottom에 각각 left와 top을 더하지 않아도 출력이 되는 것을 확인할 수 있습니다. 또한, left coordinate : 225 top coordinate : 260 right coordinate : 375 bottom coordinate : 544 로 나오는데, matplotlib의 plot을 보게 되면 right와 bottom의 coordinate는 각각 left와 top의 coordinate를 더해야 나올 수 있는 bounding box인데 말이죠..ㅠㅠ 이해가 되지 않네요,