묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
컨텍스트는 context와 contextual information으로 나눠진다는게 무슨뜻인가요?
안녕하세요 강의 잘듣고있습니다.교안에 컨텍스트는 context와 contextual information으로 나눠진다고 서술되어 있는데 information이 context안에 포함된 구조가 아니라 나눠진 개념인가요?
-
미해결React Native with Expo: 제로초에게 제대로 배우기
안드로이드 애니메이션 관련 질문
// app.config.ts const config: ExpoConfig = { .... android: { adaptiveIcon: { backgroundColor: '#000000', foregroundImage: './src/assets/images/aline-black.png', }, ... }, splash: { image: './src/assets/images/aline-black.png', imageWidth: 200, resizeMode: 'contain', backgroundColor: '#000000', }, plugins: [ [ 'expo-splash-screen', { image: './src/assets/images/aline-black.png', imageWidth: 200, resizeMode: 'contain', backgroundColor: '#000000', }, ], ... ] }프로덕션 빌드된 앱에서 테스트 해보니까 애니메이션 이미지를 원형으로 지정하지 않았는데도,안드로이드에서는 첫번째 사진처럼 원형으로 보이다가 제가 지정한 이미지인 두번째 사진으로 넘어가고 나서 스플래쉬가 사라지는데, 원형으로 나오는 이 기본 동작을 막을 방법이 없을까요?
-
해결됨[왕초보] [누적 5,000명+] Python 프로그래밍 기초 완성 로드맵
순회 중 리스트 수정은 왜 위험한지 궁금합니다.
안녕하세요.열심히 배우고 있는 수강생입니다. 순회 중 리스트 수정은 왜 위험한지 궁금합니다. 좋은 강의 감사합니다.
-
미해결웹 애니메이션을 위한 GSAP 가이드 Part.03
섹션04 Layout에서 Mixed Layout파트의 실습 index.html파일 열었을때 선생님께서 보여주시는 가로스크롤이 안나타남.
안녕하세요. SCROLLTRIGGER-STARTED 폴더에 있는4-5.Mixed Layout의 index.html 파일을 열어section02의 horizontal 주석을 해제하고보았을때 가로 스크롤이 안나타납니다. 제가 뭐 건드린 것은 특별히 없어서finish폴더의 style.css파일과 비교하였는데도가로 스크롤이 안나타납니다. 이상태에서 해당 강의 중 settings.js를 만져서 가로 스크롤이 안나타나도록 확인을 해야하는데 가로스크롤이 안나타난 상태에서강의를 보면서 settings.js파일을 실습하기가 어려울것 같습니다.. 제가 뭘 잘못한게 있을까요?
-
해결됨스프링부트로 직접 만들면서 배우는 대규모 시스템 설계 - 게시판
게시글 조회 최적화 전략 도입 관련, 조회수 원본 데이터와 비교하였을때 원본과 캐싱 데이터 모두 Redis에서 추출하는 데이터임에도 (별도의 key 운용 등) Redis 캐싱 과정을 원본추출 과정과 따로 간주하는 이유(데이터를 가져오는 과정만 보았을때)
학습 관련 질문을 최대한 상세히 남겨주세요!고민 과정도 같이 나열해주셔도 좋습니다.먼저 유사한 질문이 있었는지 검색해보세요.인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 선생님!지난번에 남겨주신 답변내용을 보면서 전략도입의 배경부터 처리과정까지 복기해보았습니다.그러다가 의문이 생긴 점이 있습니다.1) 의문점Request Collapsing, 캐싱중복적재를 제외하고 캐싱하여 데이터를 추출하는 과정만을 보았을때, 원본과 캐싱 데이터 모두 Redis에서 추출해오는 것인데, 원본추출과 비교하였을때 과정적으로 어떠한 차이점이 추가적으로 있있기에 별도의 과정으로 간주하는 것일까? 즉, "캐싱하여 가지고 오는 과정"과 "원본 데이터 추출"을 따로 보고 계셨기에, 어떠한 차이점이 있는지 의문점이 들었습니다. 2) 의문점이 생긴 이유단순하게 간략히 말씀드리자면,조회수 원본데이터는 Redis에서 가져오는 조회수이고, 캐싱해서 가져오는 것 역시 Redis에서 가져오는 조회수로 보여집니다. 원본데이터가 MySQL과 같은 디스크 조회 비용이 큰 저장소에 들어있는 것이 아니라, 동일한 In Memory database인 Redis에서 가져오는 것이기에 성능/비용적으로 캐싱 데이터를 가지고 오는 것에 큰 이점을 느끼지 못하였습니다. 세부적으로 살펴보았을때,ViewClient에서 원본 데이터를 가지고 오는 경우 아래 로직을 통해 Redis에서 추출합니다.articleViewCountRepository.read(articleId);이떄 key는 view::article::#articleId::view_count 입니다.ViewClient에서 Aspect를 처리하여 캐싱 데이터를 가지고 오는 경우 Redis에서 추출합니다.이때 key는 articleViewCount::#articleId입니다.이 과정에 대해 캐싱을 하는 목적을 생각해보았을때(=원본데이터 추출에 시간이 오래 걸릴 경우 성능이 빠른 다른 데이터저장소를 운용하여 이곳에서 데이터를 추출해오기 위함), 동일하게 Redis에서 추출하는 데이터임에에도 key를 별도로 운용하고, 데이터를 추출하는 과정도 다르게 가져가는(간주하는) 이유가 무엇인지 궁금하여 문의코자 합니다(물론 전체 로직을 살펴보았을때는 기존 대비 중복적재/Request Collapsing 과정을 추가하였기에 당연히 성능적인 이점이 존재하겠지만, 데이터를 가져오는 과정 그 자체만을 보았을때는 의문점이 들었습니다). 이게 데이터를 추출하는 과정이 다르기에, 동일한 key로 운용하면 실무적으로 로직이나 key관리방안이 복잡해져서 관리의 효율화를 위해 나누는 것일까요(즉, 기존과 달리 분산락도 사용하고 중복적재를 방지하기 위해 이용하므로 목적 자체가 다르기에 key 포맷 및 캐싱을 별도로 운용하는 것으로 이해하는 것이 적절한지)? 제가 캐싱의 목적 부터 잘못 이해하고 있는 것일 수 있고, 실무적으로 비용/성능적 유리하다는 의미가 무엇인지 잘못 이해하고 있는 것일 수 있다고 생각하고 있습니다. 그렇기에 챗지피티에게 물어보기보다는 실무적으로 경험이 풍부하시고 그만큼 검증된 선생님의 판단이 더 정확하고 궁금하여 질문드리게 되었습니다. 바쁘신데도 항상 성심성의껏 답변해주시는 선생님께 감사의 말씀 드립니다. 이효균 드림.
-
미해결실전에서 바로 써먹는 Kafka 입문
email 발송 로직 관련
consumer 쪽에서 이메일 발송 로직 대신 Thread.sleep(3000) 을 써주셨는데요.이 말은, consumer 쓰레드 자체에서 이메일 보내는 로직을 실행한다고 가정해서 그런거라고 이해했습니다. 개인적으로 consumer 는 message 를 consume 만 하고, 실제 비즈니스 로직 (email send) 는 별개의 쓰레드로 async 하게 동작하는게 더 효율적이라고 생각이 되는데요. email 발송 로직을 별개의 쓰레드로 할 때와 현재처럼 consumer 쓰레드에서 할 때 차이점 및 주의해야할 점 (ex. offset 수동 커밋 등) 이 있을까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 gradlew.bat 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.프로젝트 지웠다가 처음부터 다시 해보기도 하고 질문글 따라 보면서 해봐도 에러가 떠서 어떻게 해야할지 모르겠어요.. .
-
미해결React Native with Expo: 제로초에게 제대로 배우기
안드로이드 공개 테스트 앱 관련 질문
제로초님 안녕하세요! 질문이 많네요 위 사진과 같이 공개 테스트 앱을 출시 완료했고, 기기 카탈로그에서도 제가 테스트하는 안드로이드 기기가 지원됨을 확인했습니다. 그런데 Android에서 참여, 웹에서 참여 링크 두개다 접속하면,구글 플레이 스토어 앱이 열리면서 위 사진과 같이 "항목을 찾을 수 없습니다." 라는 메시지만 나오고 앱을 다운로드 할 수 없는 상황입니다 ㅠ해결방법을 아신다면 알려주시면 감사하겠습니다!
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
CodeFactoryWidget이 StatefulWidget인 이유에 대해서
안녕하세요?초보자라서 질문을 어떻게 해야될지 모르겠어서 횡설수설인 점 미리 죄송합니다. 세번째 라이프사이클을 설명하실 때 사용하신 코드에 대해서 질문이 있습니다.홈스크린 위젯을 StatefulWidget해서 클래스를 2개 만드는것은 변하는 화면을 보여주기 위해서 사용한것이겠죠? 그런데 CodeFactoryWidget은 버튼을 보여주는 위젯인데 왜 StatefulWidget을 상속받아 만드신 것일까요?CodeFactoryWidget은 상태를 관리하지 않으므로 StatelessWidget을 상속받아도 되지 않을까요? 궁금해서 잠이 오지 않습니다.
-
해결됨주문시스템으로 알아보는 분산트랜잭션
노트에 노션페이지 공유가 없습니다.
설정값 복사해서 넣으려고 하는데, 물론 따라 칠 수야 있습니다만 모든 학습자에게 불편할 수 있으니노션페이지 노트에 공유 부탁드립니다.
-
해결됨[VOD] 6주 완성! 개발 실무를 위한 고농축 바이브코딩 (Cursor AI, Figma)
코드캠프 백앤드 답변이 안달려서 여기 남깁니다.
안녕하세요~백앤드 소스 코드 요청 드립니다.[부트캠프에서 만든 고농축 백엔드 코스] 메일로도 요청드리고,코드캠프 백앤드 게시판에도요청드렸는데,답변이 안달려서여기 한번더 남깁니다. 부분적으로필요한 부분만 수강하고 싶은데,앞부분을 수강하지 않으면수강하기 곤란한 부분이 있어서소스코드좀 보내주시면 감사하겠습니다~sunshinew@naver.com
-
해결됨제미니의 개발실무 - 커머스 백엔드 기본편
이상적인 공부 방법
강사님이 추구하시는 생각하는 공부에 대해서 많이 고민해보게 되었습니다.그렇다면 강사님이 생각하셨을 때, 이 강의를 보고 공부하는 이상적인 방법은 어떤게 있다고 생각하시나요?예를 들면, 하나의 섹션을 먼저 다 보고 요구 사항 정리부터 다시 시작해보기 아니면 각 강의마다 끝나고 요구사항을 정리해보고 다음 넘어가기.. 등등 강사님도 커리큘럼을 만드실 때 이런식으로 하면 좋을 것 같다가 있으셨을 것 같은데 궁금합니다.
-
미해결[연재형] WE CAN ChatGPT! - 챗gpt 우리도 할 수 있습니다.
13강이 수료가 안됩니다.
13강 수료가 안됩니다. 고급과정 연결도 안되구요 빠른 확인 부탁드립니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
puts 함수 자동개행 관련
배열과 문자열 챕터로12:23에 서 2.puts 함수로 출력(자동 개행)puts("2. ");puts(st); 위 코드가 확인되는데, 2. 하고 뒤에 공백 1칸 있는 이유와 puts(str)인데 puts라는 함수가 \n 없어서 자동개행된다는 의미일까요?
-
미해결
이글좀 지워주세요(그리고 이글도 지워주세요)
야심차게 영문워드프레스 1일 5포스팅 시작합니다. 구경와주세요해결된 질문2025. 10. 05. 22:11 작성·50구글검색에 사이트가 떠서 그럽니다. 계속 요청하고 있는데 못보시나봐요
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강기간 연장 부탁드립니다 ㅠㅠ
길게 안해주셔도 괜찮고한 1주일만 되어도 충분할 것 같습니다 !부탁드립니다 ㅠㅡㅠ
-
해결됨따라하며 배우는 NestJS
회원가입 기능 구현 버전 변경에 따른 코드수정(해당 사항은 업데이트 예정이 없나요?)
Custom Repository 부분에서 에러가 나서 해결 하긴 하였으나 맞는 과정인지는 잘 몰라 문의드립니다.강의에서 사용하는 @EntityRepository방식은 구버전(0.2.x) 방식으로 최신버전에서는 제거되었습니다. 강의 코드를 그대로 따라하면 ... is not a function같은 에러가 발생합니다.그래서user.repository.ts, auth.modules.ts 수정, auth.service.ts를 수정 1. user.repository.ts 수정 1. user.repository.ts 수정 Repository를 일반 서비스로 만들기 위한 핵심 작업입니다. 수정 내용: @EntityRepository(User) 데코레이터를 삭제하고 @Injectable()을 추가했습니다. Repository 클래스를 초기화하기 위해 constructor (생성자)를 추가하고, 그 안에서 super()를 호출했습니다.// src/auth/user.repository.ts import { Injectable } from '@nestjs/common'; import { DataSource, Repository } from 'typeorm'; import { User } from './user.entity'; // ... @Injectable() // ✅ 변경 export class UserRepository extends Repository<User> { // ✅ 생성자 추가 constructor(private dataSource: DataSource) { super(User, dataSource.createEntityManager()); } async createUser(/* ... */): Promise<void> { // ... } }2. auth.service.ts 수정-> providers 배열에 UserRepository를 추가했습니다.이유: providers 배열에 등록해야만 AuthModule이 "아, UserRepository라는 서비스를 모듈로 포함시켰습니다.// src/auth/auth.module.ts import { UserRepository } from './user.repository'; // ... @Module({ imports: [TypeOrmModule.forFeature([User])], controllers: [AuthController], providers: [ AuthService, UserRepository, // ✅ UserRepository를 providers에 등록 ], }) export class AuthModule {}3.auth.service.ts 수정> 서비스에서 Repository를 주입받는 방식을 변경합니다.수정 내용: @InjectRepository(User) 데코레이터를 삭제하고, 생성자에서 UserRepository를 직접 타입으로 선언하여 주입받습니다.이유: UserRepository는 이제 마법 같은 존재가 아닌 일반 서비스이므로, 다른 서비스를 주입받을 때와 똑같이 클래스 이름만으로 간단하게 주입받을수 있습니다.// src/auth/auth.service.ts import { Injectable } from '@nestjs/common'; import { UserRepository } from './user.repository'; // 🗑️ import { InjectRepository } from '@nestjs/typeorm'; <- 삭제 @Injectable() export class AuthService { constructor( // 🗑️ @InjectRepository(User) <- 삭제 private userRepository: UserRepository, // ✅ 직접 주입 ) {} async signUp(/* ... */): Promise<void> { return this.userRepository.createUser(/* ... */); } }일단 이런식으로 수정했는데 이 과정이 맞는지는 잘 모르겠습니다! 강사님이나 따로 혹시 올라와 있는 코드가 있다면 참고해보겠습니다!
-
해결됨Cursor AI로 만들면서 배우는 Web & Javascript
질문드립니다.
정보처리기사 실기를 선생님과 함께 하고, 시험 합격에 이어서이제 본격적으로 취업을 위한 저만의 프로젝트를 만들어 보겠다는 생각이 들었습니다.마침 Cusor AI의 첫 개강 때 할인 이벤트가 있어서저만의 첫 프로젝트를 시작하기 전에이번 기회에 다시 한번 더 선생님과 함께 나아가고자현재 선생님의 새로운 강의를 수강하고 있습니다. 그리고 어제 새벽에 처음 시작해서 정신을 차려 보니지금 벌써 4강을 진입하는 상황이 되어버렸습니다..결론은 또 엄청난 강의를 만들어 주신 것 같습니다....! 이제 정말 질문인데요.프론트 엔드의 영역이라 생각하고 지금 재미있게 공부 중에 있습니다만백엔드나 전체적으로 다뤄서 풀스택 관련 강의 제작도 목표가 있으실지 해서질문 남겨드립니다. 현재 독학으로 Spring을 공부 중에 있습니다만, 선생님의 자바 백엔드수업도 있다면 재미있게 제가 원하는 개발을 이어나갈 수 있을 것 같아조심스럽게 이 자리에 질문을 남겨드립니다. 아무쪼록 이번에도 놀랍고 대단한 몰입력을 유도하는 강의를 만들어 주셔서정말 감사합니다. 정보처리기사 합격에 이어서 이번에는 선생님 강의를 듣고 취업 성공까지 힘내 보겠습니다!ㅎ(ps 시험 때문에 듣던 선생님의 ppt 자료가 이제는 시험이 아니라 재밌는 창작 같은 공부에 쓰이니까 모든 게 감회가 새롭네요ㅋㅋㅋ)
-
미해결프론트 개발자를 위한 백엔드 101 (NestJS, TypeORM)
PostRepository 구현
상위 레이어의 정보를 알면 안되기 때문에, repository에서는 dto가 아니라 모델을 받아야 한다고 하는데, 모델의 타입이 어떻게 되는 건가요? 그리고 위의 예제에서 service의 create 메서드는 아래와 같이 dto를 인자로 넘겨주고 있는데, 그러면 dto로 타입을 맞춰야 하지 않나요? async create(createPostDto: CreatePostDto): Promise<Post> { const post = this.postRepository.create(createPostDto); return this.postRepository.save(post); }그리고 글 수정 api 컨트롤러에서 put 메서드를 사용하신 것 같습니다. @Put(':id') update( @Param('id', ParseIntPipe) id: number, @Body(ValidationPipe) updatePostDto: UpdatePostDto, ) { return this.postService.update(id, updatePostDto); }제가 생각했을 때는 일부분을 수정하는 케이스니까 restful 하도록 바꾼다면, patch 메서드가 적합하다고 생각이 드는데, 이해한게 맞을까요? 감사합니다.
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
포인터 작성요령
21:09지금 까지 이해한 포인터의 방법은 주소 사용할때는 & 또는 생략, 값을 사용할때는 *로 이해하고 있습니다.해당 printf("%s\n", arr[0][0]); 라는 구문에 질문이 있습니다.포인터 변수로 해당 문자열의 주소를 각 맵핑하였고 배열에 맞게 출력하는걸로 해석이 되는데 이때 왜 값을 안 가져오고 주소를 가져오는지 궁금합니다. 또한 %s로 출력하고 해서 주소대신에 값으로 가져오는지 궁금합니다.