전체 글 230

세무민의 코딩일기 : 맥북에서 Java 11 -> 17 Version으로 변경하기

안녕하세요 세기무민입니다. 현재 집에서 맥북으로는 Java 11버전을 사용하고 있으나 코틀린 공부를 할 생각과 최근 회사에서 자바 17버전을 사용했다보니 아싸리 내 맥북에도 Java 17로 변경해봐야겠다는 생각에 진행해봤습니다. 1. echo $SHELL 가장 먼저 내가 어떤 쉘을 사용하고 있는지 확인을 했습니다. 내가 사용하고 있는 쉘은 zsh 쉘입니다. zsh은 상호작용 로그인 셸이자 셸 스크립트를 위한 강력한 명령 줄 인터프리터로 사용할 수 있는 유닉스 셸 2. brew install openjdk@17 자바 17 버전 설치를 진행해줍니다. 3. usr/libexec/java_home -V 설치가 정상적으로 되었는지, 그리고 현재 사용중인 자바 버전을 체크해줍니다. 저의 경우는 17을 다운 받았으나..

[백준] 1032번 명령 프롬포트(python) - 세무민의 코딩일기

안녕하세요 세기무민입니다. 회사 다니다보니 알고리즘 공부에 조금 소홀했는데 향후 이직이나 알고리즘 공부를 위해 틈틈히 풀면 좋을 것 같아서 이번 포스팅은 백준 알고리즘 포스팅으로 찾아왔습니다. 문제 설명 예시 문제 풀이 우선 해당 문제에서는 패턴만 파악하면 되는 문제인데 예시로 나온 dir a?b.exe를 유심히 봅시다. acb.exe, aab.exe, apb.exe가 나와도 문제 없다고 하는 말을 다시 해석해보면 ?표에 들어간 단어는 달라도 무관하다는 의미를 가집니다. 즉, 입력받은 값들 중 같은 값이 아닌 경우에는 ? 표시를 해주면 되는 문제입니다. 코드를 보면 아래와 같습니다. # 명령 프롬포트 - 1032 inputValue = int(input()) for i in range(inputValue..

Algorithm/Baekjoon 2024.03.26

세무민의 코딩일기 : Junit > Port was already in use 해결 방법

안녕하세요 세기무민입니다. 오늘 포스팅 할 내용은 테스트 코드를 작성하다가 우연히 발견한 내용에 대해 기록으로 남겨보려고 합니다. 1. 현상 단일 테스트 코드를 실행했을 때는 문제가 없으나 통합하여 실행 시 몇몇 테스트 코드들에서 위와 같이 현재 Port 가 사용중이라는 오류가 발생하였습니다. 원인으로 추정되는 건 아직 없으나, 이전에 Java 11 버전과 그에 맞는 Javax, Tomcat 버전을 사용했을 때는 위와 같은 문제는 발생하지 않았었으며 버전 올린 후 Junit에서 Tomcat Port가 잡힌다는 점에서 버전 upgrade에 따른 이슈라고 판단된다. Java 17 Version으로 올리면서 jakarta 및 Tomcat Version은 올렸으나 junit은 그대로 4 version을 사용했는..

세무의 코딩일기 : JobRegistry @Autowird Bean이 없다고 오류 날 때 처리 방안

회사에서 일을 하다가 굳이 리펙토링 할 필요는 없는데... 어떨결에 리펙토링을 하려고 Batch 관련 API 코드를 까보던 중에 AutoWird Bean이 없다고 오류가 떴다. 실질적으로 서비스 작동에는 문제가 없어서 크게 이슈되는 상황은 아니였지만 혹시 몰라서 글을 적어본다. 추가로 Spring Batch 5.x 버전을 사용한다면 위의 이슈는 없을 것으로 보인다. 다만, 5.x 버전보다 낮은 버전을 이용할 경우 실제 서비스 작동에는 문제가 없지만 JobRegistry가 Bean이 없어서 빨간줄이 뜨는 경우들이 존재할 것이다. 버전에 따라 다른 것으로 보이지만 내가 사용한 4.x 버전의 JobRegistry 인터페이스 로직이다. 보면 Bean으로 등록되어 있지 않다. 이에 따라 Bean으로 수동으로 등록..

세무민의 코딩일기 : Spring Batch JobListenerUtils 만들기

안녕하세요. 세기무민입니다. 12월이 되면서 회사에서 프로젝트 오픈을 위해 정신없다보니 개인 포스팅을 할 시간이 없더라구요..ㅎ 다행히도 오늘 연차라서 심심하기도 하고 포스팅을 해보려고합니다. JobListener JobListener는 실제 Job과 Step이 실행할 때 이벤트를 알려주는 역할을 합니다. 즉 Job과 Step이 시작하거나 끝났을 때 호출되어 이벤트를 알려주는데 로그 기록을 남기거나 실행 상태에 대해서 정보를 확인하는데에 도움을 주는 역할이다. Listener 사용 방법 Listener는 다양한 방법으로 구현할 수 있는데 JobExecutionListener와 StepExecutionListener를 이용하여 구현했다. JobExecutionListener와 StepExecutionLis..

