inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

@JobScope JobParmeter Binding 질문

미해결

스프링 배치

안녕하세요. @JobScope에 대해서 궁금한게 생겨서요! @Jobscope 를 쓰면 갖는 이점에 대해서는 이해했습니다. 웹어플리케이션이 실행될 때, Job Bean 객체에는 Scope의 JDKProxy 또는 CGLibProxy가 주입되는 것을 이해했고 Step 메소드 실행 시, 실제 Step 객체가 주입되는 것을 이해했습니다. 그러므로 여러 스레드 ( 병렬 처리 ) 가 요청에 대한 처리를 할 때, thread safe에 대한 이점도 있을 거고 동시성에도 이점이 있을 거라고 생각됩니다. 여기서 궁금한게, @Value JobParmeters를 바인딩 하는 부분이 궁금한데요. 질문 1. 이 JobParmeters는 그럼 Job에서 설정한 여러 Jobpameters 중 꼭 한가지 key값이여야만 하는 걸까요? 가령, name, requestDate 라한다면 둘 중 하나를 선택해도 무방한거죠? 두개는 안될까요? 2. 당연한 말이겠지만 여러 Job들에서 다른 Step을 공유하기 위해선 이 Jobparmeter를 정적인 변수보다는 requestDate와 같은 yyyyhhmm ss 같은 변수를 사용하는 것이 좋겠죠? 감사합니다!

  • spring-boot
  • spring-batch
portal_dev+techfin 댓글 1 좋아요 0 조회수 329

updateform, A user with that username already exists. 에러

미해결

작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지

updateform에서 disabled = True로 변경하여 url로 접속해보면 제대로 적용이 되는 것을 확인할 수 있습니다. 하지만 비밀번호를 입력하고 제출을 누르면 계속해서 A user with that username already exists. 메시지만 뜨고 있는 상황입니다. ㅠㅠㅠ

  • python
  • django
  • docker
kookb2000 댓글 3 좋아요 3 조회수 1590

태그의 속성값을 텍스트로 출력할수있나요?

미해결

안녕하세요 현재 파이썬을 공부중인 학생입니다. 이전까지는 태그의 값을 텍스트로 출력하고 있었는데 태그안에 속성값을 텍스트로 출력할일이 생겨서 여러 방면으로 검색 및 시도를 해보고 있는데 잘 안되네요 여기서 data-taitle="BLACK(99)" 의 BLACK(99) 를 텍스트로 출력하고 싶습니다. 어떻게 하면 될까요? #python

  • python
  • selenium
kshssi 댓글 1 좋아요 0 조회수 613

JdbcCursorItemReader ,JdbcBatchItemWriter한개의 db에서 데이터 전환

미해결

스프링 배치

