| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트
- 카우치코딩 #couchcoding #6주포트폴리오 #6주협업프로젝트v
- 파이썬
- 비동기
- 필사
- Kakao
- 플젝후체크
- 자바파이썬
- 출처: 자바의 신 8장
- Morphological analysis #Corpus
- terminate
- taskkill
- 서버사이드렌더링
- Anaconda
- khaiii
- 코딩온라인
- github markdown
- #스파르타코딩클럽후기 #내일배움캠프후기
- expression statement is not assignment or call html
- SSR
- 모바일웹스킨
- Technical Writing
- 클라이언트사이드렌더링
- address
- PID
- 파이콘
- 마크다운
- gitbash
- Machine Learning
- github
- Today
- Total
목록전체 글 (134)
개발 일기
개요 최근 미국 주식을 조금씩 투자하면서, 세계 경제에 대해 관심을 갖게 되었다. 어느 때보다도 미국이 세계 경제의 중심에 서있고 트럼프의 정책 방향에 주가가 주도되는 것을 보고 있다. 경기의 흐름을 정확히 예측할 수는 없겠지만, 적어도 시장의 흐름을 이해는 하고 싶었다.슈카월드나, 언론사 공식 채널들이 매우 유용하지만, 나는 영상을 보는 것보다는 핵심 뉴스만 3분 안에 읽는 것을 선호한다그래서 파이썬으로 주요 매체 뉴스 피드를 크롤링하는 프로젝트를 만들게 되었다. 매일 관심 키워드를 주제로 뉴스를 구독하고, 신뢰할 만한 다양한 매체 (+ 정치 성향이 다양한) 에서 타이틀과 요약 중심으로 빠르게 훑는 사이트다. 기술 선택 (초기 셋업 단계여서 계속 추가 예정) 1. 메인 언어 - Python : 크롤..
환경: SpringBatch 4.3.7상황 배치 잡을 실행할 때, TaskExecutor 에 ThreadPoolTaskExecutor 를 적용하여 병렬로 동작한다. 이때, 풀사이즈를 조정하던 중에, 배치 Job 종료 이후에도 프로세스가 종료되지 않는 이슈가 있었다. 원래 Job 을 로컬에서 실행할 때, Job Completed 가 된 후, Finished [Job 이름] 메시지와 함께 프로세스가 종료된다. 그런데 종료가 일어나지 않았고, 프로세스에 SIGINT(인터럽트 시그널)를 보내 실행을 중단(interrupt)해야만 종료할 수 있었다. 이를 해결하기 위해서 원인을 찾고, 풀사이즈를 조정한 내용을 정리해보았다. 분석 기존 설정 @Bean @JobScope fun saveTrans..
이전 편: https://writerroom.tistory.com/379상황 공제 가맹점이라는 테이블 특성 상, Hit 가 적을 수 밖에 없다. (결제가 어떤 가맹점에서 일어날 지는 예측하기 어렵기 때문이다) 가맹점의 연말 정산 유형을 매핑하는 과정은 성능 개선의 여지가 적다고 판단했다.Processor 에서 가맹점의 연말 정산 유형 확인, 할인 여부 등 정산에 필요한 다양한 정보를 조회한다. 이 작업을 단 건으로 처리하다보니, 병목이 되고 있어서 멀티 쓰레드에서 동시에 실행해서 처리 속도를 높여보기로 했다 병렬 처리 배치를 병렬로 구성할 때, 두 가지 방법을 생각해보았다. 코드 변경 포인트가 많은지, 코드 제어가 얼마나 가능한지 등을 중점적으로 보았다. 방법장점 단점 배치 코드 자체에 적용 (Task ..
문제 2024년 국내 결제 건을 연말 정산 하여, 국세청에 제출한다. 결제팀에서는 보통 매일 정산을 하지만, 연말정산은 한 번에 1년치를 정산하기 때문에 배치의 소요 시간이 매우 길다.이때 정산 내역을 만드는 배치의 소요 시간이 매우 길었다. 참고로 복잡한 비즈니스 로직을 수행하는 processor 에서 소모한 시간이 대부분이다. Reader/writer는 I/O 작업 위주라서 영향이 거의 없다. Read Time: 20초Process Time: 6시간 10분 Write Time: 4분긴 배치 시간은 1)지속적인 모니터링으로 작업 효율성을 떨어트리며 (오후에 실행 했을 때, 퇴근 후에도 봐야 했음) ,2) 최악의 상황에서는 다른 배치가 실행되지 못하는 위험이 있다 (현재 여러 배치가 한 EC2 인스턴..
10년 뒤 당신은 어떤 엔지니어가 되고 싶나요? 자소서 질문으로 자주 받았던 질문이다. 그런데 요즘은 꼭 10년은 아니어도, 내가 어떤 사람이 되어야 하는가 자주 생각한다. 사실 비즈니스에 있었을 때는 이런 생각을 크게 하지 않았고, 주위에 하는 사람도 별로 없었다. - 모두가 아는 것이라고 할 지라도, 실수할만한 포인트를 항상 인지하고 치명적인 실수를 하지 않는 개발자가 되고 싶다.(ex. gitignore, application.yml의 설정, ddl-auto 같이 실수하면 큰일나는 것들..) - 공식 문서만으로 개발할 수 없더라도, 공식 문서를 자주 들여다보고 싶다 -> 정말 다행인 것은, 이제는 영어로 문서를 읽는 게 꽤 할만하다는 것이다. 코딩을 처음 시작할 때는 사람들이 너는 영어를 잘 하..
팀 코드에는 다른 시스템에(ex. 결제 -> 회원 서비스) 메시지를 전달할 때, 코루틴을 활용한다. 해당 코드를 작업 하면서, 코루틴을 공부한 내용을 정리해두었다. 코루틴을 이해하려면, 먼저 동기와 비동기를 이해해야 한다.동기와 비동기 특성동기 프로그래밍비동기 프로그래밍실행 순서작업이 순차적으로 실행됨 (이전 작업 완료 이후)작업 간 순서가 중요하고, 결과가 즉시 필요할 때.한 작업의 완료를 기다리지 않고, 다음 작업으로 넘어간다. 작업이 완료되면, 코루틴/콜백 등을 통해 처리.블로킹 여부호출된 스레드를 차단함.완료될 때까지 호출된 스레드가 기다려야 함.호출된 스레드를 차단하지 않고 즉시 제어 반환하므로,다른 작업을 그동안 진행함.코드 복잡성비교적 간단하고 직관적복잡하며 관리가 필요응답성작업 중 응답이..
Graceful Shutdown 이란? 스프링 부트의 공식문서에서는 아래와 같이 설명한다. 해석해보면 이런 뜻이다. GracefulShutdown 은 애플리케이션 컨텍스트를 종료하고, 빈을 중단하는 초기 단계에서 일어난다.중단하는 과정에서는 Grace Period 를 제공하는 타임아웃을 사용한다. Grace Period 동안 기존 요청들은 실행을 마칠 수 있지만, 새로운 요청은 허용되지 않는다. It occurs as part of closing the application context and is performed in the earliest phase of stopping SmartLifecycle beans. This stop processing uses a timeout which provid..
팀에서는 파일을 다루는 업무가 많기 때문에, 파일을 읽고, 조회하고, 리눅스 명령어를 다룰 일이 많다. 리눅스는 유닉스 계열 운영체제이다. 쉘은 유닉스 및 리눅스 시스템에서 사용자가 시스템과 상호작용하게 해준다. 쉘을 통해 파일 시스템을 탐색하고, 파일을 열고, 편집하고, 프로그램을 실행할 수 있다. 쉘 이란?쉘은 사용자가 입력한 명령을 해석해 커널에 전달하거나, 커널의 처리 결과를 사용자에게 전달하는 역할을 한다 (쉘 스크립트 프로그래밍 (velog.io)) Shebang 이란?셔뱅(shebang)은 해시 기호와 느낌표(#!)로 이루어진 문자 시퀀스로, 스크립트의 맨 처음에 온다.유닉스 계열 운영 체제에서 셔뱅이 있는 스크립트는 프로그램으로서 실행되며, 프로그램 로더가 스크립트의 첫 줄의 나머지 부분을..