묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
선생님 premium 해결했습니다
선생님 콘솔로그 쳐서 premium위치 찾아서req.user.Domains[5].type === 'premium' 했는데 true 나와서 해결했습니다 감사합니다 앞으로 콘솔로그 쳐서 하는 습관가져야겠습니다 정말 감사합니다 ^_^!!!
-
해결됨스프링 부트 웹 개발 입문 - 따라하며 배우기
7장 DB연결에서 select 오류발생...
7장 DB연결에서 SELECT NO, coffee, kind, price,DATE_FORMAT(reg_day, '%Y.%m.%d') AS reg_day,DATE_FORMAT(mod_day, '%Y.%m.%d') AS mod_dayFROM coffee_menu; 실행시에 오류납니다.good.dhkim@gmail.com으로 소스보내드리겠습니다~
-
해결됨그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)
deleteAt(index) 함수 질문이 있습니다
선생님 안녕하세요!! deleteAt(index)함수 공부하다가 질문이 있습니다. index==0일 경우 보면 head의 값만 변경하고 첫번째 삭제할 노드의 next값은 계속 두번째 노드값을 가르키고 있는데,,제 생각에는 첫번째 노드값의 next를 null로 만들어줘야 한다고 생각하는데 선생님의 의견이 궁금합니다~
-
미해결[2024 최신] [코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
CrossAxisAlignment 질문
import 'package:flutter/material.dart'; class HomeScreen extends StatefulWidget { const HomeScreen({super.key}); @override State<HomeScreen> createState() => _HomeScreenState(); } class _HomeScreenState extends State<HomeScreen> { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text('랜덤숫자 생성기'), IconButton( onPressed: () {}, icon: Icon( Icons.settings, ), ), ], ), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, children: [ Text('123'), Text('456'), Text('789'), ], ), ), Container( width: double.infinity, child: ElevatedButton( onPressed: () {}, child: Text('생성하기!'), ), ), ], ), ), ); } }그냥 수업 내용인데, 왜 첫번째 Column에서는 container나 sizedBox하지 않고 그냥 crossAxisAlignment가 바로 적용되는 건가요?? 혹시 SafeArea 영역이 width가 최대라서 바로 횡축 정렬이 가능해지나요?
-
해결됨웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩
Mac OS AMP setup 설치 문의
안녕하세요.'웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩' 강의 초반부에 APM Setup을 진행하는데 혹시 Mac OS 환경에서는 어떻게 설치해야 하는지 가이드 해주실 수 있으실까요??추가로 뒤에 강의도 MacOS에서 실습이 가능한 부분일까요?
-
미해결처음 만난 리액트(React)
12강 실습 (섭씨 화씨)
안녕하세요 12강 실습코드를 그대로 작성했는데 섭씨온도를 적었을때 화씨온도로 자동으로 변환되어 나타나지 않습니다. 화씨온도를 먼저 적었을때도 마찬가지고요. 코드 한번 봐주실 수 있나요? 감사합니다. Calculatorimport React, {useState} from "react"; import TemperatureInput from "./Temperatureinput"; function BoilingVerdict(props){ if(props.celsius >= 100){ return <p>물이 끓습니다.</p>; } return <p>물이 끓지 않습니다.</p>; } function toCelsius(fahrenheit){ return ((fahrenheit-32)*5)/9; } function toFahrenheit(celsius){ return (celsius*9)/5+32; } function tryConvert(temperature,convert){ const input = parseFloat(temperature); if(Number.isNaN(input)){ return ""; } const output = convert(input); const rounded = Math.round(output*1000)/1000; return rounded.toString(); } function Calculator(props){ const [temperature, setTemperature] = useState(""); const[scale,setScale]=useState("c"); const handleCelsiusChange = (temperature) => { setTemperature(temperature); setScale("c"); }; const handleFahrenheitChange = (temperature) => { setTemperature(temperature); setScale("f"); }; const celsius = scale === "f" ? tryConvert(temperature, toCelsius):temperature; const fahrenheit = scale === "c" ? tryConvert(temperature, toFahrenheit):temperature; return ( <div> <TemperatureInput scale="c" temperatrue = {celsius} onTemperatureChange={handleCelsiusChange}/> <TemperatureInput scale="f" temperatrue = {fahrenheit} onTemperatureChange={handleFahrenheitChange}/> <BoilingVerdict celsius={parseFloat(celsius)} /> </div> ); } export default Calculator;Temperatureinputconst scaleNames = { c:'섭씨', f:'화씨', }; function TemperatureInput(props){ const handleChange = (event) => { props.onTemperatureChange(event.target.value); }; return ( <fieldset> <legend> 온도를 입력해주세요(단위:{scaleNames[props.scale]}); </legend> <input value={props.temperature} onChange={handleChange} /> </fieldset> ); } export default TemperatureInput;
-
해결됨한 입 크기로 잘라먹는 타입스크립트(TypeScript)
TS클래스 접근제어자 상속 질문있습니다!
class Employee2 { constructor( public name: string, protected age: number, private position: string ) {} work() { console.log("일하는중"); } } class Emp extends Employee2 { constructor( public name: string, protected age: number, public codeNum: number ) { super(name, age); this.codeNum = codeNum; } } private를 설정한 경우 클래스 Emp처럼 상속받았을때 super에서 3개 인수가 필요한데 2개를 가져왔다고 오류가 뜨는데 그렇다고 private 설정한 position을 con structor이나 super에 적어도 오류가발생하고 private를 설정한 클래스를 상속받아서 사용할때는 어떤식으로 해야할까요??
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
페이지 컴포넌트에 props 전달하는 부분 관련
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요,함수로 props를 전달하는 부분 (강좌 12:00 ~)에서,기존에는 받은 값을 int로 바꾸는 작업을 했었는데함수로 전달하면서 애초에 int값을 주는 것으로 변경했습니다. 이 변화로 인해 기존 코드에서 parseInt 관련 부분을 삭제/수정했습니다. 그런데.. 12:57 부근에서<PostDetailView id="1"> 을<PostDetailView :id="1"> 로 변경했습니다. 이 작업이 어떤 의미를 갖나요?v-bind를 추가한 것이 "1"을 string에서 int로 인식하게 하는게 이해가 되지 않습니다. 미리 감사합니다!
-
미해결한 입 크기로 잘라먹는 타입스크립트(TypeScript)
인터페이스 강의 관련 질문있습니다
interface Person { name: string; age: number; sayHi(): void; // 오버로딩 sayHi(a: number, b: number): void; } const person: Person = { name: "name", age: 1, sayHi: function () { console.log("hi"); }, }; person.sayHi(); person.sayHi(1, 2);이런식으로 코드가 있는데sayHi에 매개변수가 없을땐 console.log("hi")를있을땐 console.log(`Hi ${a}, ${b}`) 이런식으로 만들고싶은데 person을 초기화할때 어떤식으로 해야할지 모르겠습니다 person객체 안에 sayHi를 두개적으면 당연하게도 오류발생하더라고요ㅜㅜ 아 그리고 type은 마우스 올렸을때 구조를 알수있는데인터페이스는 마우스 올렸을때 구조를 안알려주던데 혹시 구조를 알수있는 방법이있나요? 해당 인터페이스명을 보고 선언한 코드 위치에가서 구조를 확인하는방법밖에없을까요?
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
자바 기술 서적 문의할게요
정수님 블로그를 보다가 자바 기술 서적으로 자바의정석을 읽으신것같아서 그런데 자바의정석이 입문자로써는 조금 이해하기 힘들수도 있다고 하더라구요 그런데 비전공자인 제가 자바강의만 2개정도 듣고 자바의정석을 독학하려고하는데 혹시 이해하는데 문제없을까요?? 조금 어려우면 이것이 자바다 책을 살려고합니다. 물론 유튜브 강의도 같이 볼예정입니다!!그리고 자바의정석3판이 나온지 7년이나되었고 내년에 4판이 나온다고 하던데 지금 3판으로 공부하는데 문제가 없을까요?? 버전들도 많이 바꼇을것같아서요 ㅠㅠ
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL 문제풀이
4번문제풀이
동일하게 코드를 작성했는데, 결과는 맞지 않다고 나오네요. null값이 제외되는거 같은데 어떻게 하면 null값을 나오게 하나요SELECT firstName, lastName, city, State FROM Person INNER JOIN Address ON Person.personId = Address.personId
-
미해결실습으로 배우는 선착순 이벤트 시스템
왜 쿠폰수가 너무 많을까요?
분명 현재 없는 상태이고결과가 자꾸 이상하게 나와서 sout 처리를 잠시 해보았습니다 package com.example.api.service; import com.example.api.domain.Coupon; import com.example.api.repository.CouponCountRepository; import com.example.api.repository.CouponRepository; import org.springframework.stereotype.Service; @Service public class ApplyService { private final CouponRepository couponRepository; private final CouponCountRepository couponCountRepository; public ApplyService(CouponRepository couponRepository, CouponCountRepository couponCountRepository) { this.couponRepository = couponRepository; this.couponCountRepository = couponCountRepository; } public void applyV1(Long userId) { Long count = couponRepository.count(); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } public void applyV2(Long userId) { Long count = couponCountRepository.increment(); System.out.println(count); if(count > 100) { return; } couponRepository.save(new Coupon(userId)); } } @SpringBootTest class ApplyServiceTest { @Autowired private ApplyService applyService; @Autowired private CouponRepository couponRepository; @Test public void applyOnce() { applyService.applyV1(1L); long count = couponRepository.count(); Assertions.assertEquals(1L, count); } @Test public void 여러명응모V1() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV1(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); assertThat(count).isEqualTo(100); } @Test public void 여러명응모V2() throws InterruptedException { int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(threadCount); for(int i=0; i<threadCount; i++){ long userId = i; executorService.submit(() -> { try { applyService.applyV2(userId); } catch(Exception e) { System.out.println(e); }finally { latch.countDown(); } }); } latch.await(); long count = couponRepository.count(); org.assertj.core.api.Assertions.assertThat(count).isEqualTo(100); } } 그런데 여러명응모V2 test를 실행시에 count를 출력시다음과 같은 수가 나옵니다. 20003200112001220013200152001620017200182002020022 ??? 한번 할때마다 1000씩 쿠폰의 수가 증가중인데요;;;조회했을때는 empty라 나오는데 이렇게 되는 연유를 잘 모르갰습니다. 테스트 코드라서 rollback이 되야할거 같은데 그렇지 않는것도 잘 모르겟네요;; ㅠㅠ
-
미해결C# 입문부터 안드로이드, 윈도우 앱(UWP) 동시에 만들기 Xamarin Forms(자마린 폼즈) + Maui(마우이)
안드로이드에서 글자가 안보이는 현상
xamarin으로 프로젝트 생성후최초로 생성된 프로젝트를 apk로 만들어서 핸드폰에서 실행하면글자들이 안보이는 현상(label에 있는 글자들, 버튼에 올라간 글자는 보임) 물론 안드로이드 에뮬레이터에서는 잘보이구요.안드로이드 버전 11로 컴파일함
-
미해결
구글 링크 오류납니다.
보내주신 안드로이드 링크 접속시 오류가 나옵니다. 확인 후 재링크 부탁드립니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
참조 관련 질문있습니다.
안녕하세요. 질문이 두 가지 있습니다.강의에선 node_modules가 호스트에 없어서 참조에서 제외하고, 나머지 소스코드는 존재하여 전부 참조하는식으로 진행이 되었는데,그럼 docker build시 COPY ./ ./ 이부분은 아예 필요가없는거 아닌가요? 이미지에 이미 소스가 존재할텐데, 강의처럼 볼륨참조 설정을 넣어주면 컨테이너 생성 시, 이미 존재하는 소스는 호스트에서 가져와서 덮어쓰기된다고 이해하면 될까요?
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
프로그래밍 난이도 수준
안녕하세요 선생님 한가지 궁금한게 있어 문의 드립니다.이 모든 문제의 난이도는 level 1~2까지의 수준인가요? 아니면 level3까지의 문제 난이도도 있는지 궁금합니다.
-
미해결파이썬으로 장고(Django) 공략하기: 입문
데이터 새성시 forms.py, models.py 관련문의
예제 내용 그대로 수행하였고요. 몇가지 질문드립니다.forms.py 에서의 title 정의와, models.py에서 내린 title 정의가 서로 다를 경우, forms.py 가 우선시 되는 것 같은데요. 속성값(max_length)이 달라도 상관없는 지.. [froms.py]class PostForm(forms.Form): title = forms.CharField(label='제목', max_length= 2) [models.py]class PostForm(forms.Form): title = forms.CharField(label='제목', max_length= 2)content = forms.CharField(label='내용', widget = forms.Textarea) ModelForm 을 사용시 model =Post 로 가져오는 것 같은데, 기본적인 models 내용은 참조하게 되는건가요? class PostForm(ModelForm):class Meta :model = Postfields = ['title','content']labels = {'title' : _('제목'),'content': _('내용'),}help_texts={'title' : _('제목을 입력해주세요.'),'content' : _('내용을 입력해주세요. '),}error_messages = {'name' : {'max_length': _("제목이 너무 깁니다. 30자 이하로 해주세요.")}}title 입력 폼에서 성공시에는 confirm 으로가고, max 길이 오류시에 create/로 가도록 했었는데요.[views.py]def confirm(request):form = PostForm(request.POST)if form.is_valid():return render(request, 'second/confirm.html', {'form': form})return HttpResponseRedirect('/second/create/') ModelForm 으로 사용시에는 동일한 코드이고 다만 에러가 나면 list화면으로 넘어가도록 되어 있는데, 성공을 해도 list 화면으로 넘어가는 이유를 모르겠습니다.[views.py]def create(request):if request.method =='POST':form = PostForm(request.POST)if form.is_valid():new_item = form.save()return HttpResponseRedirect('/second/list/') form = PostForm()return render(request, 'second/create.html', {'form':form})
-
해결됨[리뉴얼] React로 NodeBird SNS 만들기
SSR을 적용해야하는 부분과 그렇지않은 부분에 대해
강좌에서 알려주신대로 페이지의 getServerSideProps로 초기로드를 SSR하는 방식을제 프로젝트에서도 적용을 했는데요. 모든 페이지에 SSR을 진행하다보니막상 배포해서 돌려보면 첫페이지 로드를 빨리 보여주는 장점보다,서버에서 렌더링을 기다려야하는 단점이 눈에 띄게 보였습니다.사실 모든 페이지에서 SSR을 적용하면 기존의 전통적인 웹과 다를바가 없지않나라는생각들 들고, SEO vs SPA 둘 중의 하나의 고민으로 오게되는데 제로초님은 이런경우에어떤 기준으로 판단을 하시나요?getStaticProps() 가 SSG(static site generation)에 해당하고 getServerSideProps() 가 SSR(server side rendering)에 해당하는것이 맞나요?
-
미해결
유니티 패키지가 계속 오류가 납니다
제가 대학교 동아리로 처음 유니티를 배우고 있는데 다른사람과 같이 만드는 중이어서 제가 만든 메인 화면을 패키지로 압축해 다른 사람들과 같이 만드는 파일 안에 넣었는데 계속 투명하게 오류가 나요유니티 버전은 똑같은데 컴파일 오류가 난다고 나옵니다. 지웠다 재설치를 했는데도 같은 결과인데 어떻게 해결해야 하나요?
-
미해결언리얼 엔진4 입문 (C++ 기반)
UBTTask_Attack의 TickTask 함수 호출이 안되는 것 같습니다.
생성자에서 bNotifyTick = true;를 해주고틱테스크 함수에 디버깅 포인트를 찍고 디버깅을 해봤으나 함수에 들어오지 않는 것 같습니다.혹시 저 부분 외에 다른 작업도 해주어야 하나요? 그리고 람다를 사용해서 계속 델리게이트를 구독하는 것 같아서 bool값을 통해 초기 한 번만 등록되도록 바꿔봤는데 혹시 문제가 있을까요? 아직 델리게이트를 정확히 이해하지 못해 질문 드립니다.