안녕하세요 JdbcCursorItemReader 와 JdbcBatchItemWriter를 이용해 기존 데이터를 변환해서 다른 테이블로 이관하는 테스트를 진행하고 있습니다. 근데 JdbcCursorItemReader 에서 select는 잘되는데 JdbcBatchItemWriter에서 insert쿼리를 날릴때 무한대기 현상이 발생하는거 같습니다. @Bean public Job transferDBJob(JobRepository jobRepository, Step transferBookStep){ return new JobBuilder("transferDBJob",jobRepository) .start(transferBookStep) .build(); } @Bean public Step transferBookStep(JobRepository jobRepository, PlatformTransactionManager tm, JdbcPagingItemReader<TransSpecies> pagingSpeciesReader, ItemProcessor<TransSpecies, Species> transItemProcessor, JdbcBatchItemWriter<Species> transItemWriter) { return new StepBuilder("transferBookStep",jobRepository) .<TransSpecies,Species>chunk(10,tm) .reader(pagingSpeciesReader) .processor(transItemProcessor) .writer(transItemWriter) .build(); } @Bean public JdbcPagingItemReader<TransSpecies> pagingSpeciesReader(DataSource dataSource,PagingQueryProvider createQueryProvider) { return new JdbcPagingItemReaderBuilder<TransSpecies>() .name("transSpeciesReader") .pageSize(10) .fetchSize(10) .dataSource(dataSource) .rowMapper(new BeanPropertyRowMapper<>(TransSpecies.class)) .queryProvider(createQueryProvider) .build(); } @Bean public PagingQueryProvider createQueryProvider(DataSource dataSource) throws Exception { SqlPagingQueryProviderFactoryBean queryProvider = new SqlPagingQueryProviderFactoryBean(); queryProvider.setDataSource(dataSource); queryProvider.setSelectClause("SPECIESKEY,AUTHOR,TITLE"); queryProvider.setFromClause("FROM TRANSSPECIES"); Map<String, Order> sortKeys = new HashMap<>(1); sortKeys.put("SPECIESKEY", Order.ASCENDING); queryProvider.setSortKeys(sortKeys); return queryProvider.getObject(); } @Bean public ItemProcessor<TransSpecies,Species> transItemProcessor(){ return transSpecies ->{ Species species = new Species(); species.setRecKey(transSpecies.getSpeciesKey()); species.setTitle(transSpecies.getTitle()); species.setAuthor(transSpecies.getAuthor()); return species; }; } @Bean public JdbcBatchItemWriter<Species> transItemWriter(DataSource dataSource){ return new JdbcBatchItemWriterBuilder<Species>() .sql("INSERT INTO SPECIES VALUES (:recKey, :author, :title)") .beanMapped() .dataSource(dataSource) .build(); } 현재 작성한 간단하 코드이며 로그에는 현재 이렇게 무한대기 상태에 놓이게 됩니다. 확인 부탁드립니다 ㅠㅠ

  • spring-boot
  • spring-batch
object 댓글 1 좋아요 -1 조회수 713

스프링 배치 스케일 아웃 관련 문의

미해결

스프링 배치

안녕하세요. 선생님 강의 들으면서 실무에 Spring Batch를 잘 녹여보고자 노력하고 있는 직장인입니다. 다름이 아니라 부서에서 Spring Batch를 활용해 배치의 성능을 높여야 하는 상황이라, 스케일 아웃을 고려하고 있는데요. 문제는 스케일 아웃을 하되 워커(혹은 슬레이브) 서버에서는 DB에 접근을 하지 못하는 상황이라, read-process-write의 구조에서 read/write는 마스터 서버에서 처리 해야 하는 상황입니다. 그래서 처음에는 AsyncItemProcessor/AsyncItemWriter를 활용하여, 마스터 프로세스에서 워커 서버들에 HTTP API를 호출하고 결과를 리턴 받으면 write를 하는 방식을 고려 했는데요. 그런데, chunk 단위로 순차적으로 read-process-write를 하다보니 기대보다는 성능이 안나오고 있습니다 😭 사실 기대했던 바는 process를 하고 있을 때 read/write도 동시에 진행되면 어떨까였습니다. (이 부분이 혹시 잘못됐다면 지적해주세요.) 그래서 든 생각이 read-process-write가 chunk 단위로 순차적으로 되는 진행되는 것이 아니라, reader와 processor와 writer가 서로 publisher-subscriber 구조로 개별적으로 동작하는게 어떨까라는 생각이 들었습니다. 조금 더 말씀드리면 reader가 파일을 읽어 큐에 넣고 processor는 큐의 데이터를 읽어 처리하고 writer가 보고 있는 queue에 넣으면 writer가 해당 큐를 참조하여 파일 write를 하는 방식입니다. 혹시 이 아이디어에서 제가 잘못 생각하고 있는게 있을까요? 아니면 기존의 chunk oriented tasklet을 손보면 말씀드린 것과 같은 구조를 만들 수가 있나요?

  • spring-boot
  • spring-batch
SeriousKang 댓글 1 좋아요 0 조회수 723

@Autowired 관련 질문입니다.

미해결

스프링 배치

@Autowired private Job fileJob; @Autowired private Job apiJob; 각각 다른 클래스에서 주입받아야하는 Job이 다른데 변수 명으로 스프링이 알아서 알맞은 Job을 주입해주는것인가요?

  • spring-boot
  • spring-batch
