초급 유료버전과 차이점은 무엇인가요?
미해결
React & Express 를 이용한 웹 어플리케이션 개발하기
혹시 초급버전의 유료버전이 있던에 이 강좌랑 무슨 차이가 있나요? 배우는 범위가 다른건지요??
- react
173만명의 커뮤니티!! 함께 토론해봐요.
미해결
React & Express 를 이용한 웹 어플리케이션 개발하기
혹시 초급버전의 유료버전이 있던에 이 강좌랑 무슨 차이가 있나요? 배우는 범위가 다른건지요??
미해결
5개 거래소별 코인차익알림봇, 구체적인 개발 가이드 with Python
hakjuknu@gmail.com
해결됨
기초부터 배우는 Next YTMusic 클론 코딩 (with next.js 14, UI 마스터)
안녕하세요 . drawer.tsx에 있는 DrawerClose를 사용하면 useState를 통해 상태관리를 안해줘도 되지않나 싶어서 여쭤봅니다. Header쪽에 <DrawerClose> <Logo/> </DrawerClose> 이렇게 감싸주면 drawer가 열렸을때 x버튼을 누르면 똑같이 동작하더라고요. 혹시 useState를 사용하신 이유가 있을까요?
미해결
세계 대회 진출자가 알려주는 코딩테스트 A to Z (with Python)
안녕하세요. 문제 풀다가 강의랑 백준 페이지에서는 입력할수 있는 k의 범위가 서로 달라서 궁금해서 여쭤봅니다.!! 백준 페이지에서는 입력할 수 있는 k의 범위가 6<k<13인데요 강의나 노션에서는 제약 조건이 6 <=k <= 13인데 혹시 시간복잡도를 구하기 위해서 일부러 범위를 이렇게 잡은 건지 혹시 다른 이유가 있는지 알려주실 수 있을까요?
해결됨
남박사의 파이썬으로 봇 만들기 with ChatGPT
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 강의 자료에는 따로 완성된 코드를 볼 수 있는 자료가 없던데 제공되지 않는건가요?
미해결
프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
print(sum(range(1,001))) 코드 실행 시 아래 캡쳐와 같은 에러가 뜨는데, 편집기의 문제인가요?
해결됨
파이썬 알고리즘 트레이딩 파트1: 알고리즘 트레이딩을 위한 파이썬 데이터 분석
안녕하세요 수업 매우 만족하며 듣고 있습니다... 강의중에 섹션 5. 파이썬으로 페어 트레이딩 백테스팅 시작하기 객체지향 trading_summary() 메서드 추가하기 수업중 4:14 부터 음성이 빨라지더니 중간 몇 초 누락이 조금 있습니다. 감사합니다...
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
강의명 중 반복문+조건문 문제풀이 쪽에 문제 다운로드하는 링크는 따로 없을까요? 수업 자료 라고 떠서 확인해보니 다른 커리큘럼에는 수업자료를 받을수 있게 설정이 되어있는데 해당 과목 쪽만 다운로드 링크가 없어서 문의 드립니다!
해결됨
[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
dfs 영상을 쭉 보고있는데요 ㅎ 문제들 마다 규칙이 거의 무조건적으로 visited 와 2차원 graph 가 생성이 되나요 ?? visited = [] graph = [[False] *MAX for _ in range(MAX)] 2. MAX 를 두시는 이유가 뭔가요 ??
해결됨
[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
영상에서 23:48 부분 보고있는데요. 칼럼 2에 5를 제일 하단에다가 적었는 이유가 어떤 규칙이 있는건가요 ?? 그리고 5 옆에는 비워두고 1 ( 무시 ) , 2 ( 무시 ) 6을 적으신것도 어떤 규칙이 있는건가 ? 궁금해서 여쭤봅니다 !
미해결
12시간 안에 끝내는 파이썬을 활용한 크롤링
수업중 seleium 에 관하여 배웠습니다. 하지만 처음부터 뭔가 오류가 나서 잘되지 않네요 selenium은 설치가 잘 된건가요? ModuleNotFoundError NameError은 왜그런거죠?ㅠㅠ 답변 부탁드립니다. ㅠㅠ
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
안녕하세요 쌤c언어 문제에서 i % 3 이 0이 나오려면 3의 약수가 아니라 3의 배수 아닐까해서 여쭤보고자 질문드립니다!3, 6, 9 이런 식으로 말이죠 :)
해결됨
[파이썬/Python] 문과생도 이해하는 DFS 알고리즘! - 입문편
백준을 기준으로 하시는 이유가 있나요 ??
해결됨
실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
문제) 의존성 설치 후 npm run dev를 기동하면 $ npm run dev > test-example-shopping-mall@0.0.0 dev > concurrently --kill-others 'npm run dev:server' 'npm run dev:ui' [0] ''npm'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� [0] ��ġ ������ �ƴմϴ�. [1] 'run'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� [1] ��ġ ������ �ƴմϴ�. [2] ���� �̸�, ���� �̸� �Ǵ� ���� ���̺� ������ �߸��Ǿ����ϴ�. [3] ''npm'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� [3] ��ġ ������ �ƴմϴ�. [4] 'run'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α�, �Ǵ� [4] ��ġ ������ �ƴմϴ�. [4] run exited with code 1 --> Sending SIGTERM to other processes.. [3] 'npm exited with code 1 --> Sending SIGTERM to other processes.. --> Sending SIGTERM to other processes.. [1] run exited with code 1 --> Sending SIGTERM to other processes.. [0] 'npm exited with code 1 --> Sending SIGTERM to other processes.. [5] ���� �̸�, ���� �̸� �Ǵ� ���� ���̺� ������ �߸��Ǿ����ϴ�. [5] dev:ui' exited with code 1 이런 콘솔이 찍히며 테스트 서버가 실행되지 않습니다. 인코딩이 깨져서 뭐가 문젠지 추적을 못하겠어요ㅠㅠ node 버전은 강의와 동일하게 19.9.0으로 맞춰두었습니다. +) 인코딩이 깨지는 문제는 vscode터미널 말고 다른 커맨드창을 이용하니 해결 되었습니다. > test-example-shopping-mall@0.0.0 dev > concurrently --kill-others 'npm run dev:server' 'npm run dev:ui' [0] ''npm' is not recognized as an internal or external command, [0] operable program or batch file. [1] 'run' is not recognized as an internal or external command, [1] operable program or batch file. [2] The filename, directory name, or volume label syntax is incorrect. [3] ''npm' is not recognized as an internal or external command, [3] operable program or batch file. [4] 'run' is not recognized as an internal or external command, [4] operable program or batch file. [4] run exited with code 1 --> Sending SIGTERM to other processes.. [3] 'npm exited with code 1 --> Sending SIGTERM to other processes.. [2] dev:server' exited with code 1 --> Sending SIGTERM to other processes.. [1] run exited with code 1 --> Sending SIGTERM to other processes.. [0] 'npm exited with code 1 --> Sending SIGTERM to other processes.. [5] The filename, directory name, or volume label syntax is incorrect. [5] dev:ui' exited with code 1 그런데 여전히 실행이 안됩니다ㅜㅜ npm을 못찾는거 같은데 환경변수에 따로 등록을 해야하나요? npm -v하면 버전은 잘 나오는데 원인을 모르겠습니다... 현재 환경변수와 버전정보 추가합니다. +) package.json스크립트에서 작은 따옴표를 큰 따옴표로 수정해서 최종적으로 해결되었습니다... 허무하네용ㅋㅋㅋ ㅠ
미해결
[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)
네이버쇼핑크롤링을 연습도중 상품썸네일 링크를 가져와보고싶어서 연습을해봤는데 아래링크처럼했을때 첫번째 상품의 이미지링크만 가져오게되고 나머지 이미지썸네일 링크는 여러가지 다른선택자를 이용해서 시도를 해봤지만 이와같이 한개의 이미지썸네일 링크만 가져와져서 이럴때 어떻게 해야될지 궁금합니다! from selenium import webdriver import time from bs4 import BeautifulSoup import re from urllib.parse import urlparse, urlunparse driver = webdriver.Chrome() driver.get('https://search.shopping.naver.com/search/all?adQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&origQuery=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&pagingIndex=1&pagingSize=40&productSet=overseas&query=%EB%8B%AD%ED%84%B8%EB%BD%91%EB%8A%94%EA%B8%B0%EA%B3%84&sort=review&sps=N×tamp=&viewType=list') last_height = driver.execute_script("return document.body.scrollheight") while True: #스크롤끝까지 내리기 driver.execute_script("window.scrollTo(0, document.body.scrollHeight);") time.sleep(2) new_height = driver.execute_script("return document.body.scrollHeight") if new_height == last_height: break last_height = new_height html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") for item in items: # 이미지 URL 찾기 img = item.select_one(".product_img_area__cUrko img") print(img)
미해결
[신규 개정판] 이것이 진짜 크롤링이다 - 기본편
html기초 강의에서 만들어진 웹페이지를 제 컴터에서 크롬키고 주소 복붙하면 들어가지는데 핸드폰(아이폰) 크롬앱으로 주소 복붙하면 안들어가지네요 다른 컴터에서도 url만으로 들어가지는 웹을 만들고싶은데..음 웹 강의를 따로 들어야할까요? 아니면 여기서 간단히 무엇만 추가하면 될까요
미해결
[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
안녕하세요, 수업을 들으면서 간혹 타자를 잘못 치게 되는 경우가 있는데 이럴때 입력 창에서 어떻게 뒤로 가기를 하거나 빠져나갈 수 있는 방법이 있을까요? 예를들어 제가 exit을 입력해야 하는데 잘못하여 'by'로 잘못 입력 후 엔터를 치니 화살표가 뜨면서 계속 해당 칸에서만 입력이 가능합니다. 이런 경우 어떻게 원래 입력위치로 돌아가서 'exit'으로 입력을 할 수 있을까요? 현재로서는 방법을 알지 못하여 창을 아예 껐다가 모든 명령어를 다시 입력 후 재진행하고 있으나 혹시 이와 같은 상황에서 명령어로 수정이 가능할 지 궁금하여 문의드립니다. 감사합니다.
해결됨
(2026 최신!) 일주일만에 합격하는 정보처리기사 실기
코딩 강의는 다 수강했는데, 혹시라도 강의내용이 변경되면 알 수 있는 방법이 있을까요 ?
미해결
실습으로 배우는 선착순 이벤트 시스템
안녕하세요! 강사님 덕분에 현재 진행중인 프로젝트 코드에 동시성 문제 잘 적용하고 있습니다. 다름이 아니라, 현재 MSA 프로젝트를 하고 있어 쿠폰 쪽 DB는 쿠폰만 쓰기 때문에 부하에 따른 걱정은 덜어도 될 것 같아 카프카가 아닌 Redis의 INCR 명령어를 통해서 선착순 쿠폰 로직의 Race condition 문제를 잡아보려고 하고 있는데요. 질문에 앞서 프로젝트 환경을 말씀드리자면 강의와 동일하게 docker pull redis 해서 이미지로 다운받아 실행했고, 6380 포트로 연결해줘서 yml 설정과 Config 설정 또한 해줬습니다. INCR 키 값을 살짝 바꿔서 coupon_count:{couponId} 가 되도록 해줬습니다. 문제는 1000개의 쓰레드로 요청을 날렸을 때 여러번의 요청 테스트는 통과가 안된다는 점입니다.. 쿠폰 발급이 100개 되어야하는데 102, 103번 애매하게 되고 있습니다. (postman으로 API 요청 날릴 때마다 해당 키 값의 value가 1씩 잘 증가하는 것은 확인했습니다) RDB 상에서도 100개의 발급 내역이 잘 들어오고 있구요. (물론 테스트가 DB에 영향을 미치면 안되지만요ㅠㅠ) 이런 경우는 왜 그런건가요?? 코드도 첨부 하겠습니다. 감사합니다!! /* * 선착순 쿠폰 발급 */ @Transactional public CouponIssuedResponseDto issueFirstComeCoupon(CouponIssuedRequestDto request) { // 쿠폰 ID로 쿠폰을 찾고, 존재하지 않으면 예외 처리 Coupon coupon = couponRepository.findById(request.couponId()) .orElseThrow(() -> new CustomException(ErrorCode.COUPON_NOT_FOUND)); // 발급 가능한 쿠폰 수량 확인 -> Redis Long currentCount = couponCountRepository.getCount(request.couponId()); if (currentCount > coupon.getMaxQuantity()) { throw new CustomException(ErrorCode.COUPON_ISSUE_LIMIT_EXCEEDED); } // 새로운 쿠폰 발급 -> Redis에서 수량 증가 Long newCount = couponCountRepository.increment(request.couponId()); if (newCount > coupon.getMaxQuantity()) { throw new CustomException(ErrorCode.COUPON_ISSUE_LIMIT_EXCEEDED); } CouponIssued issued = CouponIssued.builder() .coupon(coupon) .userId(request.userId()) .issuedAt(LocalDateTime.now()) .build(); CouponIssued saved = couponIssuedRepository.save(issued); return CouponIssuedResponseDto.fromEntity(saved); } @Repository public class CouponCountRepository { private final RedisTemplate<String, Long> redisTemplate; public CouponCountRepository(RedisTemplate<String, Long> redisTemplate) { this.redisTemplate = redisTemplate; } public Long increment(Long couponId) { String key = "coupon_count:" + couponId; return redisTemplate.opsForValue().increment(key, 1); } public Long getCount(Long couponId) { String key = "coupon_count:" + couponId; Long count = redisTemplate.opsForValue().get(key); return count != null ? count : 0L; } } @BeforeEach public void setUp() { // Redis 초기화 redisTemplate.opsForValue().set("coupon_count:10", 0L); } @AfterEach public void tearDown() { couponRepository.deleteAll(); couponIssuedRepository.deleteAll(); redisTemplate.delete("coupon_count:10"); // 테스트 끝난 후 Redis 데이터 삭제 } @Test public void multipleUserIssueCoupon() throws InterruptedException { // Given // 쿠폰을 생성 Coupon coupon = Coupon.builder() .name("Test Coupon") .couponCode("TEST100") .discountRate(10) .maxQuantity(100L) .issuedQuantity(0L) .expiresAt(LocalDateTime.now().plusDays(30)) .couponType(CouponTypeEnum.FIRST_COME) .build(); couponRepository.save(coupon); Long couponId = coupon.getCouponId(); // 고정된 couponId 사용 Long userId = 1L; // 고정된 userId 사용 // When int threadCount = 1000; ExecutorService executorService = Executors.newFixedThreadPool(50); CountDownLatch latch = new CountDownLatch(threadCount); for (int i = 0; i < threadCount; i++) { executorService.submit(() -> { try { CouponIssuedRequestDto request = new CouponIssuedRequestDto(10L, userId); couponIssuedService.issueFirstComeCoupon(request); } catch (CustomException e) { // Expected exception when limit is exceeded } finally { latch.countDown(); } }); } latch.await(20, TimeUnit.SECONDS); // Then Long count = redisTemplate.opsForValue().get("coupon_count:10"); System.out.println("coupon_count:10 = " + count); // 디버깅용 로그 추가 assertThat(count).isNotNull(); // count가 null이 아닌지 확인 assertThat(count).isEqualTo(100); // 발급된 쿠폰의 수를 확인 long issuedCount = couponIssuedRepository.count(); assertThat(issuedCount).isEqualTo(100); }
해결됨
Next.js 시작하기
Aborting installation. Unexpected error. Please report it as a bug: Error: EACCES: permission denied, open '/Users/jeonginn/Library/Preferences/create-next-app-nodejs/config.json.tmp-982595282012e022' at openSync (node:fs:581:18) at attempt (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:8:43165) at Object.writeFileSync (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:8:38664) at Conf._write (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:8:74912) at set store [as store] (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:8:73358) at Conf.set (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:8:71962) at run (/Users/jeonginn/.npm/_npx/efeac22998af9bf2/node_modules/create-next-app/dist/index.js:74:51291) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) { errno: -13, code: 'EACCES', syscall: 'open', path: '/Users/jeonginn/Library/Preferences/create-next-app-nodejs/config.json.tmp-982595282012e022' } 설치할 때 터미널에서 이런 메세지가 나오네요 ㅠㅠ 권한 문제인거 같아서 구글링 계속 해보면서 해봤는데 안되서 글 남깁니다 ㅠㅠ