inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

vscode 실행

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

저도 관리자모드로 실행하고 싶은데 관리자모드 실행 버튼 누를때마다 아래와 같은 메시지가 뜹니다. 영상 하나하나 다 정지시켜가며 따라했는데 뭐가 문제인걸까요?

  • python
sellow20 댓글 1 좋아요 0 조회수 119

강의자료 부탁드립니다

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

저도 강의자료 부탁드립니다 ineeu45@g.skku.edu 입니다

  • python
귀한 사슴 댓글 2 좋아요 0 조회수 54

낙관적 락 테스트 실패

미해결

재고시스템으로 알아보는 동시성이슈 해결방법

안녕하세요 낙관적 락을 활용해서 조회수 증가 동시성 테스트를 하고 있습니다! 영상처럼 동일하게 로직을 작성해서 테스트 하는데 동시성 처리가 전혀 안되는 상태라 질문 드립니다ㅜㅜ 아래는 Board 엔티티입니다! import jakarta.persistence.*; import lombok.Getter; @Getter @Table(name = "board") @Entity public class Board { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @Column(name = "view") private long view; @Version private Long version = 0L; public Board(String title, long view) { this.title = title; this.view = view; } public void increaseView() { this.view += 1; } public Board() { } } 서비스 로직입니다! Catch 부분을 전혀 타지 않는 상태인거 같습니다 @Transactional public void increaseViewCountOpticLock(final long boardId) throws InterruptedException { while (true) { try { Board board = boardRepository.findByIdWithOptimistLock(boardId); board.increaseView(); // 조회수 증가 boardRepository.save(board); // 저장 break; // 성공 시 루프 탈출 } catch (ObjectOptimisticLockingFailureException e) { log.info("========================="); Thread.sleep(50); } } } import jakarta.persistence.LockModeType; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Lock; import org.springframework.data.jpa.repository.Query; import org.tkdgus.concurrdemo.entity.Board; public interface BoardRepository extends JpaRepository<Board, Long> { default Board getBoardById(long boardId) { return findById(boardId).orElseThrow(IllegalArgumentException::new); } @Lock(LockModeType.OPTIMISTIC) @Query("SELECT b FROM Board b WHERE b.id = :boardId") Board findByIdWithOptimistLock(long boardId); } DB는 MySQL이고 트랜잭션 격리 수준이나 이런건 다 기본 설정 그대로입니다! @Test @DisplayName("낙관적 락 동시성 테스트") void increaseViewCountOptimisticLock() throws InterruptedException { long boardId = 1L; int concurCnt = 100; ExecutorService executorService = Executors.newFixedThreadPool(32); CountDownLatch latch = new CountDownLatch(concurCnt); for (int i = 0; i < concurCnt; i++) { executorService.submit(() -> { try { boardService.increaseViewCountOpticLock(1L); } catch (InterruptedException e) { throw new RuntimeException(e); } finally { latch.countDown(); } }); } latch.await(); BoardDto afterBoard = boardService.findBoard(boardId); assertThat(afterBoard.view()).isEqualTo(concurCnt); } 위 테스트 코드로 테스트 하면 100이 아니라 항상 10으로 나오는데 원인을 도저히 모르겠습니다ㅜㅜ

  • java
  • spring
  • 동시성
냥덕 댓글 2 좋아요 0 조회수 276

api 버그를 활용한 서체 일괄체크에서 글자색 모두 바꾸기가 안되서 문의드립니다

해결됨

직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피

안녕하세요. 한글 2024버전에서 API 버그가 픽스 됐는지 FaceNameHangul = "모두" 로 바꿔서 실행하면 콘솔창에서도 out값이 False로 출력되면서 작동이 안됩니다. 한글이 버전업 되면서 버그 픽스가 된걸까요? 실행화면 첨부합니다.

  • python
  • 한컴오피스
김재영 댓글 2 좋아요 1 조회수 206

실습 코드 깃허브 업로드

미해결

[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]

안녕하세요! 데이터분석 직무로 SQL 수업을 듣게 되었습니다! 혹시 실습하면서 정리한 코드 깃허브에 업로드가 가능할까요? - 강의 영상에 대한 질문이 있으시면, 상세히 문의를 작성해주시면, 주말/휴일 제외, 2~3일 내에 답변드립니다 (이외의 문의는 평생 강의이므로 양해를 부탁드립니다.) - 강의 답변이 도움이 안되셨다면, dream@fun-coding.org 로 메일 주시면 재검토하겠습니다. - 괜찮으시면 질문전에 챗GPT 와 구글 검색을 꼭 활용해보세요~ - 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.

  • python
  • sql
  • mysql
  • dbms/rdbms
  • 데이터-엔지니어링
이예진 댓글 1 좋아요 0 조회수 166

자료를 다운받았는데 주피터에 뜨지않습니다

미해결

문과생도, 비전공자도, 누구나 배울 수 있는 파이썬(Python)!

제발 도와주세요... 아무리해봐도 주피터에 뜨지않아요 pip 명령어를 통해 extension업그레이드도 해봤는데 안되요..

  • python
escho94 댓글 2 좋아요 0 조회수 206

클라이언트에서 userinfo 엔드포인트 호출 시 질문

해결됨

스프링 시큐리티 OAuth2

안녕하세요 강의 초반에 oauth2Login api를 사용하여 클라이언트에서 token 요청 후 scope email, profile 이렇게 userinfo 엔드포인트 요청 시 인가 서버에서 해당 요청을 받아서 리소스 서버에게 토큰 검증을 맡기고 검증을 성공하게 되면 리소스 서버에 저장된 사용자 정보를 바로 클라이언트에게 전송하나요? 아니면 다시 인가서버로 전송하나요? 만약 scope에 openid가 포함이 안되어 있다면 인가 서버에서 토큰 검증을 수행 후 사용자 정보를 안주는 거 같은데 우리가 보통 사용하는 google, 카카오 네이버 이런 거는 포함 안 시켜도 줬는데.. 또 강의 초반에는 키클록을 사용했는데 이건 키클록 구현과는 좀 틀린가요?

  • java
  • spring
  • spring-boot
  • oauth
hoonseung 댓글 2 좋아요 0 조회수 209

강의 자료 부탁드립니다.

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

강의 자료 부탁드립니다. sindori1@naver.com 입니다. 감사합니다.

  • python
sindori1 댓글 2 좋아요 0 조회수 36

build.gradle 설정 문제 : querydsl,java21,lombok,mapstruct

미해결

실전! Querydsl

해당 스펙의 gradle설정 해보신분 이 계신다면 답변달아주시면 너무 감사하겠습니다ㅠㅠㅠ 가상스레드를 사용할예정이라 java 21, querydsl,lombok을 포함하여 개발을 시작했습니다 (이후 mapstruct를 추가함) 처음설정은 어찌저찌 일일이 지정해가면서 빌드할때 compileQuerydls 태스크만 돌린다던지 querydsl관련 설정을 덕지덕지 붙여서 어떻게 생성시키고 돌아가게는 만들었던것 같습니다. 하지만 기존 설정이 mapstruct를 붙이게 되면서 문제가 생겼고 (anotationprocessor문제로 추정) java21에서는 querydsl의 directory path 설정이라던지 기타 설정없이도 qclass가 생긴다하여 build.gradle 파일을 수정하며 삽질중인데 잘 해결되지 않아 질문글을 남기게 되었습니다. 제가 생각하기로는 lombok과querydsl,mapstruct의 anotationprocessor가 호환이 안되던지 분리해주어야 하거나 추가 설정이 필요해서 되지 않는 것인가 추측해보았습니다. 일단 기존 querydsl, lombok만 설정했던 소스와 현재 수정중인 소스를 첨부합니다 [기존파일] querydsl,lombok 설정 plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' id 'com.ewerk.gradle.plugins.querydsl' version '1.0.10' } apply plugin: 'com.ewerk.gradle.plugins.querydsl' group = 'kr.co.aaa' version = '0.0.1-SNAPSHOT' java { toolchain { languageVersion = JavaLanguageVersion.of(21) } } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { // Validation 관련 추가 의존성 implementation 'jakarta.validation:jakarta.validation-api:3.0.2' implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' developmentOnly 'org.springframework.boot:spring-boot-devtools' runtimeOnly 'org.postgresql:postgresql' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // QueryDSL 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' // QueryDSL JPA 의존성 implementation 'com.querydsl:querydsl-core' implementation 'com.querydsl:querydsl-collections' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' // QueryDSL의 JPAAnnotationProcessor annotationProcessor 'jakarta.annotation:jakarta.annotation-api' // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드 annotationProcessor 'jakarta.persistence:jakarta.persistence-api' // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드 //netty implementation 'io.netty:netty-all:4.1.97.Final' // Netty 전체 라이브러리 } // Querydsl 설정부 def generated = file('src/main/generated') // src/main/generated 경로 지정 querydsl { library = 'com.querydsl:querydsl-apt' jpa = true querydslSourcesDir = generated } sourceSets { main { java { srcDirs += "src/main/generated" // generated 폴더를 소스 경로에 추가 } } } tasks.withType(JavaCompile).configureEach { options.annotationProcessorPath = configurations.annotationProcessor options.generatedSourceOutputDirectory.set(generated) // Q 클래스가 src/main/generated에 생성되도록 설정 } // compileQuerydsl 태스크가 이미 존재하는지 확인하고, 없을 경우에만 등록 if (!tasks.names.contains("compileQuerydsl")) { tasks.register("compileQuerydsl", JavaCompile) { source = sourceSets.main.java.srcDirs classpath = sourceSets.main.compileClasspath // Main classpath 설정 options.annotationProcessorPath = configurations.annotationProcessor destinationDirectory.set(generated) // 생성 경로 설정 } } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } configurations { querydsl.extendsFrom compileClasspath } // gradle clean 시에 QClass 디렉토리 삭제 clean { delete file("src/main/generated") } tasks.named('test') { useJUnitPlatform() } [수정중인 파일] querydsl,lombok,mapstruct이 되도록 빌드하고자 했었음 plugins { id 'java' id 'org.springframework.boot' version '3.3.5' id 'io.spring.dependency-management' version '1.1.6' } group = 'kr.co.artlab' version = '0.0.1-SNAPSHOT' sourceCompatibility = '21' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-quartz' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' implementation 'jakarta.validation:jakarta.validation-api:3.0.2' implementation 'org.hibernate.validator:hibernate-validator:8.0.1.Final' implementation 'org.mapstruct:mapstruct:1.5.5.Final' implementation 'io.netty:netty-all:4.1.97.Final' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' annotationProcessor 'com.querydsl:querydsl-apt:5.0.0:jakarta' annotationProcessor 'jakarta.annotation:jakarta.annotation-api' annotationProcessor 'jakarta.persistence:jakarta.persistence-api' annotationProcessor 'org.mapstruct:mapstruct-processor:1.5.5.Final' runtimeOnly 'org.postgresql:postgresql' developmentOnly 'org.springframework.boot:spring-boot-devtools' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' // Querydsl implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' } tasks.named('test') { useJUnitPlatform() } clean { delete file('src/main/generated') }

  • java
  • jpa
  • querydsl
  • mapstruct
송아름 댓글 2 좋아요 0 조회수 419

명령어 입력 후

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

엔터를 치면 출력값이 안나오는데, 매번 컨트롤+f5를 자판으로 치는게 맞나요? 선생님은 코딩하고 바로 출력값이 나오는 것 같은데 따라서 하면 안되서 늘 마우스를 )괄호 끝에 둔 후 두 개의 키를 입력해야 나오더라구요.. 이게 맞는지 문의합니다.

  • python
sellow20 댓글 1 좋아요 0 조회수 59

또 다른 풀이 공유합니다.

해결됨

김영한의 실전 자바 - 중급 1편

질문은 아니고, 수강하시는 분들에게 도움이 되고자 제가 풀이한 또 다른 방식 공유합니다. package time.test; import java.util.Scanner; import java.time.LocalDate; import java.time.DayOfWeek; public class TestCalendarPrinter { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("년도를 입력하세요: "); int year = sc.nextInt(); sc.nextLine(); System.out.print("월을 입력하세요: "); int month = sc.nextInt(); sc.nextLine(); printCalendar(year, month); } private static void printCalendar(int year, int month) { // 사용자 입력에 따른 LocalDate 객체 생성 LocalDate ld = LocalDate.of(year, month, 1); // 요일 표지 출력 System.out.println("Su Mo Tu We Th Fr Sa"); for (int i = 0; i < ld.lengthOfMonth(); i++) { // 해당 월의 1일에 해당하는 요일을 감지하고, 이에 따라 출력 시작 위치를 지정 // ld.getDayOfWeek().getValue()는 해당 날짜의 요일 값을 int로 리턴 Sunday(0), Monday(1) if (i == 0) { for (int j = 0; j < ld.getDayOfWeek().getValue(); j++) { System.out.print(" "); } } // 다음 일을 출력. startPosition은 위에서 맞췄으므로 단순 포맷팅 출력만 하면 됨 LocalDate currentLd = ld.plusDays(i); System.out.printf("%2d ", currentLd.getDayOfMonth()); // Saturday 출력 후에는 다음 줄로 이동 if (currentLd.getDayOfWeek() == DayOfWeek.SATURDAY) { System.out.println(); } } } }

  • java
  • 객체지향
dev.rudevico 댓글 1 좋아요 1 조회수 176

api/v1/members 404 에러 질문입니다.

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 내용] 왜 404 에러가 뜨는지 모르겠네요 ㅠㅠ 도움 요청합니다.

  • java
  • spring
  • spring-boot
  • jpa
han909079 댓글 5 좋아요 0 조회수 274

모니터에 한 줄로 출력

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

C에서는 모니터의 값을 출력할 때 printf("a = %d, b = %d",a,b) 이런식으로 적어서 한줄로 표현 할 문장을 연달아 쓸수 있는데 JAVA에서는 중간에 변수를 출력하고 싶으면 무조건 끊어야하나요?

  • java
  • 객체지향
형호 임 댓글 1 좋아요 0 조회수 82

word wrap 체크 후에도 콘솔 한줄로 출력되는현상

미해결

[신규 개정판] 이것이 진짜 크롤링이다 - 기본편

vscode와 주피터 노트북 설치 후 word wrap체크까지 했는데도 콘솔에 한줄로 나오는데 왜이러는건가요 노트북은 맥북프로이고 파이썬 버전은 3.13.1이고 주피터 노트북은 vscode의 extention으로 설치되었습니다

  • python
  • 웹-크롤링
clean 댓글 1 좋아요 0 조회수 218

vscode 실행

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

2강-1강의 듣는데 왜 저는 실행이 안되나요? 엔터가 아니라 컨트롤 f5 누르면 아래와 같이 화면이 뜹니다.

  • python
sellow20 댓글 3 좋아요 0 조회수 178

vscode

미해결

프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)

다운로드하고 설치까지했는데(명령코드로 확인까지 완료) 매번 새로 실행 할 때마다 새로 설치하라고 뜨는데 어떻게 하면 되나요? 그리고 강의 경로 따라서 다운로드 했는데도 이 파일로는 관리자 실행이 안된다거 계속 떠서 all user 로 설치했는데 상관없는거 맞죠?

  • python
sellow20 댓글 2 좋아요 0 조회수 189

Test의 application.yml을 지웠을 때

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 내용] OrderServiceTest에서 테스트 메서드를 실행하면서 H2 DB에 쿼리가 들어가는지 확인하기 위해 Test 폴더 안에 resources를 지우고 상품주문 테스트 메서드 안에 RollBack(value = false), em.flush()를 통해서 실제 데이터가 들어가는것을 확인하였습니다. 그런데 다시 원래대로 돌리는 과정에서 Test폴더 안에 resource를 만들고 해당 테스트의 application.yml를 돌려났음에도 불구하고 실행했음에도 H2 DB 안에 데이터는 그대로 남더라고요. 그래서 RollBack(value = false), em.flush()를 지우고 다시 실행해도 계속 데이터가 남는데 어떻게 해결하면 좋을까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
soojinkimss 댓글 2 좋아요 1 조회수 113