dohyun_lim 댓글 1 좋아요 1 조회수 493

branch Part11 관련질문입니다.

미해결

스프링 배치

안녕하세요 정수원 선생님 브랜치 Part11에 관해 동작문의가 2개 있습니다. 1) SendJobConfiguration에서 apiJob이 제일 먼저 실행이 되는 job이고 apiJob에서 apiStep1 (시작로그를 남기는) , apiStep2(끝냈다는 로그를 남기는) 사이에 주입받은 jobStep을 실행시키는데 이 jobStep은 SendChildJobConfiguration에 있는 jobStep 인가요? 2) 이후에 jobStep에서 apiMasterStep을 실행시키고 Partition으로 쪼개서 3개의 스레드에 할당할때는 apiSlaveStep에서 read부터 각 스레드가 담당하는것이 맞나요?

  • spring-boot
  • spring-batch
dohyun_lim 댓글 1 좋아요 0 조회수 419

: 의 의미

해결됨

[개념반] 배워서 바로 쓰는 Pandas

section1. where 강의자료 문제 16번 풀이에서 첫번째 파라미터에 ':'을 입력해주셨는데 어떤 의미인가요?

  • python
  • pandas
까망 댓글 1 좋아요 0 조회수 457

Colab를 통한 실습 관련 질문드립니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요, 강의 내용을 Colab를 통해서 실습을 하고 있습니다. 다른 코드를 실행 할때는 별 문제가 없었지만, 산탄데르 은행 데이터셋과 사기검출 데이터셋을 실행할때 read_csv를 통해 csv파일을 읽어오면 실행 할때마다(런타임이 바뀔때 마다) read된 결과가 다른데 왜 그런지 알 수 있을까요? 사기검출 데이터의 경우 25838 rows × 31 columns 로 읽히는 경우도 있고, 39702 rows × 31 columns로 읽어지는 경우도 있습니다. 두 데이터셋다 공통적으로 Nan 값도 생기기도 하네요. 런타임을 몇번 초기화 하다보면 운좋게(?) 정상적으로 읽어지는 경우도 있습니다. 왜 실행할때마다 결과가 다르게 나오는지 궁금합니다!

  • python
  • 머신러닝
  • 통계
댓글 1 좋아요 0 조회수 413

query 메서드와의 비교

해결됨

[개념반] 배워서 바로 쓰는 Pandas

조건을 주고 그에 맞는 데이터를 필터링하여 보여준다는 점에서 .loc[] 메서드와 .query() 메서드의 기능이 동일한 건가요? 다른 점이 있다면 어떤 부분에서 다른가요?

  • python
  • pandas
까망 댓글 1 좋아요 0 조회수 390

이클립스에서 아무리 Application을 실행해도 잡이 실행이 안됩니다.

해결됨

스프링 배치

구글링도 많이해보고 질문 게시판도 많이 뒤져봤는데, 강사님이 작성해주신 그대로 Job을 작성했지만, Application 을 실행하면 그냥 Started SpringBatchApplication in 1.373 seconds (process running for 2.321) 이 실행되었다고만 뜨고 Job은 돌지 않습니다 ........ 따로 설정해주어야 하는 것이 있나요? Application 파일 위에 @EnableBatchProcessing 도 다 붙여놓은 것 확인하였습니다 제 코드는 여기 있습니다. https://github.com/SMJin/Spring-batch

  • spring-boot
  • spring-batch
손명진 댓글 1 좋아요 1 조회수 986

if __name__=="__main__" 사용 기준

미해결

파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)

강사님 안녕하세요 :) 유익한 강의 잘 듣고 있습니다! 학습 중 궁금한 점이 있어서 질문드립니다. 강사님께서 DFS문제 외에도 코드 시작 부분에 이 코드를 작성하실 때가 종종 있는데 혹시 강사님의 사용 기준이 있는지 궁금합니다. ex) [섹션 8] 회장뽑기(플로이드-와샬) 사용 O vs 위상정렬(그래프 정렬) 사용 X

  • python
  • 코딩-테스트
