inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

네이버쇼핑(닭가슴살) 크롤링

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

안녕하세요 스타트코딩님! 수업 잘 듣고 있는 학생입니다. 질문이 있어 글 남깁니다. 수업 듣기 전에 혼자 해볼 때 저는 soup를 사용하지 않고 find_element를 사용해서 이렇게 코드를 작성했는데 뭐가 다른 걸까요? from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import time import pandas as pd driver = webdriver.Chrome() driver.get('https://search.shopping.naver.com/search/all?query=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4') # 스크롤 전 높이 last_height = driver.execute_script('return document.body.scrollHeight') while True: # 스크롤 끝까지 내리기 driver.execute_script('window.scrollTo(0, document.body.scrollHeight)') # 대기 시간 줘야됨 !!! time.sleep(1) # 스크롤 후 높이 after_height = driver.execute_script('return document.body.scrollHeight') # 비교 (if, break) if last_height == after_height: break # 스크롤 전 높이 업데이트 last_height = after_height products = driver.find_elements(By.CSS_SELECTOR, '.product_item__MDtDF') data = [] for product in products: name = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K').text link = product.find_element(By.CSS_SELECTOR, '.product_title__Mmw2K > a').get_attribute('href') price = product.find_element(By.CSS_SELECTOR, '.price_num__S2p_v').text.split('원')[0].replace(',', '') data.append([name, link, int(price)]) df = pd.DataFrame(data, columns = ['상품명', '상세페이지링크', '가격']) df.to_excel('네이버쇼핑.xlsx')

  • python
  • 웹-크롤링
codingchoding 댓글 1 좋아요 1 조회수 85

혹시 백엔드서버를 종료해도 에러가 뜨지안고 정상가동되면 어떻게해야하나요?

해결됨

한 입 크기로 잘라먹는 Next.js

혹시 백엔드서버를 종료해도 에러가 뜨지안고 정상가동되면 어떻게해야하나요?.. 당황스럽네요 하하 아 캐싱문제네요 강제 새로고침으로 해결했습니다. 감사합니다. 음 아니네요 여전히 이상하네요.. 전 이상하게 Footer에서 먼저 에러가 나네요. force cache가 되어있음에도.. 왜그럴까요?ㅜㅜ

  • react
  • typescript
  • next.js
codingforfun 댓글 2 좋아요 1 조회수 487

변수명에 $ 허용하나요?

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

변수명에 달러표시나 다른 특수문자를 허용하신다고 했는데 _은 오류가 뜨지 않는데 달러표시는 자꾸 오류가 뜨네요 어떤 것이 문제일까요...ㅜㅜ

  • python
hapeter10 댓글 2 좋아요 0 조회수 116

강의 2.8을 듣고 있는 도중 use client에 대해서

해결됨

한 입 크기로 잘라먹는 Next.js

use client 가 선언되지 않아도 searchable-layout.tsx 에서 useEffect 가 동작 하는 이유는 무엇인가요? 제가 알기론 이런 클라이언트사이드 훅들은 use client를 최상위에 선언해줘야 동작한다고 이해했었습니다..

  • react
  • typescript
  • nextjs
Seungjoo Lim 댓글 2 좋아요 0 조회수 177

axios post 사용할때 페이지 새로고침 문제

미해결

React 완벽 마스터: 기초 개념부터 린캔버스 프로젝트까지

