전체 글

카테고리 없음

2024/05 리뷰

5월 회고5월 열심히 살았다고 생각했는데.. 열심히 이것저것 한 것 같다.항상 리뷰를 적으며 생각하는 점이지만 하루, 이틀 쉬는게 많이 쉰게 아닌데 참 크게 느껴지는 느낌이다.  5월 목표로 삼았던 Spring JPA 관련 강의는 완강했지만, 이펙티브 자바랑 코틀린 프로젝트를 잘 진행하지 못했다. 하지만, 중간에 알고리즘 공부도 하고, 스터디도 하면서 불가피한 사유가 있었다고 생각한다 ㅎㅎ허헣 그래서 돌이켜봤을 때, 나름의 노력을 다했으므로 아쉬움이 크게 남지는 않는 것 같다. 하지만, 무언갈 할 때 집중도가 조금 부족했다. 공부했던 것들이 머리에 잘 남지 않는 느낌? 단순히 무언가를 한다는 것에 의미를 두지 않고 지식 습득에 초점을 둘 필요가 있을 것 같다. 그리고 이론적으로 접근하는 것 외에도 직접 ..

Review

2024/04 리뷰

4월 열심히 살았다고 생각했는데 막상 캘린더를 보니.. 아쉬움이 많이 남는다. 그래도 오랜만에 가족 여행도 가고, 책도 꽤 읽은 걸 보면 지식 외의 것들을 얻을 수 있었던 한 달이었다.다만, 기본기를 쌓기로 했던 4월 목표를 조금 이루지 못한 것 같아 아쉽다. 이펙티브 자바를 다 읽지도 못했고, JPA 강의도 조금 남아서 기술적 성장에 아쉬움이 남는 것 같다.  기술 성장4월에는 기술적으로 기반을 쌓고자했다. JPA 강의도 듣고, 이펙티브 자바 책도 읽기도 했다. 다만, 꾸준히 적정한 시간을 투자하여 공부했는가에는 아쉬움이 드는 것 같다. 충분한 기반을 쌓기 위해선 잊지 않을 정도의 꾸준함과 지속성이 필요한 것 같다. 학습한 내용을 정리해봤는데 생각보다 꽤나 많이 기억에 남아서 조금 뿌듯한 느낌.. ㅎㅎ..

백엔드/에러-예외 처리

Try with Resources / Try Finally

도입최근에 이펙티브 자바 책을 읽고있다. 책의 객체 생성과 파괴 파트에서 try-with-resources 관련 내용을 볼 수 있었다. 저자는 try-finally 보다는 try-with-resources를 사용을 권장한다.InputStream, OutputStream, java.sql.Connection 등 close 메서드를 직접 닫아줘야하는 자원에 대해서 이러한 내용을 제시하였다.저자는 다양한 자원들이 finalizer, cleaner를 안전망으로 활용하고 있으나, 이에 대한 문제점을 제기한다.닫아야할 자원이 여러 개인 경우 try-finally는 중첩으로 인해 지저분한 구조를 갖게 된다.finally 블록에서도 예외가 발생할 수 있으므로 finally 블록에서 발생한 예외가 다른 예외를 삼켜버려 ..

Infra

Keda

인프라 비용 절감에 대해 찾아보다가 KEDA에 대해 공부하게되었다.실제 라이브 배포망이 아닌 다른 배포 환경의 경우 제한적인 리소스를 가지고 있고, 이를 절감하기 위해 서버리스를 도입할 수 있다. 물론 서버리스가 동작하는데 지연 시간이 있는 것은 분명하지만, 거의 사용하지 않는 마이크로서비스들에 대한 비용을 절감할 수 있다.(CPU 코어 수, Memory 등 ... )  따라서 KEDA에 대해 간단하게 학습하고 정리하였다.그리고 Java CRaC이 연구 중이며, 이 기술을 쓰면 자바 애플리케이션도 실행 시간을 짧게 할 수 있다고한다. 언젠가 이런 실행 시간을 스냅샷 기반으로 줄이는 상용 기술이 등장할 수도 있을 것 같다. KEDA란?KEDA란 Kubernetes Event-driven Autoscalin..

백엔드

Spring Caffeine Async Cache

사내에서 래핑?한 라이브러리 중에 Async Cache와 관련된 내용들이 있는데 프로젝트에서 잘 다루고자 학습하게 되었다. 특히 그중에서도 Spring Caffeine Async Cache에 대한 내용을 다룬다. Async Cache? 다양한 로컬 캐시가 있음에도 그 중에서도 비동기인 Spring Caffeine AsyncCache를 다루는 이유는 Spring Webflux 때문이다. Spring Webflux 기반 프로젝트의 경우, 일반적인 동기 캐시를 사용하는 경우 블로킹으로 인한 문제가 발생할 수 있다. 따라서 Webflux 프로젝트에서 로컬 캐시를 사용하고자 할 때, Spring Caffeine Async Cache는 고려할 수 있는 좋은 Cache 라이브러리라고 생각된다. 비동기 캐싱을 지원하는..

일상

나들이와 느낀점

