묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
3강 Spring Cloud Gateway - Custom Filter 적용 Bean 관련 질문있습니다.
안녕하세요 수업 잘 듣고 있습니다. 수업중 내용에 관해서 질문이 있어서 질문을 남깁니다. 수업 5분50초쯤에 Gateway Filter를 Bean으로 하나 등록한다고 하셨는데 @Component어노테이션이 붙은 클래스의 아래의 메소드의 반환값은 자동으로 Bean으로 등록되나요? @Bean어노테이션을 붙여줘야 등록이되는 줄 알았는데 제가 잘못이해하고있었는지 궁금해서 질문을 남깁니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
07-01 선택정렮
코드보다는 알고리즘의 사용이유입니다. sort()를 사용하면 간단하게 구현 할 수 있는데, 선택정렬을 사용하는 이유가 궁금합니다.
-
미해결Atlassian Jira & Confluence 관리자 교육 (Cloud 버전)
편집권한 없은 Epic의 하위에 Task 생성(Epic Link) 방법.
팀장이 메인업무 "Epic A" 생성 후, 팀원별로 자신의 업무를 관련 메인업무 "Epic A" 하위에 "Story B" / "Task C"로 생성하고자 합니다.해당 프로젝트의 권한에서 "이슈편집 = 팀장, 보고자"로 설정되어 -- "Epic A" 생성 : 팀장. 이슈편집 권한 : 팀장 -- "Story B"/"Task C" 생성: 팀원1, 이슈편집 권한 : 팀장, 팀원1와 같습니다. 이때, 팀원1이 "Epic A" 하위에 "Story B"를 생성했으나, "Epic A"와 Link 되지 못합니다. 하나의 큰 메인업무를 Epic으로 생성하고, 팀원별로 자신의 업무를 그 하위 이슈 (Epic Link)하고 싶은데, 방법이 없을까요? 모두에게 "이슈편집" 권한을 주면 해결이 되지만, 클릭시 편집모드로 변경.... 다른 사람의 이슈 잘못 수정 등의 사유로 .. 그 방법은 피하고자 합니다. Epic을 카테고리 분류 처럼 사용하려다 보니, 위와 같은 문제가 생겼습니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
안녕하세요. Response 안쓰고 진행중입니다..
아래와 같이 코드를 작성했습니다. Response를 안쓰고 진행했는데 뉴스기사는 출력이 되지만 연예기사가 출력이 안됩니다 ㅠㅠ from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from bs4 import BeautifulSoup # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager import time import pyautogui import pyperclip import csv # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 크롬창 안뜨게 함 chrome_options.add_argument('--headless') # headless 모드 활성화 chrome_options.add_argument('--disable-gpu') # GPU 가속 비활성화 # Mozilla 웹 브라우저에서 온 것처럼 인식 / 자동화된 요청을 감지하고 차단하는 것을 우회 chrome_options.add_argument("--user-agent=Mozilla/5.0") # 불필요 메세지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) # 드라이버 업데이트 service = Service(executable_path=ChromeDriverManager().install()) # 옵션 적용 browser = webdriver.Chrome(service=service, options=chrome_options) news = pyautogui.prompt('뉴스기사 입력 >>> ') print(f'{news} 검색') # 웹페이지 해당 주소 이동 path = f'https://search.naver.com/search.naver?where=news&sm=tab_jum&query={news}' # url 대화 browser.get(path) # 네이버에서 html 줌 html = browser.page_source soup = BeautifulSoup(html, 'html.parser') articles = soup.select("div.info_group") # 뉴스 기사 div 10개 추출 for article in articles: links = article.select("a.info") if len(links) >= 2: # 링크가 2개 이상이면 url = links[1].attrs['href'] # 두번째 링크의 href 추출 # 다시 한번 받아옴 browser.get(url) html = browser.page_source soup = BeautifulSoup(html, 'html.parser') # 연예뉴스라면 -> ? div 모양이 다름 if 'entertain' in url: title = soup.select_one(".end_tit") content = soup.select_one('#articeBody') else: title = soup.select_one("#title_area") content = soup.select_one('#dic_area') # 해당 링크 본문의 아이디값 가져옴 print("=============링크==========\n", url) print("=============제목==========\n", title.text.strip()) print("=============내용==========\n", content.text.strip()) time.sleep(0.7) print('\nDvlp.H.Y.C.Sol\n') 출력은 이렇게 나옵니다.=============링크========== https://n.news.naver.com/mnews/article/382/0001075938?sid=106Traceback (most recent call last): File "c:\Users\cksth\OneDrive\바탕 화면\Career\크롤링\심화\02.연예뉴스.py", line 71, in <module> print("=============제목==========\n", title.text.strip())AttributeError: 'NoneType' object has no attribute 'text
-
미해결최반장의 엑셀 피벗테이블 마스터 클래스
실습용 파일 부탁드립니다.
실습용 파일 부탁드립니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
try, catch 문이 애매한 이유가 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용] @Testpublic void 중복_회원_예약(){//givenMember member1 = new Member();member1.setName("spring");Member member2 = new Member();member2.setName("spring");//whentry{memberService.join(member2);fail();}catch (IllegalStateException e){assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다. ");}//then}try, catch 문을 사용하기에 애매한 이유가 정확하게 뭔지 궁금합니다. 사용하면 안되는 이유가 있나요?
-
미해결스프링부트 시큐리티 & JWT 강의
/loginForm?error가 발생하며 로그인이 안 됩니다.
4강을 수강하는 중에 생긴 오류입니다. 회원가입은 정상적으로 작동하는데 로그인을 하려고 하면 아래 사진처럼 오류가 발생합니다.강의를 여러번 돌려보며 코드는 똑같이 따라했고, 콘솔에 찍히는 것을 보면 제가 로그인 하고자 하는 username도 잘 찍힙니다. (회원 정보를 찾는 것까지는 정상적인 거 같습니다)import org.springframework.boot.web.servlet.view.MustacheViewResolver; // 이 import문에서 reactive로 하라고 하셨는데 그걸로 바꾸면 아래의 setCharset, setContentType 등에서 오류가 발생하여 servlet으로 하였습니다. import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class WebMvcConfig implements WebMvcConfigurer { @Override public void configureViewResolvers(ViewResolverRegistry registry) { MustacheViewResolver resolver = new MustacheViewResolver(); resolver.setCharset("UTF-8"); resolver.setContentType("text/html;charset=UTF-8"); resolver.setPrefix("classpath:/templates/"); resolver.setSuffix(".html"); registry.viewResolver(resolver); } }@Configuration @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { @Bean public BCryptPasswordEncoder encodePwd(){ return new BCryptPasswordEncoder(); } @Override protected void configure(HttpSecurity http) throws Exception { http.csrf().disable(); http.authorizeRequests() .antMatchers("/user/**").authenticated() .antMatchers("/manager/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_MANAGER')") .antMatchers("/admin/**").access("hasRole('ROLE_ADMIN')") .anyRequest().permitAll() .and() .formLogin() .loginPage("/loginForm") .loginProcessingUrl("/login") .defaultSuccessUrl("/"); }
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
missing script: "backend"
{ "name": "client", "version": "0.1.0", "private": true, "dependencies": { "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", "add": "^2.0.6", "axios": "^1.5.0", "react": "^18.2.0", "react-dom": "^18.2.0", "react-router-dom": "^6.16.0", "react-scripts": "5.0.1", "web-vitals": "^2.1.4" }, "scripts": { "start": "node server/index.js", "backend": "nodemon server/index.js", "test": "react-scripts test", "dev": "concurrently \"npm run backend\" \"npm run start --prefix client" }, "eslintConfig": { "extends": [ "react-app", "react-app/jest" ] }, "browserslist": { "production": [ ">0.2%", "not dead", "not op_mini all" ], "development": [ "last 1 chrome version", "last 1 firefox version", "last 1 safari version" ] } } 이게 클라이언트쪽입니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
스타트코딩님 코드 질문
스타트코딩님이 댓글에 올려주신 코드 중에새창을 바라보게 만들기라는 부분이 있는데이 코드가 없으면 정상적으로 작동되지 않더라구요.쇼핑 탭을 눌러서 새로운 탭이 생긴 것은 맞는데 원래 쇼핑 탭을 눌러서 새로운 탭이 생겼으면 새로운 탭을 바라보는 거 아닌가요?
-
해결됨
Unexpected string in JSON at position 25 에러가 뜹니다.
[인프런x코드캠프] 부트캠프에서 만든 고농축 백엔드 코스에서 섹션22에 03-03 수업중// const express = require("express"); // 옛날방식 => commonjs import express from 'express'; // 요즘방식 => module const app = express(); app.use(express.json());// 옛날에는 bodyParser 사용 app.get('/boards', function (req, res) { // 1. DB에 접속후, 데이터를 조회 => 데이터를 조회했다고 가정 const result = [ { number: 1, writer: "철수", title: "철수입니다~~", contents: "내용이에요!!!", }, { number: 2, writer: "영희", title: "영희입니다~~", contents: "영희내용이에요!!!", }, { number: 3, writer: "훈이", title: "훈이입니다~~", contents: "훈이내용이에요!!!", }, ]; // 2. DB에서 꺼내온 결과를 브라우저에 응답(response) 으로 주기 res.send(result); }); app.post('/boards', function (req, res) { // 1. 브라우저에서 보내준 데이터 확인하기 console.log(req); console.log("==============================="); console.log(req.body); // 2. DB에 접속 후, 데이터를 저장 => 데이터를 저장했다고 가정 // 3. DB에 저장된 결과를 브라우저에 응답(response) 주기 res.send("게시물 등록에 성공하였습니다."); }); app.listen(3000); 여기서 app.use(express.json()) 을 추가한후 postmasn에서 post 했을때 SyntaxError: Unexpected string in JSON at position 25 에러를 띄웁니다. 다 잘 따라 한것 같은데 왜이런걸까요 이건 터미널 에러 전문입니다.
-
미해결Airflow 마스터 클래스
맥북으로 실습 진행이 가능한지 궁금합니다.
안녕하세요, 현재 M2 macbook을 사용하고 있습니다.강의에서 윈도우 환경에 WSL을 설치한 후 그 위에 airflow를 설치하여 실습을 진행하는 것으로 이해했습니다.구글링을 좀 해보니 맥북에서도 airflow 설치는 충분히 가능한 것으로 보이는데, 만약 맥북에서 설치했다고 하더라도 뒷부분 실습과정에서 많은 차이가 있는지 궁금합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
animation 질문- 하나의 @keyframes로 특정 이벤트없이 한번, hover이벤트시 한번 적용 방법 문의.
animation 질문- 하나의 @keyframes로 특정 유저 이벤트없이 한번, 마우스 hover 이벤트시 한번 적용하는 방법 문의 드립니다. css 강의 ‘animation 실습’ 강의 40분 전후의 쇼핑몰 배너 애니매이션 코드를 변경해서 아래 코드처럼/* html 부분 */ <section class="mainBanner"> <h1 class="text">Welcome to my shop</h1> </section> /* css 부분 */ .text { font-size: 42px; font-weight: 700; color: white; text-shadow: 9px 6px 5px rgba(0, 0, 0, 0.5); animation: titleText 1s ease-in-out; } .mainBanner:hover .text { animation: titleText 1s ease-in-out; } @keyframes titleText { 0% { transform: translateY(70px); } 92% { transform: translateY(-10px); } 100% { transform: translateY(0px); } }@keyframes에 titleText란 이름으로 정의한 애니메이션을, 페이지 로드시에 1번, 마우스 hover 시 1번 재생시키려고 css를 작성했더니 로드시에만 적용되고 호버시엔 적용이 안되더군요. 그래서 아래처럼 동일 keframes를 복사 붙여넣기 하고 이름만 바꿔서 hover에 적용하였더니 잘되더군요.{ font-size: 42px; font-weight: 700; color: white; text-shadow: 9px 6px 5px rgba(0, 0, 0, 0.5); animation: titleText 1s ease-in-out; } .mainBanner:hover .text { animation: titleText2 1s ease-in-out; } @keyframes titleText { 0% { transform: translateY(70px); } 92% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } @keyframes titleText2 { 0% { transform: translateY(70px); } 92% { transform: translateY(-10px); } 100% { transform: translateY(0px); } } 이런식의 중복 css가 발생하는 비효율적인 방법말고, 하나의 @keyframes로 특정 유저 이벤트없이 한번, hover이벤트시 한번 적용하는 방법 중 html, css만으로 적용하는 방법이 없을까요?도움 부탁드립니다~
-
해결됨스프링 핵심 원리 - 기본편
No qualifying bean of type 'basic.core.member.MemberService' available 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 컴포넌트 스캔과 의존관계 자동 주입 시작하기 강의를 잘 보고 있었는데 AutoAppConfigTest 부분에서 막혀서 질문드립니다. No qualifying bean of type 'basic.core.member.MemberService' available 에러가 발생하는데요, AutoAppConfig 위치가 패키지 최상단임에도 불구하고 해당 에러가 발생하고 있습니다. ㅠㅠ 어노테이션도 강의 페이지를 보고 제대로 달았는데 어떤 점이 문제인지 파악이 어려워 해당 코드 구글 드라이브 업로드합니다. 감사합니다. https://drive.google.com/file/d/1hwrIzJPo6PIdTQ5ACj4PBrIOzOXhDbdK/view?usp=sharing
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
DiaryItem에 있는 onRemove, onEdit, 는 바뀔 수밖에 없지 않나요?
20번째 다이어리를 삭제하는 경우 data 가 바뀌기에onRemove 함수가 재랜더링이 되기에 => DiaryItem 컴포넌트 내부에 있는 props 가 변경되는 원리로 이해가 되어요 ㅜㅜ onEdit 도 마친가지구요. onCreate 함수는 에디터와만 상관이 있어서 다이어리아이템과 상관이 없다는게 이해 갑니다.
-
미해결그림으로 배우는 쿠버네티스(v1.30) - {{ x86-64, arm64 }}
현업에서는 컨테이너 어떤걸 가장 많이 쓰나요?
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 전 답변]1. 강의에서 다룬 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 법을 읽어보셨나요? 예 (https://www.inflearn.com/blogs/1719)4. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.5. vagrant up 에서 발생하는 문제는 주로 호스트 시스템(Windows, MacOS)과 연관된 다양한 조건에 의해 발생합니다. 따라서 이를 모두 제가 파악할 수 없어서 해결이 어렵습니다. vagrant up으로 진행이 어렵다면 제공해 드리는 가상 머신(VM) 이미지를 import해서 진행하시기 바랍니다. (https://www.inflearn.com/questions/992407/comment/281901)6. ARM 계열의 m1 , m2 계열은 VirtualBox를 통한 구성이 원할하지 않고, 실습 환경의 다변화는 추후 대처하기 어려워서 현재 과정에서는 지원하지 않습니다. (https://www.inflearn.com/questions/915529) [질문 하기]F사 강의 CI/CD 강의를 듣고 있는데..도커 를 열심히 듣고 있습니다.쿠버네티스, v1.20부터 도커 지원 중단 그래도 도커를 많이 쓰는가요? 아니면containerd, CRI-O 둘 중에 어느 걸 많이 쓰는지 궁금합니다.
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
네이버맵 크롤링 오류
안녕하세요 덕분에 크롤링 강의를 공부할 수 있었고 그 후 네이버맵 식당관련정보를 크롤링하려고 하는데 문제가 생겨 고생고생하다가 질문글을 남깁니다!데이터가 많아 구글링을 통해 멀티프로세싱으로 여러창을 띄워서 크롤링을 할 수 있었는데요if __name__ == "__main__": start_time = time.time() num_cores = 6 pool = multiprocessing.Pool(num_cores) # 검색어 배열 keywords = ['서울숲 식당', '건대 식당', '성수 식당', '홍대 식당', '신촌 식당', '이대 식당', '상수 식당', '합정 식당', '한남 식당', '명동 식당'] pool.map(get_data,keywords) pool.close() pool.join() # print(" ----------------------------------------- ") # print(" 실행 소요 시간 : 단위(초) ") # print(" ----------------------------------------- ") # print(time.time() - start_time) # print(" ----------------------------------------- ") conn.close()이런식으로 메인함수를 작성하고 get_data함수는 def get_data(keyword): browser = webdriver.Chrome() table_nm = "" type = '' URL = 'https://map.naver.com/v5/search/' + keyword print(URL) browser.get(URL) browser.implicitly_wait(10) browser.maximize_window() # iframe(searchIframe) 전환 switch_frame("searchIframe",browser) # iframe 안쪽을 한번 클릭하기 browser.find_element(By.CSS_SELECTOR,"#_pcmap_list_scroll_container").click()키워드를 받아 해당위치 식당을 검색하고 그 후 크롤링을 이어나가는 상황입니다.그런데 여러창이 띄워져서 처음에 https://map.naver.com/v5/search/홍대 식당이런식으로 들어가면 자동화된 크롬창에서 정보들이 뜨지 않는 문제를 겪고 있습니다 구글링해봐도 저와같은 문제상황을 찾지 못했습니다 도와주시면 정말 감사하겠습니다!!
-
미해결[초중급편] 안드로이드 데이팅 앱 만들기(Android Kotlin)
CardStackView 를 쓰려면 반드시 이전버전을 사용해야되나요?
인프런질문이전버전 설치 유튜브저도 같은 문제인데 꼭 이전버전으로 사용해야되는건가요?저는 최신버전인 Android Studio Giraffe | 2022.3.1버전 사용하고있는데 노션에 쓰여있는 해결방안인implementation("com.yuyakaido.android:card-stack-view:2.3.4") // cardView을 추가했음에도 이런식으로 적용이 안됩니다! 이전버전을 설치하는거 말고는 방법이 없을까요?
-
미해결
섹션4. 템플릿메소드패턴에 관한 질문
강의를 듣다가 이해가안가는부분이 있어 질문합니다. 강의중에 Controller c1 = new FirstController(); 가 있고 FisrstControlelr 클래스에서는 run();이라는 메소드가 선언이되어있습니다. 처음 선언할때 부모클래스만 사용하도록 생성자를 선언했는데 추상클래스상속를 해버리게되면 FirstController의 기능을 사용안하겠다고 했는데 추상클래스상속을 통해서 기능을 사용하게되버리니 모순이 되버리는거 아닌가요? 왜그런지 설명부탁드리겠습니다
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
파이썬 코드 실행/pip 오류 등
안녕하세요, 저번에 친절하게 답변해주셔서 감사합니다. 강의 수강 중에 크롤링 코드를 작성 후, 정상 작동을 확인한 다음에 다른 PC에서 파이썬/Visual Studio Code를 설치하여 파일을 실행했는데,정상적으로 크롤링이 작동하지 않는 오류가 발생했습니다 ㅜㅜ 처음에는 라이브러리 설치를 전부 진행했었는데,아래와 같은 오류가 발생했었습니다 [현재는 해결된 현상] import 모듈(?) 오류import requests 를 작성하면 requests 부분이 초록색이 되어야 하는데, 흰 글씨가 되는 현상 pip install --upgrade 오류해당 명령어를 사용하면 upgrade가 진행되지 않고,ERROR : You must give at least one requirement to install (see "pip help install") 이라는 문구만 출력됩니다.(혹시 몰라서 원래 잘 되던 기존 PC에 입력해보니까 다른 명령어로 쓰라면서 notice가 출력됐었습니다. 기존 PC에서는 아무런 설명도 없이 오류만 떠요ㅜㅜ) 일단 기본적으로 코드를 실행하면 크롤링 후에 엑셀 파일이 생성되어야 하는데 결과적으로는 안 됩니다..혹시 도움을 받을 수 있을까요? 현재까지 시도해 본 것들 1) Python , Visual Studio Code 삭제 및 재설치 , 윈도우 버전 확인 등 2) Python 환경 변수 설정 (기존 PC에는 따로 환경 변수 설정을 하지 않아도 잘 작동하는 점 확인) 3) Visual Studio Code 재실행, 컴퓨터 재부팅 4) cmd 에서 Python 정상 설치 확인 5) pip 삭제 후 재설치 진행 (upgrade는 못한 상태 6) 기존 PC와 현 PC의 코드 크로스 체크 (특이사항 없음 확인)
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
5-B 메모리초과
안녕하세요 선생님문제를 풀던 중 궁금한 내용이 생겨서 질문 드립니다.#include<bits/stdc++.h> using namespace std; string str; string bstr; stack<char> st; int flag; int main() { cin >> str >> bstr; for (int i = 0; i < str.length(); i++) { st.push(str[i]); if (st.size() >= bstr.size() && st.top() == bstr[bstr.length() - 1]) { // 마지막이랑 똑같으면 string istr = ""; for (int a = 0; a < bstr.length(); a++) { istr += st.top(); st.pop(); } reverse(istr.begin(), istr.end()); if (istr != bstr) { for (int b = 0; b < istr.length(); i++) { st.push(istr[b]); } } } } str = ""; if (st.size() == 0) { cout << "FRULA" << "\n"; } else { while (st.size()) { str += st.top(); st.pop(); } reverse(str.begin(), str.end()); cout << str << "\n"; } return 0; } 제가 처음으로 작성한 코드입니다.for(char a : str) st.push(a) 같이 범위 기반 for문 대신for (int i = 0; i < str.length(); i++) st.push(str[i]) 같이 원래의 for문 방식을 사용했다가메모리 초과 오류를 겪었습니다.두 방법이 어째서 메모리 차이가 많이 나는지 궁금합니다!항상 감사합니다 좋은 하루 되세요 :)