묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
오프셋 커밋 과정에서 장애 발생 시 카프카에서는 어떤 처리가 일어나는지 궁금합니다
자동 커밋 옵션을 활성화한 경우 일정 시간마다 오프셋 커밋을 실행하는 것을 이해했습니다. 결제 이벤트를 처리하는 카프카 컨슈머가 100건의 레코드를 가져와서 한번에 처리하도록 구현되어 있을 때 레코드 처리 중간에 장애가 발생하여 오프셋 커밋을 하지 못하는 경우 어떤 일이 일어나는지 궁금합니다. 50번째 레코드를 처리하다가 장애가 발생했다고 가정하면 오프셋 커밋이 되지 못했으므로 다른 컨슈머 애플리케이션이 이미 처리된 100건의 레코드를 다시 가져와서 1~50번째 레코드가 중복으로 이벤트가 처리될 것 같습니다. 이는 컨슈머 애플리케이션은 언제든지 중복으로 레코드를 소비할 수 있다는 것으로 이해가 되고, 컨슈머 애플리케이션 로직을 작성할 때는 항상 중복 레코드가 처리되지 않도록 방어해야한다는 것을 의미한다고 생각합니다. 제가 만약 방어 로직을 작성한다고 하면 레코드의 메시지마다 유일한 키값을 같이 전송하여 해당 값을 Redis에 저장하고, redis에 저장된 상태라면 메시지를 처리하지 않도록 구현할 것 같습니다. 제가 오프셋과 관련하여 이해한 내용이 정확한지, 그리고 실무에서도 Redis를 활용한 중복 처리 방지 로직이 효과적인 방법인지 궁금합니다. 또한, 이와 같은 상황을 해결하기 위해 다른 방법을 사용하시는지도 알고 싶습니다. 답변 주시면 감사하겠습니다!
-
미해결워드프레스(WordPress) 완전정복
$post가 정의되어있지 않다는 메시지가 나오네요.
variablues.php에 이렇게 하고 실행하면 $post가 정의 되어있지 않다는 에러 메시자가 뜨네요. 이유를 모르겠습니다.
-
해결됨김영한의 실전 자바 - 중급 1편
사실상 final 변수에 관하여 (값의 변경에 관한 질문입니다)
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요. 강의를 보던 중 궁금한 점이 생겼습니다.사실상 final 변수는 (final 키워드를 넣은 것 처럼) 한 번 값이 설정되면 그 후에 값을 변경하지 못합니다.=> 질문에 대한 핵심은 다음과 같습니다. 그렇다면 인스턴스를 생성하기 전에 지역 변수의 값을 변경하는 건 괜찮지 않을까? 근데 왜 안될까? => 그렇게 생각한 이유는 다음과 같습니다.지역 변수를 캡쳐하는 시점은 (강의 속 LocalPrinter) 지역 클래스의 인스턴스 생성을 시도 한 후 입니다.(제 생각에,,) 코드는 위에서 아래로 읽기 때문에 Printer printer = new LocalPrinter(); 가 적혀져 있기 전에는 지역 변수의 값을 변경해도 되지 않을까? 하는 이유입니다.
-
해결됨독하게 시작하는 C 프로그래밍
0.1F + 0.1F 에서 오차가 나는 이유
부동소수점 오차 관련하여 질문이 있습니다.부동소수점 방식에서 순환소수를 표현할 때는 오차가 난다는 것을 이해하였습니다.하지만 0.1은 순환소수가 아니어서 부동소수점 방식으로도 정확하게 표현할 수 있는데, 강의에서처럼 오차가 나는 이유가 무엇인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
corr() 실행 안됨
이번에 복습하면서 처음부터 수업 다시 듣고 있는데요.예전엔 corr()함수 오류없었는데, 이번엔 오류가 발생하더라고요. 혹시 상단에 코드 입력이 잘 못 되었나 일일이 다 확인해봤는데도 문제 없었고, 심지어 선생님 기본자료로 돌려봐도 똑같이 오류가 나오네요. corr() 실행 조건이 문자열 항목 있으면 안되게끔 바뀐거 같습니다. 예전에는 문자열 칼럼있어도 알아서 걸어서 계산했는데.... 앞으로 어떻게 사용하면 좋을지 알려주시면 감사하겠습니다
-
미해결입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]
강의 커리큘럼 질문있습니다.
안녕하세요. 강사님, 강의 잘 듣고 있습니다."입문자를 위한 코딩테스트 핵심(이론과 문제풀이) [Python]" 강의 다 들어가는데, 해당 강의 완강한 이후에"파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)" 이 강의 들으면 될까요?
-
해결됨스프링 부트 - 핵심 원리와 활용
server project import 시 에러 발생
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]server 프로젝트를 gradle import 시 아래와 같은 에러가 발생합니다.The supplied phased action failed with an exception.Could not open cp_init generic class cache for initialization script 'C:\2023-12-JAVA-DEVELOPER\spring-workspace\.metadata\.plugins\org.eclipse.buildship.core\init.d\eclipsePlugin.gradle' (~~\.gradle\caches\7.5\scripts\exvtfib8x4d7xhxmo1dku6nlm).BUG! exception in phase 'semantic analysis' in source unit '_BuildScript_' Unsupported class file major version 65Unsupported class file major version 65 해결 방법이 궁금합니다.(+추가) 프로젝트의 gradle version을 최신 버전으로 높이니 import까진 성공했는데, src 폴더가 생성되질 않았습니다. 그냥 제가 수동으로 생성해서 쓰면 될까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
데이터베이스 테이블에서 해당 컬럼을 찾을 수 없음이 뜹니다.
JPA 코드를 다 작성하고 실행하려고 할 때 DB에서 해당 컬럼을 찾을 수 없다고 뜨네요아래는 에러코드입니다.org.hibernate.exception.SQLGrammarException: could not prepare statement [Column "M1_0.USERNAME" not found; SQL statement: select m1_0.id,m1_0.username from member m1_0 where m1_0.username=? [42122-224]] [select m1_0.id,m1_0.username from member m1_0 where m1_0.username=?]package hello.hellospring.repository; import hello.hellospring.domain.Member; import jakarta.persistence.EntityManager; import jakarta.persistence.*; import java.util.List; import java.util.Optional; public class JpaMemberRepository implements MemberRepository { private final EntityManager em; public JpaMemberRepository(EntityManager em) { this.em = em; } public Member save(Member member) { em.persist(member); return member; } public Optional<Member> findById(Long id) { Member member = em.find(Member.class, id); return Optional.ofNullable(member); } public List<Member> findAll() { return em.createQuery("select m from Member m", Member.class) .getResultList(); } public Optional<Member> findByName(String name) { List<Member> result = em.createQuery("select m from Member m where m.name = :name", Member.class) .setParameter("name", name) .getResultList(); return result.stream().findAny(); } } 위에는 JpaMemberRepository 코드이고아래는 테스트 코드입니다.테스트 코드에서 오류가 발생 할 때 memberService.join에 빨간 밑줄이 생깁니다.그리고 디버그 해보면 JpaMemberRepository 코드에서 findByName에 쿼리문 쪽에 문제가 발생했다고 뜹니다.. 코드는 다 똑같이 작성했는데 뭐가 문제일까요 ㅠㅠpackage hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; @SpringBootTest @Transactional class MemberServiceIntegrationTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Test void 회원가입() { //given Member member = new Member(); member.setName("spring"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { //given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); //when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } }
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
4-A 어디서 틀렸는지 궁금합니다.
http://boj.kr/7effb2a3b4f44d839abcd6ebb1898979 1. 비트마스킹을 이용한 조합 구하기.2. 최소 영양소를 만족하는 조합 걸러내기.3. 그 중 최소 가격 갱신하기.4. 그때의 음식 인덱스 모으기.순으로 풀어갔는데 4에서 막혔습니다. 왜 틀린걸까요?
-
해결됨모든 개발자를 위한 HTTP 웹 기본 지식
순수 html을 사용하지 않을떄도 url를 이용하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]앱 클라이언트나 Ajax? 라고 부르셨던 리액트도 url를 이용하여 json 데이터를 서버와 통신을 하나요?URL를 이용하지 않으면 어떤 방식을 이용하나요??
-
미해결내 업무를 대신 할 파이썬(Python) 웹크롤링 & 자동화 (feat. 주식, 부동산 데이터 / 인스타그램)
부동산 KB 시세 크롤링 문의
kb시세를 크롤링하는 부분에서 같은평형대가 존재하면 마지막에 있는 평형대의 시세를 가져오는것 같습니다.예를들어 해당단지에 117A 타입과 117B타입이 있습니다.아파트의경우 A타입의 거래는 많지만 B타입은 거래가 없습니다.그래서 A타입의 시세를 조회해야하는데 코드 특성상 같은평형이라면 마지막에 수행한 시세정보를 가져오게 되어있습니다. B타입의 시세를 가져오게 되면 현 시세와 맞지 않는 부분이있습니다. 같은평형대가 있다면 A타입의 시세를 가져오는 코드가 궁금합니다. #kb시세 series_list = [] for _, row in final_complex_detail_df.iterrows(): complex_num = row['complexNo'] area_num = row['pyeongNo'] url = "https://new.land.naver.com/api/complexes/{}/prices?complexNo={}&tradeType=A1&year=5&priceChartChange=false&type=table&areaNo={}&provider=kbstar".format( complex_num, complex_num, area_num ) res = requests.get(url, headers=headers) data_dict = res.json() try: series = pd.DataFrame(data_dict['marketPrices']).iloc[0] series['complexNo'] = complex_num series['pyeongNo'] = area_num series_list.append(series) except: continue time.sleep(0.03) price_df = pd.concat(series_list, axis=1).T
-
해결됨블렌더 코지 리빙룸 아이소메트릭 모션그래픽
Curve -> Rectangle 기능이 없습니다.
안녕하세요. 항상 강의를 잘 보고 있습니다.다름이 아니라 아기자기한 소품 모델링 강의에서 6분경에 Curve -> Rectangle을 선택하는 부분이 나오는데요. 동일하게 진행을 하려고 했으나 제 블렌더에서는 커브에 많은 기능이 나오지 않는 것을 봤습니다. 제가 중간에 놓쳤을 수도 있고... 따로 검색을 좀 해봤는데 이와 관련된 답변을 찾지 못해.. 커뮤니티에 문의를 드립니다.🥲
-
미해결실리콘밸리 엔지니어와 함께하는 OpenAI API (ChatGPT)
openai api key 환경변수
안녕하세요 선생님. openai 에서 apikey 발급후 공식사이트에서 알려준대로 환경변수로 세팅후 파일실행을하는데 오류가뜹니다...환경변수로지정해서 어떻게해야하나요..(참고로 2~4번 모두했는데 안되서여)
-
미해결
No Persistence provider for EntityManager named hello 오류
실행하면 위처럼 오류 발생합니다. 위 사진은 현재 폴더 구조입니다. <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="jakarta.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="jakarta.persistence.jdbc.user" value="sa"/> <property name="jakarta.persistence.jdbc.password" value=""/> <property name="jakarta.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <!-- <property name="hibernate.hbm2ddl.auto" value="create" />--> </properties> </persistence-unit> </persistence> 위 코드는 persistence.xml입니다. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0.0</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> </properties> <dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.3.10.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.1.214</version> </dependency> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> </dependencies> </project>위 코드는 pom.xml입니다.
-
해결됨수학으로부터 인류를 자유롭게 하라(미적분학 Part.I) - 미분
단일변수 함수 (one-variable function)미분. 다항식, 로그함수, 삼각함수등에 미분
단일변수 함수 (one-variable function)에 대한 미분. 다항식, 로그함수, 삼각함수등에 대한 미분에 대한 내용은 part 2에 나오나요?
-
미해결실전! Querydsl
JPAQueryFactory 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]김영한님 강의대로 spring 3.x.x버전으로 제대로 실행을 했는데 사진처럼 에러가 발생하네요... 인텔리제이에서 file->invalidate cache-> invalidate and restart했는데도 안되네요. 제 jdk는 17입니다. 추가로 저는 Q클래스가 build/calssess안에서 생성이되고 강의와 달리 generated에는 Q클래스가 아닌 QHello.java로 생성이됩니다.plugins {id 'java'id 'org.springframework.boot' version '3.2.2'id 'io.spring.dependency-management' version '1.1.4'}group = 'midas'version = '0.0.1-SNAPSHOT'java {sourceCompatibility = '17'}configurations {compileOnly {extendsFrom annotationProcessor}}repositories {mavenCentral()}dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'implementation 'org.springframework.boot:spring-boot-starter-security'implementation 'org.springframework.boot:spring-boot-starter-validation'implementation 'org.springframework.boot:spring-boot-starter-data-redis'implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'implementation 'org.springframework.boot:spring-boot-starter-mail'implementation 'io.jsonwebtoken:jjwt-api:0.12.5'implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'implementation 'org.jetbrains:annotations:24.0.0'implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"annotationProcessor "jakarta.annotation:jakarta.annotation-api"annotationProcessor "jakarta.persistence:jakarta.persistence-api"runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.5'runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.5'implementation 'org.springframework.boot:spring-boot-starter-web'compileOnly 'org.projectlombok:lombok'runtimeOnly 'com.mysql:mysql-connector-j'annotationProcessor 'org.projectlombok:lombok'testImplementation 'org.springframework.boot:spring-boot-starter-test'testImplementation 'org.springframework.security:spring-security-test'}tasks.named('test') {useJUnitPlatform()}clean {delete file('src/main/generated')}
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
다형성 함수 질문 있습니다.
안녕하세요.SuperKnight 객체에 Player를 상속받고 있는 Knight객체를 상속 받았는데, override를 통해 SuperKnight 객체에도 Move함수를 구현했습니다.class SuperKnight : Knight // 이중 상속{ public override void Move() { base.Move(); Console.WriteLine("SuperKnight 이동!"); }} 그후 main에서 SuperKnight superKnight = new SuperKnight(); superKnight.Move();Move 함수 호출 시 최상위 부모(Player), 부모(Knight), 자식(SuperKnight)의 Move함수가 순차적으로 콜 되던군요.(아래처럼)Player 이동!Knight 이동!SuperKnight 이동!이게 맞는 거죠?
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
build.gradle을 변경하면 오류가 납니다. 이유가 뭘까요?
validation 프로젝트 진행 중 build.gradle을 아래와 같이 변경하면 그래들 빌드 오류가 납니다.다른 프로젝트들을 진행할 때는 문제가 없었는데 이유가 뭘까요? A problem occurred configuring root project 'validation'.> Could not resolve all artifacts for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.4. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.4 plugins { id 'java' id 'org.springframework.boot' version '3.2.4' id 'io.spring.dependency-management' version '1.1.4' } group = 'test' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }
-
해결됨김영한의 실전 자바 - 중급 1편
catch 문
catch 블록에서 예외를 처리할 때, 하위 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서는 체크 예외(checked exception)뿐만 아니라 언체크 예외(unchecked exception)에도 마찬가지로 적용되나요? 심지어 두개의 catch 블록이 실제 catch 를 못한다고 하더라도 애당초 compile error 가 발생하는 문제이기 때문에 항상 예외없이 클래스의 예외를 먼저 잡고, 그 다음에 상위 클래스의 예외를 잡는 순서로 진행해야 하나요 ?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
질문이 있습니다.
안녕하세요.C# 기본 문법 클래스 형식 변환에서EnterGame함수를 통해 인자로 들어오는 player를 Mage로 형변환하여 Mage타입만 들고 있는 필드(int mp)를 수정하는 걸 보여주셨는데, 이렇게 되면 knight 타입의 함수도 따로 만들고, 다른 직업도 따로 만들어야 하는 거 아닌가요?저 함수 하나로 모든 직업을 커버하는 방법은 어떤게 있을까요?