평소에 걷는 것을 되게 좋아하는데 최근에 날씨가 풀리고 따뜻해져서 걷기 좋은 날들의 연속이었다. 특히나 부쩍 나들이를 자주 가면서 찍었던 사진과 함께 최근에 느낀점들을 기록 겸 기억하고자한다. 여기저기 많이 다녔는데 광교호수공원, 판교역 근처, 탄천 서현 가는길, 수지구청 성복천 그리고 신정문화공원이 기억에 남는다. 광교 호수 공원 집 근처여서 바람쐐는 겸 다녀왔던 광교 호수공원이다. 2월 달에 어어엄청 많이 갔었는데 최근에 안가다가 오랜만에 갔다. 벚꽃도 피기 시작하고 아주 넓고 광활한 느낌이라 속이 뻥 뚫리는 기분이었다. 날씨가 좋아서 사람이 많았던 것이 기억에 남는다. 광교 호수 공원을 걸으면서 삶에 대한 생각을 많이 했다. 가족 단위로 오시는 분들이 많이 계셔서 더욱 그런 생각을 많이 했던 것 같..

Review

2024/03 리뷰

굉장히 오랜만에 리뷰를 작성하는 것 같다. 정신 없었기도 하고 그 간 특별히 진행한 프로젝트나 활동 은 없는 것 같다. 1,2월을 리뷰는 작성안하다가 3월 리뷰를 작성하게된 계기는 3월은 기술적으로도 성장할 수 있었지만, 멘탈적으로도 성장할 수 있었던 달이었기 때문이다. 기술 성장 기술적으로는 좋은 팀원분들을 만난 덕에 부족한 부분, 새로 접하는 부분들이 많이 좋아질 수 있었다. 엄청 많은 것들을 배웠지만, 그 중 몇 개 꼽자면 null , empty 관련 코드 cursor, paging Property Source 적용(mysql, kafka, elasticsearch 및 배포 환경별 properties 파일 분리 적용) 비동기 처리 등 이 지금 기억에 남는다. 이러한 것들을 통해 기능 구현도 중요하지..

백엔드/에러-예외 처리

Java - Null 체크 (+ 안정성, 가독성.....)

여태껏 진행했던 프로젝트들과 회사에서 진행하는 프로젝트의 가장 큰 차이점이 있다면 안정성, 가독성이라고 생각한다. 단순 기능 구현에 급급하지 않았는 지, 내부 코드를 확인해보기는 했는 지.. 부족한 부분이 많이 있었음을 깨닫고 있는 것 같다. 그 중에서 코드 리뷰를 많이 받았던 부분에 대해서 정리해보고자 한다. 개인적인 의견(코드 스타일)이다. 누군가는 가독성이 좋다고 느낄 수 있지만, 또 다른 누군가는 가독성이 오히려 좋지 않다고 느낄 수 있다. 그래서 정답이라기보다 하나의 생각을 정리한 글으로 인지했으면 좋겠다. 바로 Null , Empty에 관한 내용이다. Null, Empty 체크를 하지 않았거나, 스스로 봤을 때도 가독성이 많이 떨어지는 코드를 많이 작성했다. 이 외에도 Default Confi..

Review

앞으로의 계획

2024년 1월 취업을 하게 되었다. 사용하고 싶었던 기술, 관심있었던 기술을 다루고 있는 팀에 입사하게 되었다. 그리고 지금이 되어서야 앞으로 어떻게 할 것인가에 대한 생각을 정리하였으며, 이에 대한 앞으로의 계획을 세우게 되었다. 고민 내가 앞으로 어떠한 방향으로 나아가야할 것인가에 대한 고민이 필요했다. 주변에 여쭤보기도 하고 스스로에게 질문하기도 하며 생각을 정리하고자 했다. - 어떤 도메인으로 나아갈 것인지? - 어떤 기술에 대해 관심을 가지고 있는지? - 성장하고자 하는 방향이 빠르게 기술을 적용하고자 하는 것인지? 혹은 탄탄한 기술 베이스를 가져가는 것인지? 등 다양한 생각을 했다. 그리고 "기본기부터 쌓자"는 결론을 내리게 되었다. 그 이유는 위의 고민들을 하는 것보다 당장 내게 부족한 부..

프로젝트/WebRTC - studyhub

[WebRTC] 마이크로서비스 간 gRPC 통신 - 개발편(2)

이전 글에 이어 gRPC client부분을 구현하고, gRPC 통신을 테스트하였다.https://jhl8109.tistory.com/62 [WebRTC] 마이크로서비스 간 gRPC 통신 - 개발편(1)개요 현재 마이크로서비스 간 데이터 통신 시 TCP를 활용하고 있다. 그러나, gRPC로 방향을 바꿔보고자 한다. 이유로는 크게 3가지가 있다. 성능 개선 기대 예외 처리의 직관성 개선 기대 네트워크jhl8109.tistory.com gRPC 동작 gRPC 동작은 MessageChannelInterceptor에 의해 수행된다.코드 중 주석 부분은, 존재하던 TCP 코드이다.@Slf4j@RequiredArgsConstructor@Componentpublic class Message..

쩨이호
쩨이호