묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지
함수 호출 시 함수 정의의 인자 명을 명시하는게 더 나은 코드인지?
def func(country): print(f"country = {country}") # 1) func(country = "South Korea") # 2) func("South Korea")1번 방식과 2번 방식 중에어떤 방식이 더 나은 코드인지 궁금합니다.함수 정의 시 만든 인자 명을 명시하는게 나은 코드인가요 ? (보통 이런 방식의 코드를 많이 못봐서 여쭙습니다.)
-
미해결리눅스 시스템 프로그래밍 - 이론과 실습
child process
child의 종료처리를 한다는 것이 단지 부모가 (wait를 사용해)자식보다 늦게 죽으면 되는건가요?아니면 wait()에서 시그널을 받을때까지 blocking하는 것 말고 하는 다른 종료처리가 있나요?부모가 죽으면 child 프로세스의 자원을 회수하지 못하는 이유가 무엇인가요?
-
미해결스프링 시큐리티 OAuth2
OAuth 2.0 Authorization Grant Code 네이버 로그인 구현
안녕하세요 정수원님 강의 내용과 조금 다른 부분이긴한데 질문드리고자 합니다.Vue와 Spring Boot(Spring Security OAuth Client로 활용)로 네이버 로그인을 구현해보고 있습니다.웹, 안드로이드, iOS 등에 대한 소셜로그인을 Authorization Grant Code방식으로 구현하려고 하고 있으며 REST API 방식으로 동작하도록 하고싶습니다.하지만 Spring Security의 org.springframework.boot:spring-boot-starter-oauth2-client 의존성을 추가하여 OAuth2UserService를 구현하게되면 백엔드에 your-server-host/ oauth2/authorization/naver로 요청을 보내면 사용자에게 로그인을 받고 Authorization Grant Code를 받아와 AccessToken을 반환받고 이를 통해 UserInfo를 Resource Server로부터 받아오는 과정을 처리해줍니다.이 과정속에서 프론트에게 로그인 성공시 실행되는 AuthenticationSuccessHandler 구현 과정에서 sendRedirect를 통해 accessToken과 refreshToken을 전달하려고 했으나 이런 방식은 REST API에 적합하지 않은것 같다고 느껴집니다.심지어 front에서 버튼을 클릭하면 GET 요청으로 /oauth2/authorization/naver를 호출하도록 해보려고 했으나 이 경우에 네이버 로그인 호출하는 과정에서 CORS에러가 발견되어 하이퍼링크로 호출하도록 구현하였습니다. 위의 배경으로 궁금한 점은 다음과 같습니다.프론트엔드와 Authorization Grant Code를 REST API 방식으로 구현하기 위해서는 어떻게 해야할까요? 제가 생각한 방식과 굉장히 유사한 블로그 포스팅을 발견했는데 Spring Security는 사용하지 않는 것 같습니다.(https://blog.naver.com/PostView.naver?blogId=varkiry05&logNo=222295764870) Spring Security를 활용하는 방안이 있다면 추천 부탁드립니다.. 혹은 굳이 Spring Security를 사용하지 않고 구현해도 된다고 생각하시는경우에도 의견주시면 감사하겠습니다.위의 경우에는 client-id를 프론트에서 관리하며 강좌에서 이런 경우에는 보안상의 이슈가 발생할 수 있다고 하셨는데 어떻게 대안점이 있을까요? (https://www.rfc-editor.org/rfc/rfc6749#section-2.3.1) rfc6749에서는 client-id는 secret이 아니라고 하는것 같습니다. 제가 처음 구현하려던 방식과 유사한 tech blog를 찾았습니다. 내부적인 커스터마이징을 통해 redirection을 구현한 것 같습니다.(https://tech.kakao.com/2023/01/19/social-login/) 이때 accessToken과 refreshToken을 redirect시킬 때 param으로 넘긴다면 url주소로 토근값들이 보일것인데 보안상으로 괜찮을까요? ps.실제로 https://olive.kakao.com/login (카카오 테크 블로그에 소개된 redirection이 구현된 페이지)의 js 코드를 까보니 <a> 태그 형식의 하이퍼링크로 호출함을 확인했으며, redirect되는 callback url에서 token값을 확인할 수 있음을 크롬 개발자도구 네트워크탭에서 확인했습니다. 감사합니다.
-
해결됨스프링 핵심 원리 - 기본편
안녕하세요 싱글톤 컨테이너에 대해 질문이 있습니다.
스프링 컨테이너가 객체 인스턴스를 싱글톤으로 관리한다. 라고 이해를 했습니다. 그렇다면 사용자가 10명이 존재하고 이 사용자 10명 전부가 memberService 이름을 가지는 빈 객체를 호출 한다고 했을때 첫번째 사용자가 호출해서 memberService 객체를 사용하고 있을때 나머지 사용자 9명은 첫번째 사용자의 memberService 객체 사용이 끝날때까지 대기하고 있어야 하나요?만약 1번 처럼 대기하고 있는게 맞다면 사용자가 100만명과 같이 대규모 사용자일때도 스프링 컨테이너가 객체 인스턴스를 싱글톤으로 잘 관리를 할 수가 있나요? 성능적인 부분에서 부하가 오지는 않을까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
초반 println 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.무슨 오류인 걸까요...??현재 h2 DB는 실행 중 입니다.....😥
-
미해결블렌더 처음 시작부터 로우폴리 3D 애니메이션 까지
png overwrite 해제하고 동영상으로 저장
안녕하세요! 동영상 저장 관련하여 질문이 있습니다. 저는 png, overwrite해제하고 렌더링을 했더니 1부터 900까지 png파일로 저장이 되더라구요! 그리고 마지막에 동영상으로도 저장이 되는 줄 알았는데, 동영상으로 또 묶는 작업을 해줘야 하나요??
-
해결됨비트코인 암호화폐 자동매매 코인봇 만들기 Part 1 - 무위험 전략 학습하기
pycurl 설치 에러 질문드립니다.
안녕하세요.window에서 pycurl 설치 에러 관련 질문드립니다. 강의에서 공유해주신 링크(pypi.python.org)에서 tar.gz파일 다운로드 후python setup.py --libcurl-dll=libcurl.so install실행 시 Please specify --curl-dir=/path/to/built/libcurl 에러가 발생합니다. (참고로, pycurl-7.45.2.tar.gz 파일을 다운받았습니다)pip install pycurl 실행 시 동일하게 다음의 이미지와 같은 에러가 발생합니다.답변 주시면 감사하겠습니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
객체와 프록시를 비교했을 때 결과 값이 안 나와요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.영상에선 참거짓이 나오는데 제건 이럭게만 뜨네요 ㅜㅜ
-
해결됨만들면서 배우는 리액트 : 기초
현재 MDN 사이트의 using fetch부분을 사용하면 에러가 나오네요
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 강의의 코드와 조금 다르지만, 사이트에 있는 코드를 사용하면 에러가 나네요 .. ㅠㅠㅠ 그래도 강의에서 사용하신 코드를 입력하면 제대로 나오긴 하는데.. 왜 그런건지 잘 모르겠습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Content-Type, Media Type 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 강의 중 Content-Type 과 Media Type 부분이 헷갈리는데 의미상으로는 같아 보이는데 같다고 봐야할까요?
-
미해결데이터 분석 SQL Fundamentals
상관서브쿼리에서 서브쿼리내부 GROUP BY 생략가능 여부
안녕하세요. 강의실습을 진행하다가 궁금한 사항이 있어 문의드립니다. 가장최근 급여정보를 비상관으로 풀이한 쿼리를 보면 서브쿼리내에 GROUP BY가 생략된 것 같아서요 select * from hr.emp_salary_hist a where todate = (select max(todate) from hr.emp_salary_hist x where a.empno = x.empno); 서브쿼리내 where a.empno = x.empno에 의해 group by 가 없어도 직원별 max(todate)를 가져오게 된건가요? 그러면 아래의 쿼리에서도 group by를 생략해도 되는건가요?-- 2건 이상 주문을 한 고객 정보select * from nw.customers awhere exists (select 1 from nw.orders x where x.customer_id = a.customer_idgroup by customer_id having count(*) >=2);
-
해결됨스프링 핵심 원리 - 기본편
@BeforeEach 에러
MemberServiceTest를 실행하면 memberService에서 NullPointException이 뜹니다. 찍어보니까 beforeEach()메서드보다 Join() 메서드가 먼저 실행되는거 같은데 뭐가 문제일까요?.. 추가적으로 OrderServiceTest는 beforeEach가 먼저 들어와서 오류 없이 실행됩니다..!
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
7-B 풀이 질문입니다.
선생님 풀이에서 궁금한 부분이 있어 질문을 남기게 되었습니다.dp[1][2][0] = 1; 문제에서 (1,2)까지 가로 파이프가 있다고했습니다.코드에서는 y,x 순으로 배열을 작성하였으므로 dp[2][1][0]=1을 초기값으로 하는것이 맞다고 생각되는데 그렇게 하면 정답이 맞지 않습니다.저 부분에 대한 선생님 설명을 듣고싶습니다.추가 ) x,y 순으로 배열을 작성하여 코드를 작성하였는데요, 이때에는 정답이 틀리고 이 코드에서 dp[2][1][0]=1로 초기값 설정하였을때 정답이 나오는것 같습니다. https://www.acmicpc.net/source/57275157
-
미해결코딩테스트 [ ALL IN ONE ]
강의자료 관련해서 질문드립니다!
면접 그룹 스터디 신청하는 경우에는 강의 자료를 요청드릴 수 없는지 궁금합니다!구글 폼이 있는 것 같은데 강의자료만 요청할 수 있는 폼은 없는 것 같아서 어떻게 공유되는지 궁금합니다ㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
똑같이 따라했는데 폰트 오류가 뜹니다 ㅠㅠ
모두 작성하고 run을 눌렀는데 디버그 콘솔에 이렇게 떴습니다.아래는 디버그 콘솔 아래 메시지입니다.Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output. > Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 4sException: Gradle task assembleDebug failed with exit code 1Exited (sigterm)폰트를 눌렀을 때 이렇게 뜨는데 이게 문제일까요?인터넷에 찾아보고 이것저것 해봤는데 도저히 원인을 못찾겠네요 ㅠ
-
해결됨QGIS 파이썬 자동화 (벡터편) Ver.2
실습 중의 데이터 입력 오류
실습중에 데이터가 먹히지 않아요disolve에서 shp 파일의 데이터 소스가 유효하지 않다고 뜹니다.merge에서 경기지역이랑 강원도 지역은 인식이 되는데 서울(UMD_11.shp)가 넣어도 인식을 못합니다.원인 파악 부탁드리겠습니다 ㅠㅠ
-
해결됨스프링 부트 - 핵심 원리와 활용
StockConfigV1 오탈자 제보
안녕하세요 영한님!메트릭 등록5 - 게이지 강의 듣던 도중에 오탈자가 있는것 같아서 제보 드립니다StockConfigV1 작성 시 myStockMetric Bean 등록 부분에서 PDF 자료에서는 orderService가 아닌 orderService.getStock() 으로 되어 있습니다.return new MyStockMetric(orderService.getStock(), registry);영상은 orderService로 작성하셔서 강의를 듣는데 무리는 없지만 공유 주신 PDF 자료와는 달라서 제보 드립니다!매번 좋은 강의 내주셔서 감사합니다.
-
미해결따라하면서 배우는 고박사의 유니티 기초
강의 자료를 다운받고 싶습니다.
안녕하십니까? 강의 잘 듣고 있습니다. 강의 중 보여 주시는 PPT 형태 강의 자료를 다운 받을수 있는지요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
다차원 배열 순회부분
안녕하세요!! 좋은 강의 듣게 해주셔서 감사합니다 !!복습 중 이해가 안되는 부분이 있어 질문합니다!!//세로크기 10 가로크기 15에 해당하는 영화관 좌석 //세로크기 10 가로크기 15에 해당하는 영화관 좌석 String[][] seats3 = new String[10][15]; // 선언만 할 때에는 크기를 명시 String[] eng = {"A","B","C","D","E","F","G","H","I","J"}; for (int i = 0; i < seats3.length ; i++) { // 세로 for (int j = 0; j < seats3[i].length; j++) { seats3[i][j] = eng[i]+(j+1); System.out.print(seats3[i][j] + " "); } System.out.println(); } // 표 구매 seats3 [7][8] = "__"; // H9 seats3 [7][9] = "___"; // H10 // 영화관 좌석 확인 for (int i = 0; i < seats3.length ; i++) { // 세로 for (int j = 0; j < seats3[i].length; j++) { // 가로 System.out.print(seats3[i][j] + " "); // A1,A2,A3... } System.out.println(); }//영화관 좌석 확인 부분에서 String[][] seats3 = new String[10][15]; String[] eng = {"A","B","C","D","E","F","G","H","I","J"}; for (int i = 0; i < seats3.length ; i++) { // 세로 for (int j = 0; j < seats3[i].length; j++) { seats3[i][j] = eng[i]+(j+1); System.out.println(seats3[i][j] + " "); } }위 코드 fori 구문을 두번 반복한 뒤 System.out.print(seats3[i][j] + " "); 을 사용해나타내었는데, 이러지 않고 밑에 코드 블럭 처럼<바로 sout을 통해 좌석번호를 나타낸다면 틀린 코드인지 궁금합니다. ...>제가 해보았을 때 같은결과가 나와서...String[][] seats3 = new String[10][15]; // 선언만 할 때에는 크기를 명시 String[] eng = {"A","B","C","D","E","F","G","H","I","J"}; for (int i = 0; i < seats3.length ; i++) { // 세로 for (int j = 0; j < seats3[i].length; j++) { seats3[i][j] = eng[i]+(j+1); System.out.print(seats3[i][j] + " "); } System.out.println(); } 요러케요!!
-
해결됨웹 게임을 만들며 배우는 React
tries 안에 value와 result차이
안녕하세요 강의 잘 듣고있습니다.강의듣는도중 궁금한게 생겨서요!!위의 사진에서 보면 value는 tries의속성값으로 사용하셨고 원래 코드라면 result : "홈런!!" 이렇게 되어있어서 위의 사진처럼 바꾸면되지않을까해서 바꾸고 인덱스에맞게 답을맞추고 출력해봤는데 오류가 뜨더라구요. 왜그런거죠?? 리액트18말고 강의기준으로 질문드립니다(usecallback , 의존성배열없는코드). 리액트가 { } 블럭단위로 변화점을 다 찾은다음에 한번에 리렌더링시켜서 그런것인가요?