Hello, this is Crispy!! 👋

SeungChan Lee, web developer!

노드에서 배치잡 돌리기(feat. child_process, cluster, worker_threads)

TL;DR node에서 배치잡을 돌리고 싶다. child_process, cluster, worker_thread 비교 io intensive + cpu intensive일 때의 비교 child_process 쓸거 함수별 사용 시점 정리 node에서 배치잡을 돌리고 싶다. 왜와이 쉽고 빠르게 배치작업을 하고 싶다. 일회성 배치작업을 해야 하는 상황이 생겼습니다. 쉽고 빠르게 익숙한 NodeJS로 배치작업을 하고 싶었습니다. io와 cpu 모두 사용하는 작업으로, 딱봐도 오래걸리는 작업이었습니다. 그냥 해보았습니다. 싱글 스레드로 작업을 진행했습니다. Promise.all로 일부 데이터만 작업을 진행했더니 20분이 걸렸습니다. 도저히 전체를 한번에 돌릴 수는 없다고 생각이 들었고, 빠르게 처리하는 방법을 찾게 되었습니다....

May 16, 2024 · 5 min · 1037 words · Crispy

JAVA Reflection API를 이용한 Annotation만들기

TL;DR Reflection이 뭔가 훑어 보기 Annotation이 뭔가 바라만 보기 Reflection으로 Annotation 다루기 Reflection이 뭔가 정의 Oracle의 문서에 따르면 Reflection의 정의는 아래와 같습니다. Reflection is commonly used by programs which require the ability to examine or modify the runtime behavior of applications running in the Java virtual machine. Reflection은 JVM에서 동작하고 있는 어플리케이션의 런타임 동작을 검사하거나 바꾸고자 할 때 사용하는 것이다. https://docs.oracle.com/javase/tutorial/reflect/ 주의할 점 성능 문제 야기 Reflection은 런타임에 동작을 합니다. 그렇기 때문에 동작을 할 때 JVM의 최적화 과정 일부가 동작하지 않을 수 있습니다....

March 16, 2024 · 3 min · 577 words · Crispy

[회고] next step ATDD with Spring 3,4주차

TL;DR 미션은 재미있었다. 리뷰어님 스타일에 따라 리뷰 내용은 다르다. 마무리 하려고 글을 쓰긴 했는데… 많이 짧네요. 미션은 재미있었다. 유저 로그인과 가격 구하기 3, 4주차의 핵심은 유저 로그인과 가격 구하기 관련 테스트 및 기능의 작성이었습니다. 유저 로그인의 경우 자칫 어려워질 수 있는 주제를 기본 코드들을 활용해 쉽게 할 수 있게 만들어 주었습니다. 추후 개인 프로젝트를 진행하면서도 참고할 법하다고 생각이 든 미션이었습니다. 리뷰어님의 스타일에 따라 리뷰 내용이 다르다. 나는 객체 지향적인 설계에 대한 피드백을 받고 싶었다....

March 10, 2024 · 1 min · 147 words · Crispy

[회고] next step ATDD with Spring 2주차

TL;DR 인수 테스트와 함께 TDD를 함께 해보는 작업 진행 순서를 가진 데이터의 구현 팁 외부 의존성을 도메인 객체에서 활용하는 방법 배운 것 나는 평소에 outside in 테스트를 하고 있었다. inside out/outside in 인수 테스트를 이용해 테스트를 작성하는 방식으로 inside out, outside in 방법이 있습니다. inside out 방법은 도메인 객체부터 차근 차근 테스트를 쌓아 올리는 방식이고, outside in은 그 반대입니다. outside in 테스트의 과정은 웹프로젝트에서 아래와 같이 진행되었습니다. 컨트롤러를 작성한다. 서비스를 작성한다....

February 12, 2024 · 4 min · 776 words · Crispy

AWS에서 aurora database의 Major 버전을 업그레이드하는 방법

TL;DR Aurora MySQL db를 업데이트하는 2가지 방법을 소개 2가지 방법 중 좋다고 생각한 방법과 이유를 소개 왜 와이 Aurora DB 2점대의 depreacation이슈 MySQL 5.7의 지원 종료와 함께 몇일 전이었습니다. MySQL 5.7버전이 정식 지원 종료된다는 소식을 들은게… 이에 AWS에서는 AuroraDB 2점대를 3점대로 업그레이드 하라는 안내를 주었습니다. 그걸 이제서야 본 것이죠. 부랴 부랴 문서를 찾아 읽기 시작했습니다. 다행이도 문서는 매우 잘 정리가 되어있었고, 한글로 봐도 될 정도의 번역으로 만들어져 있었습니다. 이 글은 그 문서들을 읽고 내린 의견과 문서를 약간 정리한 내용을 소개하는 글입니다....

February 1, 2024 · 2 min · 348 words · Crispy