댓글 1 좋아요 0 조회수 386

트랜잭션 경계 와 트랜잭션 begin에 대한 구분

해결됨

스프링 배치

안녕하세요 정수원 선생님 질문이 2개 있습니다. 1) "Chunk Process 아키텍처" 첫번째 사진 설명부분 4:26쯤에 트랜잭션 경계 와 실제 트랜잭션 begin 을 구분하셨는데 이것이 무슨 차이인가요? 아니면 어떻게 받아들여야하는것인가요? 2) 또한 코드를 디버깅 걸어서 따라가보니 TaskletStep#doInChunkContext 에서 new TransactionTemplate.execute() 에서 매 chunk마다 트랜잭션이 시작되는것은 확인하였는데 그림에 나온것 처럼 SImpleChunkProvider 다음과정에서 Transaction 시작하는곳을 찾지 못하겠습니다...

  • spring-boot
  • spring-batch
dohyun_lim 댓글 1 좋아요 0 조회수 536

GetText()사용법

해결됨

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

GetText 사용법이 감이 잘 안오네요 while과 state없이 GetText()를 실행하면 텍스트 출력이 안되네요.. 파이썬에서 정확한 문법 정의가 어떻게 되는지요?

  • python
  • 한컴오피스
schnabel 댓글 2 좋아요 1 조회수 2029

수업 자료에 오류가 있는것 같습니다 ㅠ

해결됨

한국인이 좋아하는 속도로 때려넣는 파이썬

문서 정리 자동화 소프트웨어 만들기 압축 파일에 직원 정보라는 파일이 들어있지 않네요 ㅠ

  • python
eric040928 댓글 2 좋아요 0 조회수 612

JdbcBatchItemWriter Query

해결됨

스프링 배치

안녕하세요 선생님! JdbcBatchItemWriter 에서 발생하는 Query 가 batch query 로 나가지 않는 것 같아서 질문 드립니다! 혹시 jdbc 에서 batch query 로 보내더라도 optimizer 에 의해 단일쿼리로 변경되어서 나갈수도 있나요?! 감사합니다. 위 사진은 MySQL 의 Query Log 입니다. 제 설정은 아래와 같습니다 @Configuration class HelloJobConfiguration( private val jobBuilderFactory: JobBuilderFactory, private val stepBuilderFactory: StepBuilderFactory, private val dataSource: DataSource, ) { @Bean fun job(): Job { return jobBuilderFactory.get("job") .incrementer(RunIdIncrementer()) .start(step1()) .build() } @Bean fun step1(): Step { return stepBuilderFactory.get("step1") .chunk<Customer, Customer>(5) .reader(customItemReader()) .writer(customItemWriter()) .build() } @Bean fun customItemReader(): ItemReader<Customer> { return JdbcPagingItemReaderBuilder<Customer>() .name("jdbcPagingItemReader") .dataSource(dataSource) .pageSize(5) .rowMapper(BeanPropertyRowMapper(Customer::class.java)) .queryProvider(queryProvider()) .build() } @Bean fun queryProvider(): PagingQueryProvider { return SqlPagingQueryProviderFactoryBean().apply { setDataSource(dataSource) setSelectClause("SELECT id, firstName, lastName, birthdate") setFromClause("FROM customer") setSortKeys(mapOf("id" to Order.ASCENDING)) }.`object` } @Bean fun customItemWriter(): ItemWriter<Customer> { return JdbcBatchItemWriterBuilder<Customer>() .dataSource(dataSource) .sql("INSERT INTO customer2 values(:id, :firstName, :lastName, :birthdate);") .beanMapped() .build() } }

  • spring-boot
  • spring-batch
myeonjeong 댓글 1 좋아요 0 조회수 1238

cursor 동작원리

해결됨

스프링 배치