세무민의 코딩일기 : Spring Batch JobParameterVaildator

안녕하세요. 세기무민입니다. 이번에 다뤄볼 포스팅은 JobParameterVaildator에 대한 내용을 다뤄보려고 합니다. 1. JobParameterVaildator? Job 실행에 꼭 필요한 JobParameter에 대한 검증하는 용도로 사용됩니다. 기본적으로 DefaultJobParametersValidator 을 제공하지만 직접 인터페이스를 구현하여 사용하는 방법도 있습니다. 2.JobParameterVaildator 사용 이유? Scheduler로 실행시켜서 작동하는 케이스에 대해서는 Vaildation을 하지 않아도 무관하다고 생각됩니다. 다만, Controller 혹은 Jenkins로 처리하는 케이스와 같이 직접 파라미터를 전달하는 케이스에 대해서는 문제 없이 유효한 값들이 전달 되었는지 ..

세무민의 코딩일기 : Spring Batch API 만들기 2탄(Job, Step, TaskLet를 직접 사용해보자)

안녕하세요 세기무민입니다. 이전 포스팅에서는 Spring Batch 이론에 대해 다뤄봤다면 이번 프로젝트에서는 실제 코드를 작성해보려고 합니다. 👇이전 포스팅은 아래 링크로👇 세무민의 코딩일기 : Spring Batch API 만들기 1탄(Spring Batch, Scheduler, TaskLet, Chunk등 이론 정리) 안녕하세요. 오랜만에 코딩일기로 돌아온 세무민입니다. 사실 요즘 회사 일에 치여서 이걸 포스팅 할까 고민하다가 그래도 Spring Batch에 대해 조금이나마 작성하면 좋을 것 같아서 포스팅으로 남 sg-moomin.tistory.com 1. 개발 환경 및 고려 사항 기술 스택은 아래와 같습니다. Spring Boot 2.7.3 H2 Database JPA(native, jpql) 초..

세무민의 코딩일기 : Spring Batch API 만들기 1탄(Spring Batch, Scheduler, TaskLet, Chunk등 이론 정리)

안녕하세요. 오랜만에 코딩일기로 돌아온 세무민입니다. 사실 요즘 회사 일에 치여서 이걸 포스팅 할까 고민하다가 그래도 Spring Batch에 대해 조금이나마 작성하면 좋을 것 같아서 포스팅으로 남깁니다. 1. Spring Batch 개발을 하게 된 목적 목적은 서비스에 산재되어 있는 Scheduler를 하나의 서비스로 모으는데 목적을 가졌었어요 그러면서 조금이나마 Spring Batch와 Quartz에 대해 개인적으로 프로젝트를 해보게 되었답니다. 2. Spring Batch VS Spring Scheduler Batch란 일괄처리를 말하며 사용자의 상호작용 없이 여러개의 작업을 미리 정해진 순서에 따라 중단 없이 처리 Scheduler는 특정한 시간에 등록한 작업을 자동으로 실행시키는 것을 의미 Sc..

Parameter 'view' implicitly has an 'any' type 문제 해결 하기

안녕하세요.세기무민입니다. 제가 프론트 언어는 사실 잘 몰라서 작성하는 글입니다.(react/typescript...공부하자...) 회사에서 일하다보니 프론트도 같이 개발이 필요하더라구요..? 암튼 typeScript를 사용하는 프로젝트에서 라이브러리를 이것 저것 검토하다가 발견한 오류에요.. 2개의 오류가 함께 나타났는데 오류의 내용을 해석해보면 아래와 같아요 암묵적으로 함수의 파라미터들이 any type 지정되고 있어서 type을 지정해야 한다는 의미 음... 이렇게만 보면 저같은 프린이(프론트 어린이)에게는 뭔소리인지 모르겠는데... 결론적으로는 아래와 같이 처리할 수 있어요 모든 파라미터를 명시할 때 type을 지정해주는 방식 tsconfig.json > compilerOptions > noImp..

세기무민의 코딩일기 : Restful API 형태로 GraphQL 사용하기

Restful API 형태로 GraphQL을 사용하게 된 개요 이번 포스팅의 내용은 graphqls 파일을 단일이 아닌 N개로 처리할 수 있는 방법에 대해 고민하다가 만들게 되었습니다. 기존에는 graphql-kickstart를 사용해서 1개의 schema 파일을 이용하였는데.. 여기서 N개의 스키마 파일을 재대로 읽어오지 못하는 현상을 발견하게 됩니다. 처음에는 application.yml에서 설정해야 하는가 싶었는데 스키마 파일을 내부적으로 구분하지 못해서 이에 따라 graphqls 방식과 restfull을 혼합하여 직접 스키마 파일을 load할 수 있도록 처리했습니다. 이전 포스팅 세무민의 코딩일기 : Spring Boot + GraphQL ScalarType 사용하기 안녕하세요. 세기무민입니다. ..

Programing/GraphQL 2023.08.06