인프콘 2024 후기
·
활동/컨퍼런스
올해도 작년과 마찬가지로 인프콘 티켓팅에 실패했다. 하지만!!  다행히 이번에도 인프런에 다니는 지인이 티켓을 하나 선물해줘 인프콘에 다녀올 수 있었다. 작년 인프콘에서는 발표세션이 아닌 즐길거리에 초점이 맞춰져 있어서 부스나 네트워킹 세션, 커피챗 등의 활동을 하러 다녔었기 때문에 아쉬움이 있었다. 이번에는 후회 없는 인프콘을 보내고자! 발표세션을 다 찾아보고 내가 현재 가지고 있는 고민의 실마리가 될 수 있는 발표세션들을 미리 선택하고 인프콘에 다녀왔다. 회사에서도 휴가를 쓰지 않고 인프콘을 다녀올 수 있도록 편의를 봐주셨다! 대신 인프콘의 발표 세션을 바탕으로 기술공유를 준비하고 네트워킹 세션에서 개발자들을 인터뷰해오라는 미션을 받았다!  1.  부스다양한 기업 부스와 인프런의 자체 부스가 있었다...
[Spring Batch] 서로 다른 Step끼리 데이터 공유하기
·
Spring/Spring
Spring Batch에서 로직을 처리하다보면 첫 번째 Step에서 처리한 작업을 다음 Step에서 사용하고 싶은 요구가 생기게 된다. 보통 chunk-oriented 처리를 할 때 이런 요구가 생긴다. 쓰기 작업에서는 CompositeItemWriter와 같이 2개의 쓰기를 할 수 있는 객체가 존재하지만 Reader에는 그런 기능이 있는 객체가 없기 때문이다. 그런데 Job에서는 Step끼리 직접 호출하여 데이터를 주고 받을 수 있는 기능을 제공하지 않기 때문에 데이터를 공유하기 위해 우회하여 전달하는 방법을 사용해야 한다. 방법1. 스프링 공식 문서에서 추천하는 방법첫 번째로 소개할 방법은 스프링 공식 문서에서 추천해주고 있는 방식이다. ExecutionContextPromotionListener 객..
[Spring Batch] Tasklet에서 왜 @BeforeStep과 @AfterStep이 동작하지 않을까?
·
Spring/Spring
1. Tasklet만으로는 beforeStep이나 afterStep을 트리거하지 못한다.Tasklet을 구현하고 StepBuilder에서 tasklet() 메소드를 등록해주는 것만으로는 @BeforeStep이나 @AfterStep을 사용할 수 없다.Tasklet에서 Step의 생명주기에 관여하고 싶다면 추가적인 작업이 필요하다는 말이다.@Configurationpublic class MemberJobConfig { @Bean("memberJob") public Job memberJob( JobRepository jobRepository, PlatformTransactionManager transactionManager) { return new JobBuilder("memberJob", ..
[Github Actions] 원격 레포지토리에 파일 저장하기
·
Git & GitHub/Github Actions
Github Actions을 사용해 파일을 생성하고 그 파일을 레포지토리에 저장하고 싶다면 어떻게 해야할까? Github Actions는 가상 머신에서 라이브러리의 기능이나 명령어를 통해 동작한다. 가상 머신에서 레포지토리의 코드를 가져와, 내가 원하는 파일을 생성하고 그것을 원격 저장소에 저장하면 된다. 레포지토리에  파일을 저장하려면 git push를 해야하기 때문에 권한이 필요하다. 토큰을 발급받아야 하고 그 토큰을 사용해 레포지토리의 원격 저장소에 접근하면 된다.  토큰 발급먼저 Developer Settings에서 Access Token을 발급받아야 한다.아래와 같이 repo 권한을 가진 Access Token 하나를 발급해준다. 토큰 값은 레포지토리의 Secrets에 설정해줘야 하니 메모장에 ..
2024 오픈소스 컨트리뷰션 아카데미 시작!
·
활동/오픈소스 컨트리뷰션
오픈소스 컨트리뷰션인프콘 발표자를 지원했으나 떨어졌고, 넥스터즈는 서류 광탈.이제 해볼 만한 게 없을까 이것저것 찾아보다가 2024 오픈소스 컨트리뷰션 아카데미가 눈에 들어왔다.링크: 2024 오픈소트 컨트리뷰션 아카데미 [참여형] 멘티 모집 원래 작년에도 지원해보고 싶었으나 지인들과 사이드 프로젝트를 시작했고, 회사 프로젝트가 바빠지면서 단념했었다.다시 현 시점. 회사에서 큰 프로젝트도 마쳤고 생활에 여유가 생겼다. 오픈소스에 언제가는 꼭 기여해보고 싶다는 목표가 있었고, 스터디 모임 말고는 할 게 없었기 때문에 오픈소스 컨트리뷰션에 지원해보기로 했다. 되면 좋고~ 안되면 말고~ 프로젝트내가 프로젝트를 선택한 기준은 아래와 같다.백엔드 개발과 관련된 프로젝트인가프로젝트에 기여한 내용이 나의 개발 실력,..
[Spring] 스프링 이벤트로 유연한 설계 만들기
·
Spring/Spring
개발을 하다보면 너무 많은 의존성이 엮어 있어 가독성도 떨어지고, 단위테스트를 작성하기 어려운 객체를 만나곤 합니다. 이런 상황에서 스프링 이벤트가 도움이 될 수 있습니다. 스프링 이벤트는 Observer Pattern으로 구현된 기술로 객체 간 강결합 의존성을 떼어내기 위해 사용합니다. 해당 객체의 주 관심사가 아닌 로직과의 결합을 느슨하게 만들어 주 관심사에 집중할 수 있게 해줍니다.  1. Spring Event를 사용하기 전 알아두면 좋은 것들!1-1. Observer Pattern객체의 상태 변화를 관찰하는 관찰자의 목록을 객체에 등록하여 피관찰되는 객체의 상태 변화가 있을 때마다 메시지 교환을 통해 객체가 직접 목록의 각 옵저버에게 알리도록 하는 디자인 패턴입니다.  옵저버 패턴의 구성 요소는..