Home.jsx 이렇게 하고 import { useEffect, useState } from 'react'; import HomeDataLength from '../components/HomeDataLength.jsx'; import HomeSearch from '../components/HomeSearch.jsx'; import CanvasItemList from '../components/CanvasItemList.jsx'; import SearchBar from '../components/SearchBar.jsx'; import GridFlexBTN from '../components/GridFlexBTN.jsx'; import { deleteHome, createHome, getHome } from '../api/home.js'; import { v4 as uuid } from 'uuid'; import dayjs from 'dayjs'; export default function Home() { const [isGrid, setIsGrid] = useState(true); const [search, setSearch] = useState(''); const [data, setData] = useState([]); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(false); useEffect(() => { const api = async () => { setIsLoading(true); setError(false); try { const response = await getHome(''); setData(response.data); } catch (err) { setError(err); } finally { setIsLoading(false); } }; api(); }, []); const [isLoadingCreate, setIsLoadingCreate] = useState(false); const [createError, setCreateError] = useState(false); // 등록버튼 누르면 새로운 데이터 저장 const handleNewCreate = async () => { // setIsLoadingCreate(true); // setCreateError(false); // try { const id = uuid(); const newCreate = { id, date: dayjs().format('YYYY-MM-DD HH:mm:ss'), text: `${id.substring(0, 4)}-테스트`, category: '테스트', }; await createHome(newCreate); console.log(123); // const res = await getHome(); // setData(res.data); // } catch (err) { // setCreateError(err); // console.log(createError, 'createError'); // } finally { // setIsLoadingCreate(false); // } }; const handleText = text => { const searchData = data.filter(d => d.text.toLowerCase().includes(text.toLowerCase()), ); if (searchData.length === 0) { setSearch(null); } else { setSearch(searchData); } }; const handleDelete = async id => { // const newData = data.filter(d => d.id !== id); // setData(newData); await deleteHome(id); }; return ( <> <> <div className="flex flex-col md:flex-row justify-between items-center"> <button className="hover:bg-blue-400 bg-blue-500 text-white rounded-md text-bold p-3" onClick={handleNewCreate} > 등록하기 </button> {isLoadingCreate && <p>등록중</p>} {createError && <p>{createError}</p>} <SearchBar handleText={handleText} /> <GridFlexBTN setIsGrid={setIsGrid} isGrid={isGrid} /> </div> <HomeDataLength data={data} error={error} isLoading={isLoading} /> <HomeSearch search={search} /> {!isLoading && !error && ( <CanvasItemList data={data || []} search={search} isGrid={isGrid} handleDelete={handleDelete} /> )} </> </> ); } home.js 파일은 아래와 같은 상태이면 import { home } from './http'; // 목록 조회 export const getHome = () => { return home.get('/'); }; // 등록 export const createHome = newCreate => { try { console.log('ㅅㅣ작'); } catch (error) { console.log('에러'); } finally { console.log('종료'); } // debugger; return home.post('/', newCreate); }; // 수정 // 삭제 export const deleteHome = id => { return home.post('/', id); }; db는 server-json을 사용하고 있습니다. 그런데 get 요청을 할때는 잘 작동하는데 post로 등록하거나 삭제할때는 db에 정상 등록, 삭제되는데 화면이 새로고침이 되버리는 상태입니다. Home.jsx 화면이 리렌더링이 되도록 하고싶은데 새로고침은 왜 그런지 모르겠습니다. postman으로도 post로 db에 저장했는데 리액트 화면이 자동으로 새로고침 되버립니다. 구글링도 해봤는데 해결이 안되서 문의드립니다. 혹시나 해서 db.json이 변경되면 화면도 변경될까 싶어서 을 db.json --watch로만 해보고 --watch도 없애봤는데 안됩니다. const handleNewCreate = async () => { console.log('시작1'); const id = uuid(); const newCreate = { id, date: dayjs().format('YYYY-MM-DD HH:mm:ss'), text: `${id.substring(0, 4)}-테스트`, category: '테스트', }; const data = await createHome(newCreate); console.log(data, 'data'); console.log('시작2'); debugger; }; debugger를 사용했을때 이렇게 데이터 나오는데 디버거 끄는 순간 바로 화면이 새로고침 되고 있습니다. 그리고 콘솔창도 새창으로 이전 내역이 다 사라지는 상태입니다.

  • react
  • React-Context
  • react-router
  • tailwindcss
  • react-query
밈몀묘 댓글 2 좋아요 0 조회수 252

위니브월드 맞게 코드를 짠거같은데 왜 오답일까요?

미해결

위니브월드 탐험대 - 게임으로 배우는 파이썬

mission_start()move() pick() move() pick() move() pick() move() pick() turn_left() turn_left() repeat(2, move) repeat(2, move) turn_left() turn_left() say('hello, world!') mission_end()mission_start() move() pick() move() pick() move() pick() move() pick() turn_left() turn_left() repeat(2, move) repeat(2, move) turn_left() turn_left() say('hello, world!') mission_end() 이렇게 제출하였는데 오답이라네요ㅠㅠ왜그런거죠?

  • python
김유나 댓글 0 좋아요 0 조회수 83

크롤링 결과 값이 달라요

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

제가 RISS 크롤링 강의를 듣는데 저는 강사님과 다르게 결과물이 하나밖에 안 뜨는데 왜 그런지 잘 모르겠습니다. 이런식으로 한개 밖에 안 뜨네요. 파이썬에 import requests from bs4 import BeautifulSoup param = { 'isDetailSearch': 'N', 'searchGubun': 'true', 'viewYn': 'OP', 'strQuery': '패션 인공지능', 'order': '/DESC', 'onHanja': 'false', 'strSort': 'RANK', 'iStartCount': 0, 'sflag': 1, 'isFDetailSearch': 'N', 'pageNumber': 1, 'resultKeyword': '패션 인공지능', 'icate': 're_a_kor', 'colName': 're_a_kor', 'pageScale': 10, 'isTab': 'Y', 'query': '패션 인공지능', } response = requests.get(" https://www.riss.kr/search/Search.do ?", params=param) html = response.text soup = BeautifulSoup(html, 'html.parser') articles = soup.select (".srchResultListW > ul > li") # 헤더가 필요한 경우 header = { 'User-Agent' : 'Mozilla/5.0', 'Referer' : ' https://www.riss.kr/search/Search.do?isDetailSearch=N&searchGubun=true&viewYn=OP&queryText=&strQuery=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5&exQuery=&exQueryText=&order=%2FDESC&onHanja=false&strSort=RANK&p_year1=&p_year2=&iStartCount=0&orderBy=&mat_type=&mat_subtype=&fulltext_kind=&t_gubun=&learning_type=&ccl_code=&inside_outside=&fric_yn=&db_type=&image_yn=&gubun=&kdc=&ttsUseYn=&l_sub_code=&fsearchMethod=&sflag=1&isFDetailSearch=N&pageNumber=1&resultKeyword=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5&fsearchSort=&fsearchOrder=&limiterList=&limiterListText=&facetList=&facetListText=&fsearchDB=&icate=re_a_kor&colName=re_a_kor&pageScale=100&isTab=Y&regnm=&dorg_storage=&language=&language_code=&clickKeyword=&relationKeyword=&query=%ED%8C%A8%EC%85%98+%EC%9D%B8%EA%B3%B5%EC%A7%80%EB%8A%A5 ' } for article in articles: title = article.select _one(".title > a").text link = ' https://www.riss.kr/ ' + article.select _one(".title > a").attrs['href'] # 상세 페이지 요청 response = requests.get(link, headers=header, verify=False) html = response.text soup = BeautifulSoup(html, 'html.parser') press = soup.select _one(".infoDetailL > ul > li:nth-of-type(2) > div").text year = soup.select _one(".infoDetailL > ul > li:nth-of-type(5) > div").text print(title, link, press, year) 이렇게 했는데 왜 저는 결과물이 하나밖에 안나오는지 못찾겠어요..!

  • python
  • 웹-크롤링
prayerwung 댓글 2 좋아요 0 조회수 137

가장 큰 위젯의 너비와 같은 너비를 차지하는 2열 짜리 컬럼

미해결

[Level 1] Qt를 이용한 Python 프로그래밍: 입문편

안녕하세요. 강의를 듣고 pyside로 데스크톱 어플리케이션을 만들고 있는 중에 있습니다. QGridLayout 안에 위젯들을 2열로 배치하였는데요, 이 위젯들이 위젯 아이템들 중 가장 너비가 넓은 것에 맞춰 같은 너비를 차지하면서도 위젯들이 윈도우 전체를 차지하지 않는(=커지거나 작아지지 않는) 방법이 있나요..? 생각보다 어려워서 며칠 째 끙끙대다 결국 질문남겨봅니다.

  • python
  • gui
  • qt
  • qml
  • pyside6
monkey-k 777 댓글 2 좋아요 1 조회수 292

문자열 슬라이싱 질문입니다.

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

str = 'Nice Python' print(str[::-2]) <- 이거의 출력값이 nhy cN인 이유가 궁금합니다. 제 생각으로는 -2 간격이므로 otPei가 나와야할 것 같은데 n으로 시작하는 이유가 궁금합니다.

  • python
댓글 1 좋아요 0 조회수 73

배포 환경에서 fetch 오류

미해결

한 입 크기로 잘라먹는 Next.js

실제 https로 배포된 API를 fetch를 활용하여 SSR을 구현하고있습니다. 문제는 local에서는 yarn build -> yarn start 하고 테스트를 진행하면 fetch가 정상적으로 작동합니다. 하지만 AWS Amplify를 활용하여 Next JS를 배포하고 배포한 사이트에서 fetch(pending 이후에 catch로 빠짐)가 작동하지않습니다. API에 문제가 있나해서 다른 API를 CSR로 테스트를 해보면 정상적으로 200이 됩니다. 원인이 뭘까요?

  • react
  • typescript
  • next.js
brh1243 댓글 2 좋아요 0 조회수 220

static 페이지vs 다이나믹 페이지

해결됨

한 입 크기로 잘라먹는 Next.js

폴라우트 페이지 2를 보면서 / 인덱스페이지가 강사님은 static 페이지가 아닌 다이나믹 페이지로 빌드가 되는 부분에서 강사님은 fetch에 force-cache를 적용시키면서 이제 다이나믹된 페이지를 static 페이지로 바꾸셨느데 일단 저는 force-cache 옵션을 적용을 안해도 static 페이지이더라구요 강사님과 저랑 다른 점은 api호출하는 함수 부분을 따로 api 폴더에 빼둔거 말고는 다른 점은 없습니다 . 이렇게 따로 빼놓은 뒤 그냥 promis.all로 데이터 패칭을 해서 그대로 화면에 보여줬습니다 (이것저것 시험하느라 Allbook ,RandomBook 컴포넌트를 따로 빼지는 않은 상태입니다. ) export default async function Home() { const [allBooks, randomBooks] = await Promise.all([ fetchBooks(), fetchRandomBook(), ]); 저는 force-cache 를 적용안햇는데도 왜 다이나믹 페이지가 안되고 static 페이지가 되는걸까요 ...

  • react
  • typescript
  • next.js
aso 댓글 2 좋아요 3 조회수 293

2024년 1회 기출 23:10 질문 자바실행순서

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

Parent 클래스가 자료형 Child 클래스가 생성자로 // 업캐스팅 이름이 parent 인 객체를 만들었는데 parent.x parent.y 를 했을경우 값이 어떻게 출력돼나요? 변수x는 부모랑 자식에 둘다 있어서 모르겠습니다 상속을 받는 경우 , 기능(매서드)을 상속받고 변수들은 어떻게 되는건가요? Static 처럼 타입형을 참조하는건가요?

  • python
  • java
  • c
  • 정보처리기사
강범준 댓글 2 좋아요 0 조회수 182

이론 통합 요약본 sql과 조인 정리 페이지에서

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

ddl dml dcl 부분에서 dcl이 리보크랑 그란트가 들어가는걸로 아는데, tcl 부분이 나온거 같아 오타인지 문의드립니당

  • python
  • java
  • c
  • 정보처리기사
고동철 댓글 2 좋아요 0 조회수 170

제가 뭐 건들었는지 안되네요 이유를 알 수 있을까요?

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

// CssModulePage.jsx import styles from "./styles.module.css"; export default function CssModulePage() { return ( <> <button className={styles.버튼스타일}>버튼</button> <div className={styles.네모상자스타일}>네모상자</div> </> ); } .버튼스타일 { background-color: yellow; } .네모상자스타일 { width: 200px; height: 200px; } Server Error Error: The default export is not a React Component in "/section04/04-03-css/page"

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
이 규성 댓글 5 좋아요 0 조회수 316

강의 타임 질문입니다

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

영상이 18분쯤 마무리 되는 것 같은데 영상길이가 87분으로 검은화면만 노출됩니다 확인 부탁드려요!

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
baby4 댓글 2 좋아요 0 조회수 96

viewPath설정의 오류인가?, 아니면 그저 컴퓨터 오류인가

미해결

스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술

안녕하세요 다른 질문들 보면서 저와 비슷한 것은 알겠지만 저와 다른 것 같아 여기 질문드려봅니다 제가 작성한 코드 : https://drive.google.com/file/d/1QYZwvaOXezKHGvpeHLRoYj9Z6e_OQPP1/view?usp=drive_link 여기서 http://localhost:8080/front-controller/v1/members/new-form 주소로 구글크롬을 이용해 접근을 하게 되면 저는 이렇게 표시가 됩니다 강의를 보면서 오류가 생겨 정말 며칠간 이것저것 코드도 다시 작성해보고 했는데 어느순간부터 이게 되질 않네요; 이부분의 1번의 FrontControllerServletV1 이부분의 각 put이 제대로 동작하지 않는 것 같다고 지금 혼자 결론을 냈고, 디버깅도 해보려 노력했지만 생각처럼 되질 않습니다 어지간하면 질문 안하고 혼자해보는 사람인데 너무 삽질을 많이하고 있어 질문드려봅니다 제 설명이 부족했다면 바로 추가드리겠습니다! 질문 요약 코드대로 스프링을 실행하고 주소로 접근하면 왜 form이 안나오고 오류창이 뜨는지가 궁금 + 각 viewPath가 틀린게 아닌가 라는 gpt의 말이 있었지만 아시다시피 gpt가 헛소리를 많이하는 탓에 잘 모르겠습니다. v1, v2, v3 모두 정상작동해서 v5까지 다시 해볼 수 있도록 부탁드립니다.

  • spring
  • mvc
yh-jeong 댓글 2 좋아요 0 조회수 171

트랜잭션과 관련된 질문입니다!

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. "JPA 사용 시 주의해야할 점은, 항상 “트랜잭션”이 있어야 한다" 라고 해주셨는데, 그 말의 의미가 애플리케이션 서버가 DB 서버에 연결해서 데이터 관련 작업(쿼리를 날리는 등)시 무조건 트랜잭션이 필요하다는 말인가요? 즉, JPA가 아닌 JDBC Template을 사용하더라도 무조건 DB와의 데이터 관련 작업 시 “트랜잭션”이 있어야 하나요? 어떤 메서드엔 @Transactional이 없어도 되었고 어떤 메서드엔 필요했던 기억이 있어서 여쭤봅니다! 그리고, 트랜잭션이 걸려있을 때 애플리케이션에서 DB 서버로 쿼리를 날릴 때, "트랜잭션이 실행되고 DB에 쿼리가 날라가고 commit이 되서 DB에 데이터가 들어가는 순서" 일까요?

  • java
  • spring
  • mvc
  • spring-boot
ajdsasld 댓글 1 좋아요 0 조회수 152

JPA와 관련된 질문입니다~

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 1)JPA를 사용하기위해 도메인 클래스에 @Entity나 @Id, @GeneratedValue를 달다가 확인하게 되었는데, 강의에선 javax.persistence.Id 이건데, 저는 지금 jakarta.persistence.Id 에 있는 애노테이션이었습니다. 그래서 궁금한 게 javax와 jakarta가 정확히 무엇이고, 일반 java랑 어떤 차이가 있는 개념인지도 궁금합니다! 그리고 javax는 지금은 jakarta로 바뀐걸로 이해하면 되겠죠? 2)아래에 있는 JPA 예시 코드에서 setParameter(~~)의 역할이, 메서드의 인자로 받은 name을 setParameter로 넣어주면, 그게 쿼리의 where 조건의 값으로 들어가는 게 맞을까요? @Override public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream ().findAny(); } 3)QueryDsl을 사용하면 동적 쿼리를 더 잘 다룰 수 있다고 해주셨는데 동적 쿼리와 정적 쿼리의 차이점이 제가 이해하고 있는 게 맞을까요? 정적 쿼리 : findByName처럼 항상 같은 조건의 쿼리 동적 쿼리 : 검색 조건에 따라, 조건이 동적으로 바뀌는 쿼리 ex)이름 검색, 나이 검색 등등

  • java
  • spring
  • mvc
  • spring-boot
