묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 시큐리티 OAuth2
프론트엔드 + 서버 oauth2 연동
안녕하세요, 좋은 강의 감사합니다. 현재 제가 개발중인 react 로 된 SPA 어플리케이션이 있는데요, 프론트엔드에서 직접 authorization server 로 access token 을 가져오자니 페이지가 새로고침 될때 날라가는 현상이 발생합니다. 이를 localStorage, sessionStorage, cookie 등에 저장하는것도 안전하지 않아서 (혹시 안전하게 하는 방법이 있나요?)아예 "로그인"만 서버쪽에서 수행하고 access token, refresh token 을 프론트로 전달해줘서 refresh token 만 httpOnly Cookie 에 넣으려고 합니다. 이제 새로고침 될때마다 서버에 access token 요청을 refresh token 으로 한다음, 그 access token 을 사용하려고 합니다. 혹시 이 같은 방식이 쓰이는지 알 수 있을까요? 아니면 추천해 주시고 싶은 방식이 있으신가요? 2. 서버 사이드 view 를 통해 로그인만 oauth2Login 으로 수행하고, 로그인 후 나머지는 SPA 프론트엔드로 리다이렉트 가 가능한가요? 혹은 이렇게 쓰기도 하나요?
-
미해결인터랙티브 웹 개발 제대로 시작하기
3d 뒤집기 추가효과
지금 카드를 3d로 뒤집는데 그냥 뒤집히는게아니라카드의 뒷면이 무엇인지 왼쪽아래나 왼쪽면부터 조금씩 뒤집어지는 느낌으로 뒤집기 위해선 animation3에서 이미지를 나눠서 보여준것처럼 효과를 줘야할까요? 그냥 카드가 3d로 휙 뒤집히는게 아닌 책장넘길때처럼 구현하고싶은데 뒷면을 확인할때 긴장감을 주기위해서 혹시 어떤 방법이 있을까요?
-
해결됨파이썬으로 시작하는 머신러닝+딥러닝(sklearn을 이용한 머신러닝부터 TensorFlow, Keras를 이용한 딥러닝 개발까지)
보스턴 집값 예측 15번 강의에 쓰이는 csv
보스턴 집값 예측 15번 강의에 쓰이는 csv는 어디서에서 다운받는지요?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
mutableListOf
강의를 들으면서 코틀린 문법도 같이 병행하면서 듣고있는데 이부분 질문을 하고 싶습니다!mutableListOf 로 감싸줘서 넣어져야지 코드가 오류 없이 되는지 궁금합니다. jpa 특성상 그런건가용?
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
메서드 영역에 static 변수?
자바 8부터 Heap 영역에 Static Object(Static Variable, static객체 , static method)이 존재하고MetaSpace에는 static reference만 저장한다고 아래 글에서 읽었습니다.https://openjdk.org/jeps/122어떤게 맞는건가요? 제가 오역한거같지는 않은게 다른 분들도 그렇게 말씀하시는것 같습니다.https://jgrammer.tistory.com/entry/JAVA-Java8%EB%B6%80%ED%84%B0%EB%8A%94-static%EC%9D%B4-heap%EC%98%81%EC%97%AD%EC%97%90-%EC%A0%80%EC%9E%A5%EB%90%9C%EB%8B%A4
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
보일러 플레이트
인강듣기전에 학습자료를 보고 먼저 따라했는데요.인강에선 <main> 이부분을 삭제를 안했는데,학습자료에선 main을 다 삭제 했더라구요.이부분에서 학습자료를 참고해도 될까요?아님 다시 복구 해야하나요?이 부분 뿐만아니라 인강에서는 삭제를 안했는데, 학습자료에선 삭제된 부분이 꽤 있어서 걱정이 되어 문의를 드립니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
12장 퀴즈 runnableSet 질문
퀴즈 풀이 진행시저는 _03_JOIN 에서 사용한 것 처럼 클래스 내부에 함수를 만들어서 호출해서 사용하는 방식을 했습니다. 코드package chap_12; public class _Quiz_12 { public static void main(String[] args) { Pkg pkg1 = new Pkg(); Pkg pkg2 = new Pkg(); Runnable a = new Runnable() { @Override public void run() { String name = "A"; int number = 1; for (int i = 1; i <= 5; i++) { pkg1.pack("A"); } System.out.println(" -- A 상품 준비 완료 -- "); } }; Runnable b = new Runnable() { @Override public void run() { String name = "B"; int number = 1; for (int i = 1; i <= 5; i++) { pkg2.pack("B"); } System.out.println(" -- B 상품 준비 완료 -- "); } }; Thread pkgA = new Thread(a); Thread pkgB = new Thread(b); pkgA.start(); pkgB.start(); try { pkgA.join(); pkgB.join(); } catch (InterruptedException e) { throw new RuntimeException(e); } Dmz(); } public static void Dmz() { for (int i = 1; i <= 5; i++) { System.out.println("세트 상품 포장 시작 " + i + "/5"); } System.out.println(" == 세트 상품 포장 완료 == "); } } class Pkg { public int number = 1; public void pack(String name) { // 직원 1 : 3번방 청소 완료 System.out.println(name + "상품 준비 " + number + "/5"); number++; } } 영상에서는 이전과 다르게 Runnable 인터페이스를 구현하여서? 하는걸 보았습니다결과는 똑같이 나오는데 기능적으로나 프로그램적으로 어떠한 차이가 있는지 알려주시면 감사하겠습니다.
-
해결됨개발자를 위한 쉬운 도커
쿠버네티스 강의 오픈 언제 예정이신가요?
도커 강의 너무 잘 듣고있어서 쿠버네티스까지 같이 수강하고자 합니다.
-
미해결쿠버네티스 어나더 클래스-Sprint3 (#실무핵심 #Docker #Nginx #Minio #Longhorn)
컨테이너와 VM 비교 해주신 설명중에 궁금한 부분이 있습니다.
안녕하세요. 좋은강의 많은 도움을 받고있어 항상 감사드립니다."아무나 모르는 컨테이너 기술의 장점" 섹션을 수강하던중 아래와같은 두가지 궁금한 부분이 있어 질문드립니다.VM과 Container를 비교설명 해주셨는데요. Container 설명 중에 개발자 환경이 Windows Host에 Container 환경을 구성하여 개발환경과 같은 linux명령, 환경을 동일하게 시험해 볼 수 있다고 하셨습니다. 이때 host os에 커널을 공유하는게 Container기술이라고 이해하고 있었는데, Windows Host에 linux 컨테이너 이미지가 가능한 건가요? 컨테이너가 VM에 비해 이미지화/dockerhub를 통한 배포로 인해 동일한 환경을 배포함에 있어서 장점이 있다고 설명해주셨는데요. sprint 1,2 실습환경을 제공해 주신것처럼, vagrant 와 packer를 이용하면 VM도 Container와 비슷한 조건이지 않은가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
java.lang.NumberFormatException: Cannot parse null string
강의를 듣다가 2024-08-07T11:08:47.538+09:00 ERROR 9788 --- [servlet] [nio-8080-exec-3] o.a.c.c.C.[.[.[/].[memberSaveServlet] : Servlet.service() for servlet [memberSaveServlet] in context with path [] threw exceptionjava.lang.NumberFormatException: Cannot parse null string at java.base/java.lang.Integer.parseInt(Integer.java:624) ~[na:na] at java.base/java.lang.Integer.parseInt(Integer.java:778) ~[na:na] at hello.servlet.basic.domain.web.servlet.MemberSaveServlet.service(MemberSaveServlet.java:25) ~[classes/:na] at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) ~[tomcat-embed-websocket-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) ~[spring-web-6.1.11.jar:6.1.11] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) ~[spring-web-6.1.11.jar:6.1.11] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) ~[spring-web-6.1.11.jar:6.1.11] at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) ~[spring-web-6.1.11.jar:6.1.11] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63) ~[tomcat-embed-core-10.1.26.jar:10.1.26] at java.base/java.lang.Thread.run(Thread.java:1583) ~[na:na]2024-08-07T11:08:47.559+09:00 DEBUG 9788 --- [servlet] [nio-8080-exec-3] o.apache.coyote.http11.Http11Processor : Socket: [org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper@330cc8fe:org.apache.tomcat.util.net.NioChannel@37334a47:java.nio.channels.SocketChannel[connected local=/[0:0:0:0:0:0:0:1]:8080 remote=/[0:0:0:0:0:0:0:1]:60555]], Status in: [OPEN_READ], State out: [CLOSED] 이라는 에러가 떴는데 int age = Integer.parseInt(request.getParameter("age"));에서 문제가 있다는것 같은데 아무리 확인해도 왜 오류가 뜨는건지 모르겠습니다...
-
해결됨워드프레스(WordPress) 완전정복
워드프레스 완전정복, 36강 post-format의 array추가시 문제
안녕하세요. 워드프레스 완전정복을 수강중입니다. 36강 post format 1을 수강중에 "add_theme_support('post-formats', array('aside','video','image','status','link'));"을 추가 했는데 대쉬보드에 글형식 메뉴가 뜨지를 않네요. AI에 질의해 보니.테마 파일에 올바르게 추가되지 않음:add_theme_support('post-formats', array(...))가 테마의 functions.php 파일에 올바르게 추가되지 않았을 수 있습니다. 이 함수는 after_setup_theme 액션 훅 내에서 호출되어야 합니다 [2].php코드 복사add_action('after_setup_theme', 'mysecondwp_setup'); function mysecondwp_setup() { add_theme_support('post-thumbnails'); add_theme_support('post-formats', array('aside','video','image','status','link')); }Gutenberg와의 호환성 문제:Gutenberg 에디터와의 호환성 문제가 있을 수 있습니다. 몇몇 경우, 포스트 포맷이 제대로 표시되지 않거나 작동하지 않을 수 있습니다 [3].자식 테마 사용 시 문제:자식 테마를 사용하고 있다면, 자식 테마에서 포스트 포맷을 올바르게 상속받지 못했을 수 있습니다. 이 경우, 부모 테마와 자식 테마 모두에 올바르게 설정되어 있는지 확인이 필요합니다 [4].테마가 포스트 포맷을 지원하지 않음:사용 중인 테마가 포스트 포맷을 지원하지 않을 수 있습니다. 일부 테마는 기본적으로 특정 포스트 포맷만을 지원합니다 [5].위의 이유들을 하나씩 확인하고 문제를 해결해 보세요. 추가적인 디버깅이 필요할 수도 있습니다.이런 내용이 나오는데 초보라서 잘 모르겠네요. 도와 주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
Team 클래스에서 member를 List로 저장하는 이유
안녕하세요 강의 잘 보고있습니다!다름아니라 Member 클래스에서는 List를 쓰지않고 Team team으로 객체를 저장하셨는데Team 클래스에서는 List를 사용하여 member를 저장하는 이유가 궁금합니다.팀이 1이고 멤버가 N이여서 팀에 여러명의 멤버가 들어갈 수 있으므로 List를 사용하신걸까요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
한 부모테이블에 속한 자식 테이블들의 칼럼이 전부 NOT NULL일 경우
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]Item 부모 클래스를 Album , Book , Movie 자식 클래스들이 상속받는 상황에서 해당 자식 테이블들 칼럼들이 전부 NOT NULL일 경우 단일 테이블 전략을 쓰고 데이터를 삽입할 경우 다른 자식 객체에 값에 NULL이 들어감으로써 NOT NULL 조건을 위배하여 오류가 발생즉 이럴 경우 JOINED 전략을 통해 칼럼들이 NOT NULL이어도 테이블이 자식 별로 분리돼서 생성됨에 따라 NOT NULL 조건을 위반하지 않고 원활하게 삽입될 수 있습니다.[핵심 질문]하지만 규모가 크지 않은 프로젝트에서 선생님께서는 단일 테이블 전략이 좋다고 하셨는데, 규모가 크지 않은 프로젝트에서라도 일반적으로 칼럼들이 NOT NULL로 설정되는 경우가 많은데 이런 경우에는 불가피하게 무조건적으로 조인 전략(JOINED)을 채택해야하는지 여쭙고 싶습니다 !
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
붙여넣기 후 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 순수 JDBC영상 7분30초 쯤 파일참고해서 붙여넣기를 했더니 빨간줄이 어마무시하게 많이 그였습니다.원인좀 알려주실 수 있을까요https://drive.google.com/file/d/16hfb328rA7fdLiE6oxILNIjL-gpDYSPL/view?usp=sharing
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
2.2)단락 평가 11:28 인수 전달 관련하여 질문드립니다.
안녕하세요, 2.2)단락 평가 11:28 인수 전달 관련하여 질문 드립니다. function printName(person){ const name= person && person.name; // const age = person && person.age; console.log(name || "person의 값이 없습니다.") // console.log(age || "나이를 추정할 수 없습니다.") } printName({name:"이정환"}); 객체 값을 인수로 전달했을 때 name 변수에 인수로 전달받은 객체 값들이 정상적으로 저장되고 콘솔 창을 통해 출력되잖아요. printName함수의 person라는 매개 변수 형식?을 어디에서도 선언, 정의하지 않았는데 객체 타입으로 함수 호출 시 정상 출력되는 점이 혼란스럽습니다. 이전에 학습한 7가지 Truthy 한 값들 중 객체가 속해 있기에 Truthy 가 나오고, 그런 성질을 이용하여 변수에 name : "이정환" 이 저장되어 콘솔창에서 확인 가능한 결과가 나온다고 이해하면 될까요? 친절히 설명해주셔서 감사합니다.
-
미해결[코드팩토리] [초급] NestJS REST API 백엔드 완전 정복 마스터 클래스 - NestJS Core
테스트코드
강의 너무 잘 보고있습니다. ㅎㅎ혹시 테스트 코드 이번강의에 넣지 않으신 이유가 있나요 ?
-
해결됨[풀스택 입문] Firebase보다 10배 좋은 Supabase
update 진행 시 에러가 발생합니다.
강의 내용 진행중 update 할때만 아래와 같은 에러가 나는데, 혹시 수정할 부분이 있을까요? insert/delete는 이상없이 진행 됩니다. 코드는 tailwind 일부만 제외하고는 전체 동일합니다.nextjs : 14.2.5 @supabase/supabase-js: "^2.45.0"'''localhost/:1 Access to fetch at 'https://********.supabase.co/rest/v1/note?id=eq.8' from origin 'http://localhost:3000' has been blocked by CORS policy: Method PATCH is not allowed by Access-Control-Allow-Methods in preflight response.'''const onEdit = async () => { if(!title || !content){ alert("제목과 내용을 입력하세요"); return; } const { data, error} = await supabase .from('note') .update({ title, content }) .eq('id',note.id); if(error){ alert(error.message); return; } setIsEditing(false); fetchNotes(); }
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
기본 3강부터 막혀 멍청해서 화가납니다 ㅠㅠ
제곱수의 합문제요..6일 경우 제곱이 되려면 루트6밖에 안되는데왜 2가 2로 떨어지는 약수의 개수로 카운팅되는지 이해를 못하겠네요…또 3의 제곱 5의 제곱은 왜 고려안하는지도…( 이미 이해 다 됐다고 가정해서 말씀하신건지도 모르겠습니다.ㅠㅠ )바보도 알고리즘 천재로 만들어주신다고 들어서 잘 알려주시면 감사드리겠습니다 ㅠㅠ
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
동적 의존성 주입과 Volatile
[질문]2024.08.07 까지는 정액할인, 2024.08.08 부터는 비율할인 정책이 반영되어야 하는 비즈니스 로직이 있고, 이를 스케줄러를 활용하여 2024.08.08 00:00:00에 Setter를 활용하여 비율할인을 구현한 Bean을 Injection 하여 처리하도록 구현했다고 가정하면, 이런 경우에도 아주 아주 엄밀하게 00:00:00에 모든 할인 정책이 완벽히 적용되어야 한다면, 인스턴스 변수에 volatile을 반드시 명시해줘야 하는 것인가요? 경험이 미천하여 웹프로그래밍 할 때 volatile를 사용한 것을 거의 보지 못하였고, 위의 가정처럼 아주 엄밀한 동작을 요구하는 경우는 없었고 그간 별다른 일도 없긴 하였는데, 개념을 듣고 복기해보니 장애의 요인이 될 수 있을 것 같아 여쭙습니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
질문드립니다.
<div className="todos_wrapper"> {todos.map((todo) => { return <TodoItem {...todo} />; })} </div>여기서 <TodoItem {...todo} /> <TodoItem todo= {...todo} />두개 차이가 뭘까요 >?import React from "react"; import "../TodoItem.css"; const TodoItem = ({ id, isDone, content, date }) => { return ( <div className="TodoItem"> <input checked={isDone} type="checkbox" /> <div>{id}</div> <div>{content}</div> <div>{isDone}</div> <div>{date}</div> </div> ); }; ({ id, isDone, content, date })여기 {}에 넣는거랑 {}을 뺴고 넣는거랑 차이가 뭔지 모르겠어요..