묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[2025년 출제기준] 웹디자인기능사 실기시험 완벽 가이드
D,E,F유형 포토샵 질문
D,E,F유형 작업시 슬라이드,배너,갤러리 이미지는 어떤사이즈로 제작해야하는지 시험지에 기재 돼 있는 부분일까요?
-
미해결김영한의 실전 자바 - 기본편
OCP원리 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]12. 다형성과 설계 강의 자료에서 OCP원리를 보면 코드 수정은 닫혀 있다는 의미에서 "새로운 차를 추가하게 되면 기능이 추가되기 때문에 기존 코드의 수정은 불가피하다. 당연히 어딘가의 코드는 수정해야 한다."라고 되어 있습니다. 기존 코드의 수정이 불가피하다고 하는데 왜 코드 수정은 닫혀 있다고 표현하는 건가요?
-
해결됨그림으로 쉽게 배우는 운영체제
LRU 관련 질문
안녕하세요,좋은 운영체제 강의 감사드리며, 수강 중 한가지 의문점이 생겨서 질문드립니다.LRULeast Recently Used 는, 최근에 가장 사용이 적은 페이지를 선택하는 방법이라고 설명해주셨습니다. 그렇다면 가장 오랜 기간 사용하지 않은 페이지를 교체하는 방법에 해당되는 것으로 보이는데, 4:40 그림과 함께 설명되는 부분은 (최근에 들어온 페이지의 참조 수를 계산한다고 설명 주신 부분은) 계수-기반 페이지 교체 Counting-Based Page Replacement에서참조 횟수가 가장 작은 페이지를 교체하는 방법인 LFULeast Frequently Used 방식에 해당하는 설명이 아닌가 생각됩니다. 오랜기간 사용하지 않은 페이지를 교체한다면, 예시의 마지막 LRU 교체는 "D" 에서 이루어져야하는 것이라 판단됩니다.. 감사합니다.
-
미해결[EduAtoZ] 빅데이터분석기사 필기
시공간데이터
공간데이터는 공간과 시간데이터를 따로 추출할수있는데, 계산에 의해서는 추출못한다는건 무슨의미일까요?일반적으로 공간데이터와 시간데이터가 따로 관리될때는 추출을 할 필요가 있나요?
-
해결됨(2025) 일주일만에 합격하는 정보처리기사 실기
#define SQUARE(x)((x) * (x))에 대한 예시는 없을까요?
#define SQUARE(x)((x) * (x))에 대한 예시는 없을까요? SQUARE(x)에 ((x) * (x))를 정의하는건지SQUARE에 (x)((x) * (x))를 정의하는건지 모르겠어요
-
미해결비전공자도 합격하는 개발자 이력서/포트폴리오 작성법
작성은 구어체로? 아니면 핵심만 딱딱?
안녕하세요. 강사님 강의 잘 보고 있습니다.합격 샘플의 예시를 보면서 저의 이력서와 같이 비교 분석하고 있는데 합격하신 분은 주로 구어체로 많이 작성하셨더라고요.저의 이력서도 기존에는 구어체를 많이 사용했으나 gpt에게 프롬프트로 "백엔드 개발자의 면접관의 입장에서 신입 개발자의 이력서 수정사항을 말하라"라고 입력하고 저의 이력서를 스캔하여 보여주니 구어체는 쓰지말고 핵심만 끊어서 작성하라는 말을 많이 들었습니다.강사님의 의견은 어떠하신가요?
-
미해결FreeRTOS 프로그래밍
보드 STM32H735IG와 강의 호환 여부 문의
안녕하세요 이번에 FreeRTOS를 공부하려고 합니다.현재 보드명 : STM32H735IG / STM32H735-DK를 사용하여 FreeRTOS강의를 수강하려고 합니다. 이에 대해 강의의 코드를 참고하여 실습하는 것에 대해 문제가 없는지 문의드립니다.
-
미해결비전공자도 이해할 수 있는 AWS 입문/실전
무료도메인 elb연결 어떻게하나요?
route53에서는 도메인이 결제해야해서 보충강의처럼 내도메인한국에서 무료도메인을 받고 ip주소를 입력해서 연동을 시켜놓은 상태입니다.근데 실습4 ELB 도메인 연결하기에서는 route53에서 구입한 도메인만 연결방법이 나와있는데 따로 강의가있나요?
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
AWS 배포 시 docker-compose.yml 관리 방법 질문입니다.
현재 강의에서는 aws 인스턴스 에서 직접 compose.yml을 작성하는데 제가 현재 spring boot 프로젝트 루트 경로에 compose.yml을 구현해뒀어도 프로젝트 빌드시에는 yml이 포함되지 않아서 강의와 같이 인스턴스가 직접 생성해줘야하는 지 궁금합니다. 그리고 나중에 ci/cd를 하게 되면 github Actions같은 CI/CD 도구를 이용해야 yml파일이나 .env이런 파일을 직접 인스턴스에 구현하지 않아도 되는 것이 맞는 지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
접근제어자, 클래스 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.class의 접근제어자를 private으로 설정시 외부 호출을 막는 것은 이해를 합니다.class의 volume 변수에 대해 실제 수정 해야 상황일 경우 (volume 200이 가능하게 되었을 때) privat로 설정된 volume 변수 수정 권한을 setting하는 것은 어떤 조직 구성과 방법으로 하는지 실제 경험을 사례로 설명을 요망합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
RunWith
프로젝트 생성부분의 마지막 강의 수강중이고, 위와 같이 코드를 작성했을 때 다음과 같은 오류가 납니다https://drive.google.com/file/d/1g1uPQj8hZvNmWr3u9NBwMTuI_NOZWSKC/view?usp=sharing프로젝트 파일도 같이 첨부합니다
-
해결됨공업수학을 위한 중학, 고교수학
전기과학생입니다.
강의의 내용과 관련이 없는 질문이나 제안은 삼가해주시기 바랍니다. 이 강의의 범위 안에서 질문해주시기 바랍니다. 이 강의에서 다루지 않은 중학, 고교수학의 내용이나 대학의 공업수학에 대해서는 답변해드리지 않습니다. 이 강의를 들으면서 문제집같은걸 풀면서 해보려고하는데요 추천하시는 중/고등 문제집이 있을까요?
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
파이어베이스 강의 문의
파이어베이스 Authentication게임이 시작되고 게스트로그인 ContinueWith을 통해 계정생성이 잘 완료되고 Realtime Database에도 USER라는 곳에 데이터가 잘 저장되고 불러오기가 되는데 (익명) 사용자가 바로 생성되지 않습니다 무슨 문제일까요?? 시간이 한참 지나면 생성되어져 있습니다. (강의영상보면 바로 생성되던데 저는 안되네요)
-
해결됨[Unity] 함께 만들어가는 방치형 게임 개발
구글로그인 부분은 어디에 있나요??
구글로그인 및 파이어베이스 구글로그인은 강의가 어디에 있나요??
-
해결됨[2025 리뉴얼] 스스로 구축하는 AWS 클라우드 인프라 - 기본편
Web Application Firewall (WAF)
Web Application Firewall (WAF) 1. Enable security protectionsKeep your application secure from the most common web threats and security vulnerabilities using AWS WAF. Blocked requests are stopped before they reach your web servers.Do not enable security protectionsSelect this option if your application does not need security protections from AWS WAF.둘 중 뭐 골라야 해요?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
PathVariable에 Null이 들어오는 것 같습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]여기에 질문 내용을 남겨주세요.상품 수정하기를 눌렀을 때 에러코드 500이 나오고 IllegalArgumentException: Input cannot be null 에러가 나옵니다.PathVariable("itemId")로 명시적으로 지정해 주었는데도 null이 들어가는 것 같은데 해결을 못하겠습니다. 코드는 원래 파일에서 건든 것이 없고 심지어 강의 자료에 있는 코드 파일 그대로 복사 붙여넣기 해도 똑같은 에러가 나옵니다..
-
미해결비전공자도 이해할 수 있는 Docker 입문/실전
sudo가 안먹혀요
3강 진행 중에 sudo lsof -i:3306 명령어를 사용했는데 ""Sudo가 이 컴퓨터에서 사용하지 않도록 설정되어 있습니다. 사용하도록 설정하려면 으로 이동하세요. Developer Settings page 설정 앱의"" 이렇게 나와서 시작을 못하고 있습니다. 그리고 다른 질문인데 현재 프로젝트를 하고 있는데 db를 mysql을 사용하고 있는 상황이라 만약 실습을 위해서 포트를 끄면 프로젝트할때 영향이 가는지도 궁금합니다.
-
미해결
안녕하세요
안녕하세요. 현재 코드입니다.import 'package:flutter/material.dart'; import 'dart:developer' as developer; class TestSearchScreen extends StatefulWidget { const TestSearchScreen({Key? key}) : super(key: key); @override _TestSearchScreenState createState() => _TestSearchScreenState(); } class _TestSearchScreenState extends State<TestSearchScreen> with SingleTickerProviderStateMixin { late TabController _tabController; late ScrollController _scrollController; @override void initState() { super.initState(); _tabController = TabController(length: 3, vsync: this); _scrollController = ScrollController()..addListener(_scrollListener); WidgetsBinding.instance.addPostFrameCallback((_) { _logScreenInfo(); }); } @override void dispose() { _scrollController.removeListener(_scrollListener); _scrollController.dispose(); _tabController.dispose(); super.dispose(); } void _scrollListener() { developer.log('현재 스크롤 위치: ${_scrollController.offset}', name: '스크롤 디버그'); developer.log('최대 스크롤 범위: ${_scrollController.position.maxScrollExtent}', name: '스크롤 디버그'); developer.log('최소 스크롤 범위: ${_scrollController.position.minScrollExtent}', name: '스크롤 디버그'); developer.log( '현재 스크롤 방향: ${_scrollController.position.userScrollDirection}', name: '스크롤 디버그'); developer.log('스크롤 위치가 범위 내에 있음: ${_scrollController.position.outOfRange}', name: '스크롤 디버그'); developer.log('현재 뷰포트 크기: ${_scrollController.position.viewportDimension}', name: '스크롤 디버그'); } void _logScreenInfo() { final mediaQuery = MediaQuery.of(context); developer.log('화면 정보:', name: '스크롤 디버그'); developer.log(' 화면 크기: ${mediaQuery.size}', name: '스크롤 디버그'); developer.log(' 화면 너비: ${mediaQuery.size.width}', name: '스크롤 디버그'); developer.log(' 화면 높이: ${mediaQuery.size.height}', name: '스크롤 디버그'); developer.log(' 상태 표시줄 높이: ${mediaQuery.padding.top}', name: '스크롤 디버그'); developer.log(' 바닥 패딩: ${mediaQuery.padding.bottom}', name: '스크롤 디버그'); developer.log( ' SafeArea 높이: ${mediaQuery.size.height - mediaQuery.padding.top - mediaQuery.padding.bottom}', name: '스크롤 디버그'); } @override Widget build(BuildContext context) { developer.log('TestSearchScreen 빌드 호출됨', name: '스크롤 디버그'); return Scaffold( body: SafeArea( child: NestedScrollView( controller: _scrollController, headerSliverBuilder: (BuildContext context, bool innerBoxIsScrolled) { // 헤더 부분에 들어갈 슬리버 위젯들 return <Widget>[ SliverAppBar( title: const Text('Test Search'), floating: true, snap: true, forceElevated: innerBoxIsScrolled, ), SliverToBoxAdapter( child: _buildProfileInfo(), ), SliverPersistentHeader( pinned: true, delegate: _TabBarDelegate( TabBar( controller: _tabController, onTap: (index) { developer.log('탭 변경됨: $index', name: '스크롤 디버그'); }, tabs: const [ Tab(text: 'Tab 1'), Tab(text: 'Tab 2'), Tab(text: 'Tab 3'), ], ), ), ), SliverToBoxAdapter( child: _buildFilter(), ), ]; }, // 본문 부분에는 TabBarView 배치 body: TabBarView( controller: _tabController, children: [ _buildTab(1, Colors.red), _buildTab(5, Colors.green), _buildTab(1, Colors.blue), ], ), ), ), ); } Widget _buildProfileInfo() { return Padding( padding: const EdgeInsets.all(16.0), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('User Profile', style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold)), const SizedBox(height: 8), Container(height: 100, color: Colors.grey[300]), const SizedBox(height: 16), ], ), ); } Widget _buildFilter() { return Padding( padding: const EdgeInsets.all(16.0), child: Row( children: [ Expanded( child: ElevatedButton( onPressed: () {}, child: const Text('Filter 1'))), const SizedBox(width: 8), Expanded( child: ElevatedButton( onPressed: () {}, child: const Text('Filter 2'))), ], ), ); } // 탭 컨텐츠를 위한 새로운 메서드 Widget _buildTab(int count, Color color) { return Builder(builder: (BuildContext context) { // NestedScrollView의 내부 스크롤 동작을 위해 Builder 사용 return GridView.builder( padding: const EdgeInsets.all(16), // NestedScrollView 내부의 스크롤에 맞는 physics 사용 physics: const BouncingScrollPhysics(), gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 2, crossAxisSpacing: 10, mainAxisSpacing: 10, ), itemCount: count, itemBuilder: (context, index) { developer.log('그리드 아이템 빌드: index=$index', name: '스크롤 디버그'); return Container( color: color, child: Center(child: Text('아이템 $index')), ); }, ); }); } } class _TabBarDelegate extends SliverPersistentHeaderDelegate { final TabBar tabBar; _TabBarDelegate(this.tabBar); @override double get minExtent => tabBar.preferredSize.height; @override double get maxExtent => tabBar.preferredSize.height; @override Widget build( BuildContext context, double shrinkOffset, bool overlapsContent) { return Container( color: Theme.of(context).scaffoldBackgroundColor, child: tabBar, ); } @override bool shouldRebuild(covariant SliverPersistentHeaderDelegate oldDelegate) { return false; } } Threads 앱의 프로필 화면처럼 구현하려고 합니다.현재 구현은 • 스크롤 내릴 때는 탭바만 상단에 고정되고 있고• 스크롤 올릴 때는 앱바, 프로필 정보, 탭바가 원래 위치로 복귀되고 있습니다. 문제는 탭바 아래 컨텐츠가 적을 때 발생하는 문제:스크롤 할 컨텐츠 양이 부족해도 스크롤이 불필요하게 탭바 고정 위치까지 이동하고 있습니다. 컨텐츠가 부족할 경우, 탭바 고정 위치까지 스크롤되지 않고, 컨텐츠 높이까지만 스크롤되도록 하고 싶은데 어떻게해야될까요?(스레드앱처럼구현되길원합니다)(스레드앱사진인데 포스트가없으면 스크롤이 되지 않습니다.) 고수분들 의견 부탁드립니다.
-
해결됨얄코의 떠먹여주는 객체지향 디자인 패턴
안녕하세요.
"구독자들에게 메시지를 보내는 발행 메소드는 발행자 인터페이스를 적용한 클래스로부터 호출 받습니다." 라고 설명해주셨는데요코드상에서는 Broker 클래스가 따로 Publisher 인터페이스를 적용하지 않은 상태인 것 같아서요.궁금하여 질문 남깁니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
헤더 파일 변수 선언 질문입니다
스위치 인터럽트로 xshell에 push 문구를 띄울 때 헤더 파일을 쓰지 않고 전역 변수 cahr g_f_sw_up = 0; 선언으로 할 수 있을 것 같은데 헤더 파일을 이용해서 변수를 선언 하는 이유가 있나요?