ajdsasld 댓글 1 좋아요 0 조회수 125

AOP 관련 질문입니다~

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. AOP를 사용하면, 스프링이 뜨고 스프링 컨테이너에 예를 들어 MemberService 클래스의 객체가 스프링 빈으로 등록될 때, 가짜인 프록시 객체와 실제 객체 이렇게 2개가 다 등록이 되는 거라고 이해하면 될까요? 그래서, 처음에는 등록된 빈끼리 의존성을 주입할 땐 가짜 프록시 객체가 사용되다가, joinPoint.proceed() 메서드가 호출될 때 실제 객체가 호출되어서 사용되는 건가요?

  • java
  • spring
  • mvc
  • spring-boot
ajdsasld 댓글 1 좋아요 0 조회수 120

%s 출력 옵션 질문

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

안녕하세요. %s 형식으로 출력할때에는 나머지 자리를 공백이 아닌 다른 문자열로 대체해서 출력하는 옵션이 존재할까요? print('%10s' %('nice')) -> 나머지 자리 공백으로 표시 -> %s형식으로 출력할때에도 아래 옵션처림 남는차리를 특정 문자열로 채울 수 있는지 궁금합니다. print('{:_>10}'.format('nice')) -> 남는자리 _으로 표시 감사합니다.

  • python
rlatpgus1324 댓글 1 좋아요 0 조회수 92

인기 태그

인프런 TOP Writers

주간 인기글