묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
findviewbyid가 실행되지 않습니다.
사진 클릭시 확대 기능 구현을 따라하던 중 findviewbyid를 입력했는데 호출해오지 못하는 것 같습니다 해결법이 따로있나요?
-
미해결[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
g마켓 모바일 크롤링 가능한가요?
pc는 가능한데 모바일은 안되서 모바일 사이트는 크롤링 할때 다른 팁이 있는지 궁금합니다.http://browse.gmarket.co.kr/m/search?keyword=%EB%8B%AD%EA%B0%80%EC%8A%B4%EC%82%B4
-
미해결스프링 핵심 원리 - 기본편
싱글톤 컨테이너 질문드립니다!;
안녕하세요!! @Configuration과 싱글톤 강의를 보면 configurationTest 메소드에서 memberserviceimpl와 orderserviceimpl의 두 메소드의 getMemberRepository를 호출하면 결국 주소값이 같아야 하는데 저는 두개 다르게 나옵니다.. 코드를 동일하게 작성했는데 왜 결과가 다르게 나올까요ㅠㅠㅠ? 스프링컨테이너에서 싱글톤 패턴을 유지해주는걸로 알고있는데 결과가 제꺼는 매번 새롭게 인스턴스를 생성한것으로 나오네요 ㅜㅜ
-
미해결Slack 클론 코딩[실시간 채팅 with React]
회원가입 페이지 모달관련 질문
회원가입 페이지를 구현하면서 실패시 SignupError를 모달에 props로 전달하려고합니다.근데 다음과 같이 모달에서 바인딩 요소 'string'은 암시적으로 'any' 유형을 가진다고 에러가 발생하는데해당 이유에 대해서 궁금해 질문드립니다.참고자료 함께 첨부하겠습니다. pages/signupconst [signupError, setSignupError] = useState(''); axios .post('/api/users', { email, nickname, password, }) .then(response => { console.log(response); setSignupSuccess(true); }) .catch(error => { console.log(error.response); setSignupError(error.response.data); }); console.log(email, nickname, password); } {signupError && <Error error={signupError} />} components/modalimport React from 'react'; const Modal = ({ error: string }) => { return ( <ModalWrapper> <header>Error!</header> <div>{error}</div> <ModalBtn>확인</ModalBtn> </ModalWrapper> ); }; export default Modal; 에러 로그
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
자료구조 관련 추가 강의 문의
지금 현재 5.3.3 힙 ~ 5.3.6 셋 부분의 강의가 없는데 언제쯤 추가될 지 궁금합니다.
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
안녕하세요~~ 레디슨관련 질문 드립니다!
레디슨을 이용하여 락을 획득할 때lock.tryLock 메서드 내부에서 현재 lock 이 걸려있는 상태이면 여기서 wait 상태로 스레드를 기다리는 상황인 건가요?그렇다면 available의 결과가 false 가 된 상태는락을 계속 얻으려고 시도하다가 결국 못받은 상황이라고 이해해도 될까요?마지막으로 지금은 void 로 레디스 테스트를 위해 리턴값은 따로 지정하지 않았는데 만약 실무에선 해당 상황에선 보통 어떤 값을 리턴해주는게 좋을까요? 추가로..개인적인 프로젝트에 해당로직을 사용하여 레디슨으로 Lock 을 건 상태에서 동일하게 테스트 코드를 작성하였습니다.초기 전체 카운트를 저장한 후에 스레드 내부에서 동일한 수량으로 감소하는 로직으로 작성하였지만,스레드 내부에서 findBy 한 엔티티의 수량이 모두 초기값으로 동일하게 나타나는 현상이 나타났습니다.. 이럴경우 lock이 제대로 이뤄지지 않은 상태로 된것일까요 아니면 스레드 테스트 환경을 잘못 작성한 것일까요... 추가 질문에 대한 개인적인 해결방안을 찾았습니다.. 레디슨 락에대한 메서드에 Transactional 어노테이션을 작성했더니 위처럼 동작하는군요... Transactional 어노테이션이 Redisson에 어떤 영향을 주었던 걸까요...
-
미해결AWS Certified Cloud Practitioner 자격증 준비하기
실전 문제 풀이 9-38 정답 표기 오류
실전 문제 풀이 9의 38번 문제의 정답이 잘못된 것 같습니다.회사는 Amazon EC2 인스턴스에 대해 최적화된 가격을 원합니다. 이러한 인스턴스에서 실행되는 애플리케이션은 중단을 허용할 수 없으며 워크로드는 최소 1년 동안 작동 상태를 유지해야 합니다. 사는 이러한 요구 사항을 충족하기 위해 어떤 구매 옵션을 사용해야 합니까? (2개를 선택하십시오.)(A). 예약 인스턴스 (B). 스팟 인스턴스 (C). AWS Marketplace 구독 (D). Saving Plan (E). 전용 호스트정답은 A, C로 표기되어 있지만 A, D가 맞는 것 같습니다.
-
미해결그림으로 배우는 자바, 파트1: 입문!
안녕하세요 다시 질물드립니다 ㅠㅠ
우선 정답사진입니다 선생님의 동영상 강의에는위 cube(int n) 부분에(int num)을 넣으셧습니다그리고 아래 그림처럼저는 a를 넣었습니다그래도 잘 작동하는데public static이 아예 달라서매개변수에 어떤거를 넣든 상관이 없는건가요??그리고 이건 선생님 답지를 보기전에제 나름대로 했는데 이상하게 작동했습니다그리고 main 부분의int n = 3 ; 을 4로 바꾸면맽에 출력으로4의 세제곱 =>27이렇게 나옵니다저는 main 부분의 int n = 4 가 int x = cube(n); 으로 들어가서cube 함수랑 충돌나서 오류날줄알았는데main부분의 n이 겹치는데도 왜 이렇게 되는건가요??ㅠㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
혹시 ?? 반대 연산자는 없나요?
혹시 ?? 반대 연산자는 없나요?dart 공식문서에도 if null?? 은 있지만, if true 에 해당하는 건 없는 것 같습니다.
-
미해결Flutter + Firebase로 넷플릭스 UI 클론 코딩하기 [무작정 플러터]
22.12.11 carousel_slider 문의 드려요..
pubspec.yaml에서 carousel_slider 에 버전을 줘서 해봐도import 'package: carousel_slider/carousel_slider.dart';가 오류가 나고,_CarouselImageState 클래스에서 CarouselSlider가 오류가 발생합니다 ㅜㅜ 도와주세요...
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
lazy -> 즉시로딩으로 바꿨을때 쿼리 이상하게 나가는 것
이부분에 대해 자세한 설명은 없으셨거든요근데 이부분도 쿼리가왜저렇게 나가는지 이해해볼 필요가 있는걸까요? 아니면 실무에선 저렇게 쓰지않을거기때문에 이해할필요가없을까요?간단한주문조회v2:엔티티를 dto로 변환 << 강의에서 나왔습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
웰컴페이지 코드가 혹시 어디있을까요 ... ???
Adding welcome page: ServletContext resource [/index.html] <-- 실행하면 요 로그가 뜨는데 이거 welcomepage 설정을 어떤 파일에서 했는지 도저히 안보여서 .... 혹시 알려주실 수 있을까요 ??index.html 파일을 찾는게 welcomepage = index.html 와 같은 표현을 어디서 어떻게 썼는지가 궁금해서 찾고 있었습니다 !
-
미해결홍정모의 따라하며 배우는 C++
3.7 이진수 Binary Numbers에서의 다른 동영상?
3.7 이진수 Binary Numbers 영상에서 몇번 언급하신 손으로 하는 다른 동영상은 어디에서 보는건지요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트 예외 오류
2022-12-11 20:07:11.120 INFO 5728 --- [ main] o.s.t.c.transaction.TransactionContext : Began transaction (1) for test context [DefaultTestContext@7e8dcdaa testClass = MemberServiceIntegrationTest, testInstance = hello.hellospring.service.MemberServiceIntegrationTest@236ae13d, testMethod = 중복_회원_예외@MemberServiceIntegrationTest, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@681a8b4e testClass = MemberServiceIntegrationTest, locations = '{}', classes = '{class hello.hellospring.HelloSpringApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@20bd8be5, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4a07d605, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@68746f22, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@2eea88a1, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7283d3eb, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@130f889], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]; transaction manager [org.springframework.jdbc.support.JdbcTransactionManager@193eb1ba]; rollback [true] 2022-12-11 20:07:11.845 INFO 5728 --- [ main] o.s.t.c.transaction.TransactionContext : Rolled back transaction for test: [DefaultTestContext@7e8dcdaa testClass = MemberServiceIntegrationTest, testInstance = hello.hellospring.service.MemberServiceIntegrationTest@236ae13d, testMethod = 중복_회원_예외@MemberServiceIntegrationTest, testException = org.opentest4j.AssertionFailedError: Expected java.lang.IllegalStateException to be thrown, but nothing was thrown., mergedContextConfiguration = [WebMergedContextConfiguration@681a8b4e testClass = MemberServiceIntegrationTest, locations = '{}', classes = '{class hello.hellospring.HelloSpringApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@20bd8be5, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@4a07d605, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@68746f22, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@2eea88a1, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@7283d3eb, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@130f889], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]] org.opentest4j.AssertionFailedError: Expected java.lang.IllegalStateException to be thrown, but nothing was thrown 라는 오류가 나옵니다 package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test public void 회원가입() throws Exception { //Given Member member = new Member(); member.setName("hello"); //When Long saveId = memberService.join(member); //Then Member findMember = memberRepository.findById(saveId).get(); assertEquals(member.getName(), findMember.getName()); } @Test public void 중복_회원_예외() throws Exception { //Given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //When memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2));//예외가 발생해야 한다. assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import java.util.List; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; } /** * 회원가입 */ public Long join (Member member){ validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } private void validateDuplicateMember (Member member){ memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } /** * 전체 회원 조회 */ public List<Member> findMembers () { return memberRepository.findAll(); } public Optional<Member> findOne (Long memberId){ return memberRepository.findById(memberId); } } 일단 memberserviceTest도 돌려서 확인했을때 중복 회원 예외에 대한 문제는 나오지를 않았습니다. 다른 질문들 확인했을때 메세지 뜨는게 달라서 안뜬다고 해서 그 메세지 자체 그대로 복붙했습니다. 에러에서는 그런게 보이지도 않았구요 db에 문제가 있는건가 싶어서 테이블 자체를 없앴다가 다시만들고 테스트 당시 db에 spring1이라는 이름의 데이터 한개 있습니다.이 테스트 자체가 member1이랑 member2랑 이름이 같아서 중복 회원 오류를 테스트 하는거라서 spring이라는 이름으로 겹치지 않게 할려고 일부로 데이터도 spring1으로 해놨습니다.어떤 문제때문에 지금 계속 저 오류가 뜨는건지 질문드립니다.
-
미해결배달앱 클론코딩 [with React Native]
잘못된 클라이언트 ID를 지정
1.ios/FoodDeliveryApp/Info.plist 입력<key>NMFClientId</key> <string>콘솔에서 복사한 클라이언트 아이디</string>2.Xcode의 앱-general-Bundle Identifier과 네이버 콘솔 번들 ID 동일 (잘못입력했을까봐 복사붙여넣어서도 시도해보았습니다)3. pod install --repo-update npx pod-installXcode에서 shift+cmd+k로 build clean위 사항들을 모두 시도해보았는데 ios에서만 아래 얼럿창이 발생합니다. (android는 정상동작) 오탈자 및 확인할 수 있는 사항 모두 확인하였는데 해결이 잘 안되어 질문드립니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
JSP라는게 정확히 어떤 것일까요?
제가 이해한 바로는 Java코드 내에 직접 html을 써서 view를 제공해줬는데 이게 아무래도 하나하나 치는게 불편하다보니 JSP가 등장했고 이를 통해 java에서 html을 쓰는게 아니라 html코드 내에 중요한 부분에만(for를 이용한 동적 활용이나 repository 데이터 조회 등 ?) java코드를 씀으로써 좀 더 코드를 간결하게 만들수 있다는 것 같은데 맞나요 ?? jsp와 타임리프는 둘다 뷰를 그리는 도구이다... ???
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
ErrorSummary('No MediaQuery widget ancestor found.'),에러가 뜹니다..
bool debugCheckHasMediaQuery(BuildContext context) { assert(() { if (context.widget is! MediaQuery && context.getElementForInheritedWidgetOfExactType<MediaQuery>() == null) { throw FlutterError.fromParts(<DiagnosticsNode>[ ErrorSummary('No MediaQuery widget ancestor found.'), ErrorDescription('${context.widget.runtimeType} widgets require a MediaQuery widget ancestor.'), context.describeWidget('The specific widget that could not find a MediaQuery ancestor was'), context.describeOwnershipChain('The ownership chain for the affected widget is'), ErrorHint( 'No MediaQuery ancestor could be found starting from the context ' 'that was passed to MediaQuery.of(). This can happen because you ' 'have not added a WidgetsApp, CupertinoApp, or MaterialApp widget ' '(those widgets introduce a MediaQuery), or it can happen if the ' 'context you use comes from a widget above those widgets.', ), ]); }githubs 파일만 가져와서 실행했는데 error가 나오네요..
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
배너가 불러와지지 않습니다
const express = require("express"); const cors = require("cors"); const app = express(); const models = require("./models"); const multer = require("multer"); // const upload = multer({ dest: "uploads/" }); const upload = multer({ storage: multer.diskStorage({ destination: function (req, file, cb) { cb(null, "uploads/"); }, filename: function (req, file, cb) { cb(null, file.originalname); }, }), }); const port = 8080; app.use(express.json()); app.use(cors()); app.use("/uploads", express.static("uploads")); app.get("/banners", (req, res) => { models.Banner.findAll({ limit: 2, }) .then((result) => { res.send({ banners: result, }); }) .catch((error) => { console.error(error); res.status(500).send("에러가 발생했습니다"); }); }); app.get("/products", (req, res) => { // const query = req.query; // console.log("QUERY : ", query); models.Product.findAll({ // limit: 1, // where : { } order: [["createdAt", "DESC"]], attributes: ["id", "name", "price", "seller", "createdAt", "imageUrl"], }) .then((result) => { console.log("PRODUCT : ", result); res.send({ products: result, }); }) .catch((error) => { console.error(error); res.status(400).send("에러 발생"); }); // res.send({ // products: [ // { // id: 1, // name: "농구공", // price: 100000, // seller: "조던", // imageUrl: "images/products/basketball1.jpeg", // }, // { // id: 2, // name: "축구공", // price: 50000, // seller: "메시", // imageUrl: "images/products/soccerball1.jpg", // }, // { // id: 3, // name: "키보드", // price: 10000, // seller: "그랩", // imageUrl: "images/products/keyboard1.jpg", // }, // ], // }); }); app.post("/products", (req, res) => { const body = req.body; const { name, price, seller, description, imageUrl } = body; if (!name || !price || !seller || !description || !imageUrl) { res.status(400).send("모든 필드를 입력해주세요."); } models.Product.create({ name, // name = name price, seller, description, imageUrl, }) .then((result) => { console.log("상품 생성 결과 : ", result); res.send({ result, // result : result }); }) .catch((err) => { console.error(err); res.status(400).send("상품 업로드에 문제가 발생했습니다."); }); res.send({ body, //body : body }); }); app.get("/products/:id", (req, res) => { const params = req.params; const { id } = params; // res.send(`id는 ${id} 입니다.`); models.Product.findOne({ where: { id: id, }, }) .then((result) => { console.log("PRODUCT : ", result); res.send({ product: result, }); }) .catch((error) => { console.error(error); res.status(400).send("상품 조회에 에러가 발생했습니다."); }); }); // 이미지 한개만 요청하는 경우 app.post("/image", upload.single("image"), (req, res) => { const file = req.file; console.log(file); res.send({ imageUrl: file.path }); }); app.listen(port, () => { console.log("그랩의 쇼핑몰 서버가 돌아가고 있습니다."); models.sequelize .sync() .then(() => { console.log("DB 연결 성공!"); }) .catch((err) => { console.error("DB 연결 에러 ㅠ"); process.exit(); }); }); import React from "react"; import "./index.css"; import axios from "axios"; import { Link } from "react-router-dom"; import dayjs from "dayjs"; import relativeTime from "dayjs/plugin/relativeTime"; import { API_URL } from "../config/constants.js"; import { Carousel } from "antd"; dayjs.extend(relativeTime); // 기능 확장 function MainPage() { const [products, setProducts] = React.useState([]); const [banners, setBanners] = React.useState([]); React.useEffect(function () { axios .get( //"https://daa98a8e-bcac-42e0-a0ae-c5562a66248a.mock.pstmn.io/products" // "http://localhost:8080/products" `${API_URL}/products` ) .then(function (result) { const products = result.data.products; setProducts(products); }) .catch(function (error) { console.error("에러 발생 : ", error); }); axios .get(`${API_URL}/banners`) .then((result) => { const banners = result.data.banners; setBanners(banners); }) .catch((error) => { console.error("에러 발생 : ", error); }); }, []); return ( <div> <Carousel autoplay autoplaySpeed={3000}> {banners.map((banner, index) => { return ( <Link to={banner.href}> <div id="banner"> <img src={`${API_URL}/${banner.imageUrl}`} /> </div> </Link> ); })} </Carousel> <h1 id="product-headline">판매되는 상품들</h1> <div id="product-list"> {products.map(function (product, index) { return ( <div className="product-card"> <Link className="product-link" to={`/products/${product.id}`}> <div> <img className="product-img" src={`${API_URL}/${product.imageUrl}`} /> </div> <div className="product-contents"> <span className="product-name">{product.name}</span> <span className="product-price">{product.price}원</span> <div className="product-footer"> <div className="product-seller"> <img className="product-avatar" src="images/icons/avatar.png" /> <span>{product.seller}</span> </div> <span className="product-date"> {dayjs(product.createdAt).fromNow()} </span> </div> </div> </Link> </div> ); })} </div> </div> ); } export default MainPage; Server server.jsReact index.js콘솔창 에러banners DBproducts DB차례대로 첨부해드렸습니다.도저히 안되어서 선생님 코드를 복붙까지 했는데 안되네요ㅠㅠ 도와주세요..
-
미해결성공적인 진짜 iOS 개발자 되기 [기초부터 실무까지]
환율 계산기 앱 - 네트워크처리1
[Assert] UINavigationBar decoded as unlocked for UINavigationController, or navigationBar delegate set up incorrectly. Inconsistent configuration may cause problems.강사님, 해당 에러 확인되셔서 수정되었을까요? 강의 처음부터 수강하려고 하는데 염려되는 부분이라 이렇게 문의글 남기게 되었습니다.Ventura, Xcode 14에서도 강의 원할하게 수강할 수 있게 가이드 부탁드립니다.
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
[Instance of 'ScheduleWithColor'] 를 print로 찍어볼순 없나요?
snapshot.data 를 print 찍어보면 [Instance of 'ScheduleWithColor'] 라고 터미널에 나오는데, 안에 값을 print로 찍어볼순 없나요?