docstring이 안 먹혀요

미해결

FastAPI 완벽 가이드

docstring이 안 먹혀요.. AI한테 물어봐도 해결이 안되네요 왜 저는 docstring이 안보일까요?? 다른거 summary 나 tags, description은 다 해결가능합니다.

  • python
  • sql
  • sqlalchemy
  • FastAPI
leejken530 댓글 1 좋아요 0 조회수 103

상속과 오지랖의 콜라보 예제에서 clone() 메서드에 대한 문의드립니다.

해결됨

기초 탄탄! 독하게 시작하는 Java - Part 2 : OOP와 JVM

해당 예제(22:17)의 setString(String param)에서 string 필드 변수의 값을 수정하고자 아래 구문을 사용하셨는데요, string = param.getBytes().clone(); clone() 메서드를 사용하지 않아도(아래 구문) string 필드 변수의 수정이 가능한데, clone() 메서드를 사용한 이유를 알 수 있을까요? string = param.getBytes(); 해당 의문에 대해서 얇은/깊은 복사 와 관련이 있는지 확인해보기 위해 디버깅을 해본 결과, 두 변수는 값은 같으나, 다른 메모리 위치를 갖는 것으로 확인을 했습니다. -> clone() 메서드가 있는 코드/없는 코드 모두 위와 동일하게 동작하는 것을 확인했습니다. 그래서 다른 이유로 clone() 메서드를 사용하신 거 같은데, 어떤 이유인지 문의 드립니다.

  • java
  • 객체지향
  • jvm
  • data-structure
전종락 댓글 2 좋아요 1 조회수 203

인기 태그

인프런 TOP Writers

주간 인기글