안녕하세요 선생님. https://www.inflearn.com/questions/341918 좋은 강의 잘 듣고있습니다! 감사합니다. 안녕하세요 선생님. 비슷한 고민을 하다가 이 질문을 찾아오게 되었는데요, 예를들어 1000 건의 데이터가 있고, 100건씩 데이터를 처리하려고 하더라도 실제로 SQL 자체는 단 한번 실행되고, 데이터베이스 서버에서 해당 resultSet 을 가지고있으면서 cursor 를 batch application 으로 반환하고, cursor 를 통해서 필요시 DB server 에 실제 데이터를 요청한다고 이해했습니다. (그리고 받은걸 메모리에 올려서 작업) 그러면 결국 DB 서버에서는 그 많은 데이터를 전부 메모리에 올려놓고 batch 작업이 종료될 때까지 유지해야한다고 이해했는데, 혹시 제가 이해한게 맞나요?!

  • spring-boot
  • spring-batch
myeonjeong 댓글 2 좋아요 1 조회수 860

ItemStream의 open 메서드 관련 궁금합니다

미해결

스프링 배치

안녕하세요 강사님~ 먼저 질좋은 강의를 만들어주셔서 감사합니다 :) ItemStream 관련 궁금증이 생겨 질문드리게 되었는데요! public void open(ExecutionContext executionContext) 위 메서드의 ExecutionContext 는 Step의 ExecutionContext 로 이해했습니다. 그런데 Step 중간에 오류가 발생할 경우. 전체 Job이 실패하고. JobExecution & JobExecutionContext 가 새로 생성되며, 해당 Step의 StepExecution & StepExecutionContext 또한 새로 생성되어. 재시작전의 StepExecutionContext 에 저장해둔 index 는 꺼내어 사용 못하는게 아닌가요..?! 재시작 후에 ExecutionContext 에서 index를 가져올 수 있는 부분이 헷갈립니다ㅜ 추가로 index 예제는 ItemStream 통한 복구대비를 해두어. 재시작시 오류가 발생한 Chunk의 item부터 이어서 처리할 수 있었는데요. ItemStream 없이 ItemReader 만 사용할 경우는 트랜잭션 커밋되어 반영된 Chunk 가 있어도 무시하고 처음 Chunk 부터 다시 작업을 하게되는걸까요?

  • spring-boot
  • spring-batch
Minkyu Jeon 댓글 1 좋아요 0 조회수 642

precision_recall_curve() 관련 질문드립니다.

미해결

[개정판] 파이썬 머신러닝 완벽 가이드

안녕하세요, 좋은강의 감사합니다. precision_recall_curve() 함수를 이용해서, y값과, 예측 값을 넣어주었을때 리턴되는값이 정밀도, 재현율, thresholds 값이 반환이 되는것으로 확인했습니다. 여기서 궁금한 부분이 thresholds값의 변화는 함수에서 임의로 진행 되는것 일까요?

  • python
  • 머신러닝
  • 통계
댓글 1 좋아요 0 조회수 324

행맨 만들기에서..

미해결

실리콘밸리 엔지니어가 가르치는 파이썬 기초부터 고급까지

행맨 만들기 프로젝트 일부 코드에서 이해가 안되는 부분이 있어 질문드립니다! while 문에서 i = 0 을 설정한 뒤에 elem 값이 char 의 input 값과 같으면 그 값이 lst에서 치환되는 것이라고 설명해주셨는데 lst[i] 는 lst 내에서 i+1 번째 값을 의미하는 것이 아닌가요?? 아니면 i 는 그냥 미지수의 의미로 설정한 변수로 생각하면 되나요? 비슷한 질문으로 i += 1 이라는 코드를 추가한 이유가 무엇인가요? 저 코드를 빼고 작동시켜보니 이전에 맞췄던 철자가 저장되지 않고 첫 단어에만 값이 입력되는 걸 보니 이전 값들을 차곡차곡 쌓는 느낌인가요..? 너무 초보적인 질문이라 죄송합니다.. 아무리 고민하고 찾아봐도 쉽게 답이 나오지 않아 질문드립니다..

  • python
  • 알고리즘
logic 댓글 1 좋아요 1 조회수 670

인기 태그

인프런 TOP Writers

주간 인기글