묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결앨런 iOS Concurrency(동시성) - 디스패치큐와 오퍼레이션큐의 이해
DispatchQueue main 동작 방식
안녕하세요. 강의를 보다가 병렬큐에서의 동작 방식은 이해를 했지만 메인큐 즉 serial큐에서의 동작 원리가 정확하게 이해가 되지 않아서 질문을 남깁니다. 1. 메인스레드에서 main.async를 사용하게되면 현재 메인스레드에서 작업중인 태스크를 메인큐로 보냈다가 이걸 다시 메인스레드로 비동기로 할당한다는건데 동작 방식이 결국 후순위로 미룬다는 의미인거 같아서 조금 헷갈리네요.. 메인스레드에서 main.async를 사용한다는 것은 오래 걸리는 작업은 나중에 해~ 이런 의미로 사용하는걸까요? 이러한 동작방식은 defer를 사용하는 것과 유사해보입니다! 2. DispatchQueue.main.async { for i in 0..<20 { print(i) } } //2번 작업 for i in 60..<80 { print(i) } //3번 작업 DispatchQueue.main.async { for i in 20..<40 { print(i) } } //4번 작업 for i in 40..<60 { print(i) } 이러한 코드를 테스트 했을 때 동작 순서가 2 -> 1 -> 4 -> 3으로 예상을 했습니다. 그 이유는 1번 작업이 메인 큐로 갔을 때 다음 스레드가 진행되고 메인스레드에 2번 작업이 1번작업 뒤에 바로 할당된다고 생각을 했습니다. 하지만 동작 방식은 2 -> 4 -> 1- > 3으로 하는 것을 확인했습니다. 메인 스레드에서 비동기로 호출 했을 때 기존에 메인스레드에 있는 작업들의 동작 속도가 너무 빨라서 메인큐에서 메인스레드로 할당하기 전에 작업이 끝나서 그런건가라고 생각을 하고 sleep을 줘도 순서는 동일했습니다. 다음과 같이 main스레드에서 비동기를 처리하게 되면 파일에 선언된 코드들이 다 순차적으로 실행되고 나중에 비동기로 넘긴 태스크들이 메인스레드에 할당되는 것인지도 궁금합니다. 3. URLSession은 비동기적으로 작동하는 것으로 알고있는데 이것 또한 메인스레드에서 동작하고 있는 것이 맞나요? 혹시 제가 이해한 개념 중 오개념이 있다면 말씀해주시면 감사하겠습니다!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
WebConfig에서 등록하는건 항상 글로벌로 적용되나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WebConfig에서 등록하는 fomatter는 항상 글로벌로 적용되나요? 특정 Controller class에만 적용되게 하거나, Annotation 기반 formatter처럼 특정 method에만 적용되게 할 순 없는건가요?
-
미해결풀스택 리액트 라이브코딩 - 간단한 쇼핑몰 만들기
update가안되네요...뭐가문제인지..
중간에 영상이 씹혀서그런지... 댓글보고 수정해도 update가안되네요.. 진짜 한 10번은 돌려본것같은데.... 깃허브가도 브랜치도없고.. 완성된거밖에...... 일단 요렇게 add하면 정상으로 작동하여 담깁니다. update하면 이렇게뜨는데... 반환값이이상하여 핸들러를 암~~만 쳐봣는데 .... 도저희 못찾겟네요,.. github 주소첨부합니다...제발도와주십시요.... https://github.com/MaJunghan/ViteReactQuery invalidQueries로 update치면 잘되긴합니다..
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
URI naming 문의드려요.
영한님, 안녕하세요. URI naming 관련해서 2가지 문의를 남기고 갈께요. 항상 바쁘시지만 고견을 구합니다. 1) API 버전 - 영한님, 수많은 강의에서 보면 API 에는 주로 V1, V2 같은 버전을 기록하시는 것 같던데 이번 강의에서는 버전에 대한 말씀은 없으시더라고요. 보통 버전을 URI 에 포함시키는게 좋은 지, 만약 포함시킨다면 버전의 위치는 어디가 가장 적합한지 알고 싶습니다. 2) 복잡한 쿼리 조회성 API naming - 현업에서는 검색조건이 다양하게 있고 결과도 UI Grid 에 다양한 컬럼이 있는 표 화면을 활용하는 케이스가 많은데요. (보통 API 에서 다수의 테이블을 조인하는 쿼리를 실행해서 출력하는) 이런 API는 사실 Main Resource 를 정하기 어려운 경우가 상당히 있는 것 같습니다. 이런 복잡한 쿼리를 통해 화면에 목록성 데이터를 출력하는 Get API 는 네이밍을 어떻게 잡는 게 좋을까요?
-
미해결스프링 핵심 원리 - 기본편
TestBean class작성시
안녕하세요 영한님의 코드를 잘못 따라 치다가 static이 아닌 public class TestBean으로 작성하고 test를 실행해보았는데요 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'autowiredTest.TestBean': Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.autowired.AutowiredTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'hello.core.autowired.AutowiredTest' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {} 라고 떠서 질문 남깁니다! 왜 static으로 말고 public으로 할시 저런 문제점이 생길까요? 답변 미리 감사합니다!
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
Activity가 아니라 Fragment로 연결하는 이유
안녕하세요. 다름이 아니라 왜 하단바 navigation 연결 할 때 Activity 가 아닌 Fragment들을 연결하는 지 궁금해서 질문 남기게 되었습니다. 또, Activity 로 연결하면 발생하는 문제점들이 궁금해요! 답변해주시면 감사하겠습니다.
-
미해결
How To Get Unlimited Robux On Roblox With Mod APK
Roblox MOD APK is a game that facilitates interaction between players and enables you to create something that comes to your mind without any trouble at all. You can immerse yourself in a world of visionaries and do whatever comes to your mind. It will be great to interact with people and build relationships with them and interact with a global community. The Roblox player mod apk with an unlimited Robux site is valuable for game players and developers. Here is the complete guide about Roblox MOD with Unlimited Robux and also a mod menu with a lot of features; hopefully you will like them. Complete Guide – Roblox Mod Apk You can play a wide range of games on Roblox and connect with friends online using the Roblox community. There are five sections to the Roblox application, similar to any community app. You can see your friends in the home tab in the section designated for friends. Imagine what you can be on Roblox, the ultimate virtual universe where you can create, share experiences with your friends, and be anything you want. Immerse yourself in an ever-expanding range of immersive experiences crafted by a global community! Roblox mod apk unlimited robux avatars can be easily customized with so many options available. The avatar can be changed in every way. It is possible to customize the skin color, hair, body shape, face, and clothing. There are also animation options such as running, jumping, swimming, and standing. In addition to ninja animation and old-school animation, there is zombie animation and stylish animation. Additionally, you can decide on the gestures you want to use in the game. Introduction of Roblox As you can see, this game was made and published by the company Roblox corporation, and it was updated on July 30, 2020, the size of this game is 93MB, and it was released & published on the Play Store on Jul 16, 2020, and at the moment it is available for download from the Play Store. An idea of its popularity can be gained from this. More than that is unnecessary. There are 14 million comments on this game, meaning the game is considered to be very good by 14 million people. I would like to inform you that you can play the Roblox Mod apk Unlimited Robux very easily and even with your friends. In addition to its multiplayer mode, it also has a sports mode. If you know anything about this game, please let me know. Here you will find the Roblox Mod apk Unlimited Robux that you wish to take. If you want to know more about this game, the size of this game, and how many MB this game comes in, you can estimate this from the paragraph below. Also, let me tell you that if you have any problem, then you can explain it in the Comments. Features of the Roblox mod apk There are some modified features in the Roblox MOD APK. The following two features are important to know: Advertisements not allowed The Roblox ads are shown to free users on their smartphones. On the other hand, if you’re using the Roblox mod apk on an Android smartphone, you can’t see these ads. This is one of Roblox’s notable features. The amount of Robux is Unlimited? There is no limit to the number of coins you can get in your game. Therefore, your account will contain the most valuable items. Roblox avatars can be customized with your creations by using this tool. This is a paid feature for most users. You can download the items for free on your Android device. This is available for Android devices. Tips on How To Play Avatars can be customized with a wide range of dance moves and controls that can be purchased from stores. In the Roblox store, you can unlock new and useful features for your avatar as time passes. When riding your skateboard, you can choose the plane tool to take it in the air. If you want to freeze everything in the game, press the F1 or Ctrl buttons. In the game, Robux is the currency used, and your success in the game will ultimately depend on this currency. Key Features Of Roblox Unlimited Money Unlimited Robux Unlock Characters Unlimited Body parts Unlimited Clothing Unlimited Gears Unlock Everything Unlimited Everything Easy To Use Pros When you play this game, your creative side will come out. For those who want to gain professional experience with game development, this is an excellent platform. It’s just like real life in the way it has the capacity to leave you confused. Children can learn about physics dimensions through this game as well. Cons Depending on the game, additional storage space and external sources may be needed as well. In addition to the poor graphics, its inappropriate a
-
미해결풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]
<html css js를 활용한 반응형 모던 웹페이지 만들기 3> 강의 영상 중 질문입니다.
<html css js를 활용한 반응형 모던 웹페이지 만들기 3> 강의 영상 중 질문입니다. const slidePreviewList = document.getElementsByClassName("slide-prev"); 로 상수를 선언하시고 그후 for문에서 for (let i = 0; i < slidePreviewList.length; i++) { let classList = slidePreviewList[i].parentElement.parentElement.nextElementSibling; let liList = classList.getElementsByTagName("li"); ...~} 여기서 slidePreviewList[i]는 어떤걸 지칭하는건가요? slidePreviewList[1]은 slide-prev라는 클래스 이름을 가지는 첫번재 요소를 가리키고 slidePreviewList[2]는 slide-prev라는 클레스 이름을 가지는 그다음 요소를 가리키는 방식인가요? 좋은강의 항상 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트코드 회원가입 오류 질문
IllegalStateException 오류가 나는데,yml에 MVCC도 제거했고, h2도 켰는데도 그러네요@Autowired MemberService memberService;@Autowired MemberRepository memberRepository;여기에서 왜 빨간줄이 나는지 잘 모르겠습니다이상해서 MemberRepository와 MemberService도 pdf에서 복사해서 붙여넣어도 그렇습니다(@Service, @Repository 도 되어있습니다)Unit4로 했습니다!
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
Splash 액티비티 질문이예요.
다시 글 남겨요ㅜ 섹션 2. 트와이스 앱만들기 트와이스 앱 만들기 소개-강의소개 및 스플래시(Splash 화면) 4:35초에서 막혔습니다. <?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.twice" > <application android:allowBackup="true" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.Twice" tools:targetApi="31" > <activity android:name=".SplashActivity2" android:exported="false" > </activity> //여기서 부터 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> //여기까지 어떠한 내용으로 고쳐야 하나요? <activity android:name=".MainActivity" android:exported="true" > </activity> </application></manifest> 가상 핸드폰으로 볼려고 하니 안나오고밑에 처럼 빨간색으로 에러 나오거든요. ㅠ 알려주세요. Android resource linking failed C:\Users\joshu\AndroidStudioProjects\Twice2\app\build\intermediates\packaged_manifests\debug\AndroidManifest.xml:28: error: unexpected element <intent-filter> found in <manifest><application>.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
양방향 편의 메서드요 !
강의를 여러번 듣고 아무리 이해해 보려 해도 이해가 가질 않아서요 외래키를 설정하고 종속관계를 설정해서 -> DB에 저장이되도록 설정을 했는데 양방향 편의 메서드는 양방향 관계라서 쓴 거 까지는 이해가 가는데 결국은 1)DB에서 정보를 가져오고 정보를 뿌려주는데 왜 필요한지 이해가 가질 않습니다 사실상 주문이 들어오면 DB에서 회원에 대한 필터를 걸러서 보여주는 식이니까여.. 또, 양방향 관계에 있는 객체와, arraylist에 이제 정보를 넣는다고 치면 주문이 계속 들어와서 new order가 계속 생성 될텐데 이럴때도 이건 DB가 있는것도 아닌데 객체단에서 많은 2)정보가 계속 들어오면 어디에 저장되는 지도 이해가 안갑니다. 그러니까 데이터베이스 적으로 처리를 했는데 객체적으로 처리를 왜 해야 하는지 이해가 가질 않습니다....
-
미해결실전 JSP (renew ver.) - 신입 프로그래머를 위한 강좌
오라클 설치 오류...
오라클을 설치하는데 21c버전인데 계속 깔리다가 마지막에 안깔리고 오류가 뜨네요.. 어떻게 해결하죠.. 제발 도와주세요..
-
미해결[리뉴얼] 처음하는 MongoDB(몽고DB) 와 NoSQL(빅데이터) 데이터베이스 부트캠프 [입문부터 활용까지] (업데이트)
보안적인 문제에 관련하여 질문드립니다..!
혹시 보안적인 문제는 어떻게 해결해야할까요 ? 첫 데이터베이스 knowlege를 만들고 refresh all 버튼을 눌렀는데 갑자기 데이터베이스 해킹이 들어왔네요.. 비트코인을 요구하는데 필요없는 데이터베이스라 drop하고 다시 만들었는데 또 해킹당할까봐 불안하네요,, 해킹 데이터의 전문입니다. "all your data is a backed up. you must pay 0.04 btc to 18kq243qoqn97maqle1ealbxawz9pph31n 48 hours for recover it. after 48 hours expiration we will leaked and exposed all your data. in case of refusal to pay, we will contact the general data protection regulation, gdpr and notify them that you store user data in an open form and is not safe. under the rules of the law, you face a heavy fine or arrest and your base dump will be dropped from our server! you can buy bitcoin here, does not take much time to buy https://localbitcoins.com or https://buy.moonpay.io/ after paying write to me in the mail with your db ip: rambler+1oeec@onionmail.org and/or mariadb@mailnesia.com and you will receive a link to download your database dump."
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
401에러 쿠키에 connect.sid가 2개에요..
안녕하세요 제로초님 유트브와 인프런에서 강의 잘 보고있습니다. 다름 아니라 제로초님 강의를 참고하여 제 포트폴리오로 새롭게 만드는 중인데요! 지금 배포 후 401에러가 나와서 보니까 쿠키에 connect.sid가 2개가 들어가 있는데 어디가 문제인지 모르겠습니다. 참고로 도메인에 api를 넣었다가 틀린걸 알고 다시 제대로 수정했는데 api가 붙은 도메인이 계속 따라오네요.. 아래에는 백엔드 app.js 코드입니다. const express = require("express"); const cors = require("cors"); const session = require("express-session"); const passport = require("passport"); const cookieParser = require("cookie-parser"); const dotenv = require("dotenv"); const morgan = require("morgan"); const hpp = require("hpp"); const helmet = require("helmet"); const path = require("path"); const userRouter = require("./routes/user"); const postRouter = require("./routes/post"); const postsRouter = require("./routes/posts"); const stackRouter = require("./routes/stack"); const imageRouter = require("./routes/image"); const db = require("./models"); const passportConfig = require("./passport"); // ################################################################# // dotenv.config(); const app = express(); db.sequelize .sync() .then(() => { console.log("db 연결 성공"); }) .catch(console.error); passportConfig(); if (process.env.NODE_ENV === "production") { app.use(morgan("combined")); app.use(hpp()); app.use(helmet({ contentSecurityPolicy: false })); app.use( cors({ origin: "http://semifoli.site", credentials: true, }) ); } else { app.use(morgan("dev")); app.use( cors({ origin: true, credentials: true, }) ); } app.use("/", express.static(path.join(__dirname, "uploads"))); app.use(express.json()); // 프론트에서 data를 json으로 보냈을때 req.body 안에 넣어줌 app.use(express.urlencoded({ extended: true })); // 프론트에서 form(form 은 url)으로 data를 보냇을때 req.body 안에 넣어줌 app.use(cookieParser(process.env.COOKIE_SECRET)); app.use( session({ saveUninitialized: false, resave: false, secret: process.env.COOKIE_SECRET, cookie: { httpOnly: true, secure: false, domain: ".semifoli.site", // domain: process.env.NODE_ENV === "production" && ".semifoli.site", }, }) ); app.use(passport.initialize()); app.use(passport.session()); app.get("/", (req, res) => { res.send("hello express"); }); app.use("/posts", postsRouter); app.use("/post", postRouter); app.use("/user", userRouter); app.use("/stack", stackRouter); app.use("/image", imageRouter); // app.use("/stacks", stacskRouter); app.listen(80, () => { console.log("서버 실행 중!"); });
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
상품 수정이 안되는데 무슨 문제일까요?
package hello.itemservice.domain.item;import lombok.Data;import java.util.List;@Datapublic class Item { private Long id; private String itemName; private Integer price; private Integer quantity; private Boolean open; private List<String> regions; private ItemType itemType; private String deliveryCode; public Item(){ } public Item(String itemName, Integer price, Integer quantity) { this.itemName = itemName; this.price = price; this.quantity = quantity; }} 에러문구입니다. Caused by: org.springframework.beans.NotReadablePropertyException: Invalid property 'Name' of bean class [hello.itemservice.domain.item.Item]: Bean property 'Name' is not readable or has an invalid getter method: Does the return type of the getter match the parameter type of the setter? 계속 머리싸매고 생각해봐도 왜 안되는지 잘 모르겠네요 답변부탁드려요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
physical-starategy 에 질문
만약에 전략을 바꾸고 싶으면 physical-starategy 을 쓰라고 하셨는데 어떻게 쓴다는 말인가요?? 기존 yml 파일에서 spring: jpa: ... physical-starategy 이런식으로 바꾸라는 말씀이신거죠?
-
미해결홍정모의 따라하며 배우는 C++
[1:00] 생성자의 매개변수 문의
너무 간단한 것인데 혹시나 싶어 문의드립니다. 지금까지 공부한 개념으로 보면 생성자의 매개변수는 Animal(const std::string& name) 이어야 할거 같은데 Animal(std::string name) 으로 한 이유가 따로 있나요? 복사를 하기보단 참조가 더 효율도 좋은데 단순히 강의를 위해 쓸데없는 내용을 빼기위해 적으신건지 궁금해서 문의드립니다.
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
안녕하세요 궁금한게있습니다
이 강의 댓글 삭제 기능있나요??
-
미해결[하루 10분|Web Project] HTML/JS/CSS로 나만의 심리테스트 사이트 만들기
netlify 사이트에서 github연동
netlify 사이트에서 github연동하기위해서 New site form Git 버튼이 현재는 없는 것 같은데 방법이 있나요?
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
코드 리뷰
// Section 4. 완전 탐색 (브루트 포스) - 졸업 선물 // 문제 해결 과정 // [v] 문제 이해 : 현재 예산으로 최대 몇명의 학생에게 선물을 사줄 수 있는지 구하기 // [v] 상품 하나를 50% 할인해서 살 수 있다. => 들어온 상품 중에 가장 "비싼" 상품에 할인을 적용 // [v] 각 상품과 배송비를 합친 후 오름 차순 정렬 // [v] 정렬된 리스트에서 예산이 될 때마다 감산 적용하고, 안된다면 그대로 stop -> cnt 반환 function solution(m, product) { let answer = 0; let max = Number.MIN_SAFE_INTEGER; // 가장 비싼 상품 찾아서 50% 할인 적용하기 for (let i = 0; i < product.length - 1; i++) { for (let j = 0; j < product[i].length; j++) { if (product[i + 1][0] > max) { max = product[i + 1][0]; } } } for (let i = 0; i < product.length; i++) { if (product[i][product[i].indexOf(max)]) { product[i][product[i].indexOf(max)] /= 2; } } // 각 상품과 배송비를 합쳐서 정렬한다. const sum_arr = quick_sort( product.map((value) => { return value[0] + value[1]; }) ); // 정렬된 리스트에서 예산이 될 때마다 감산 적용하고, 안된다면 그대로 stop -> cnt 반환 sum_arr.map((value) => { if (m - value < 0) return; m -= value; answer++; }); return answer; } function quick_sort(arr) { if (arr.length < 2) return arr; const left = []; const right = []; const middle = arr[0]; for (let i = 1; i < arr.length; i++) { if (arr[i] < middle) { left.push(arr[i]); } else if (arr[i] > middle) { right.push(arr[i]); } else { middle.push(arr[i]); } } return quick_sort(left).concat(middle, quick_sort(right)); } let arr = [ [6, 6], [2, 2], [4, 3], [4, 5], [10, 3], ]; console.log(solution(28, arr)); // 4 너무 불필요한 반복문이 사용되는걸까요 ? 어떻게 보시는지 궁금합니다 ..