들어가며 우선 이 글은 1.템플릿 콜백 패턴으로 구현, 2. AOP 로 구현, 3. Spring Redission 의 한계와 극복 총 3편으로 이루어져 있습니다. 여기서 사용한 예제코드에는 특정 문제가 있습니다. 해당 문제에 대한 이야기는 3편에서 할 예정입니다. 그리고 Spring Redisson 이 뭔지, 왜 쓰는지, 분산락이 뭔지 등등 에 대해서는 글이 너무 길어져 설명하지 않았습니다. 궁금하신분은 인프런의 "재고시스템으로 알아보는 동시성 이슈 해결방법" 강의 를 보시거나 해당 강의의 잘 정리된 블로그글을 첨부하니 참고해주세요. 사건의 시작 사내 그룹웨어에서 칸반 기능을 개발 하던 도중 사용 하시던 동료 두 분이 버그를 제보해주셨다. "저희 둘이 쓰는 칸반이 있는데 갑자기 순서가 이상해졌어요. 아마..
문제 나는 현재 회사에서 주로 사내 그룹웨어 개발일을 해왔었다. 해당 그룹웨어의 Front-End(이하 FE) 는 Vue3 로 구성되어있으며, 내가 입사할때 쯤 어느정도 뼈대가 만들어져있고 이제 막 기능들이 추가되고 있는 작은 프로그램이었다. 초기에는 프로젝트의 크기가 작아서 초기페이지 로딩속도에 문제가 없었다. 하지만 프로젝트에 초기 구상에 없던 기능이 계속해서 추가되며 크기가 커졌고 그에 따라 첫 페이지 진입시 실행되는 로직과 API 호출이 많아졌다. 개선된 현재는 Home으로 처음 접근시 소켓 연결 호출을 제외하면 거의 15개가량의 통신이 일어난다. 개선 하기전의 상태를 글로 설명하자면 (스크린샷으로 찍어놨어야하는데 깜빡했다..) 개선 되기 전에는 초기 페이지 접근시 필요한 대부분의 API 호출들이..
의문 자바 코드를 작성하다보면 종종 ArrayList 를 toArray 메서드를 이용해 배열로 바꿔야 할때가 있다. List temp = new ArrayList(); temp.add("test"); String[] strings = temp.toArray(new String[temp.size()]); 하지만 위의 코드는 Intelij 가 warning 을 만드는 코드이다. 실제로 Replace argument with empty array 를 클릭해보면 empty array 초기화로 코드를 바꿔준다. 왜 길이를 미리 정한 배열보다 길이를 0으로 초기화한 배열을 사용해야하는걸까? 검색결과 성능 차이 두가지에 대한 성능테스트는 stackoverflow 글에서 찾을 수 있었다. 해당 글을 보면 아주 재미있게..
사건의 시작 나는 회사에서 특정 상황에 처음으로 TransactionalEventListener 를 사용해본 뒤 유용하다는것을 알고 회사 동료분들에게 이런게 있다고 알려드렸다. 그러던 어느 날 한 회사 동료분이 나에게 물었다. "와잼님 TransactionalEventListener 를 여러개 쓰면 어떤게 먼저 실행되나요?" 나는 답변으로 "몇번 테스트 해보고 사용해본바로는 TransactionalEventListener 에 phase 라는게 존재해서 Before Commit, After Commit, After Rollback, After Completion 이 있으며 성공이면 Before Commit 으로 시작해 After Commit -> After Completion , 실패면 After Roll..
이 글은 제가 회사에서 Nuxt3 에 대해 발표하기 위해 준비했던 자료를 정리 한 글입니다. 때는 2023년 초 추운겨울.. 회사에 새로운 프로젝트가 시작된다는 소식이 들려왔다. 해당 프로젝트의 요구사항 중 하나는 Search Engine Optimization(이하 SEO) 를 적용시키는 것 이었다. 그 동안의 프로젝트는 관리자사이트에 치중되어있었기에 기존 Vue 만으로 충분했지만 이제는 SEO 를 위해 다른것을 시도할 때 였다. 마침 2022년 말 Nuxt3 의 stable 버전이 출시되었다. 우리 회사는 이 나온지 얼마 안된 Nuxt3 를 도입해보기로 결정한다. 나는 docs 를 보며 간단하게 CRUD 를 만들어 본 뒤에 Nuxt3 에서 개발할때 꼭 알아야 할 중요하다고 생각되는 점 몇가지를 회사에..
내가 현재 2023.07.04 에 다니는 회사의 주요 Front-End(이하 FE) 기술은 Vue3 프레임워크이다. 회사에 들어오기전 공부했던 FE 기술은 React 이다. 둘 다 써본 사람으로서 개인적인 의견으로 비교하자면 Vue 를 좀 더 낫다고 생각한다. 가장 큰 이유는 두가지이다. Vue 가 React 보다 배우기 쉽다 Vue 가 SFC 를 지원하기 시작한 이후 좀 더 깔끔하게 코드를 작성할 수 있다. 한때 나는 React 와 Vue 중 어떤게 더 나은가에 대해 해외 개발자들은 어떻게 생각하나 궁금해서 찾아본적이 있다. 일단 성능 관련된 얘기는 검색해보면 전문적으로 비교한 이런 블로그 글 들을 많이 찾아볼 수 있다. 성능은 Vue 의 승리. 하지만 개발자들은 Vue 보단 React 를 더 많이 사..