오블완4 오픈소스 - Naver scavenger - 로깅 문자열 연결 vs 파라미터 치환 오늘은 Naver scavenger 오픈소스 프로젝트를 살펴보았습니다. scavenger는 런타임 Dead Code 분석 도구입니다. 디버깅 또는 로그를 추가하지 않고 메서드 호출이 확인 가능하고 이를 시각화해 유저들에게 보여줍니다. 이를 통해서 손쉽게 Dead Code를 파악하고 리팩토링할 수 있습니다. 1. 분석 대상분석 대상은 프로젝트 전체에서 발견되는 log 코드였습니다. 이번에 인공지능 알고리즘을 활용하는 프로젝트를 진행하면서 수많은 연산이 발생하는 경우 중간에 로그를 하나 찍더라도 성능에 많은 영향을 주는 것을 경험하였기에 프로젝트 전반에 걸쳐서 작성되어 있는 로그 코드를 유심하게 보게 되었습니다. 그러다가 scavenger는 거의 대부분의 로그들이 문자열 연결 방식으로 만들어져있다는 것을 .. 2024. 11. 23. 오픈소스 - 표준프레임워크 기여하기 - logging-log4j2, readme 기여 개요이번에는 전자정부 표준프레임워크 egovframe에 기여한 내용에 대해서 포스팅하겠습니다. 1. https://github.com/eGovFramework/egovframe-docs/pull/351 logging-log4j2_configuration_file.md 오탈자 수정 by junhyeongkim2 · Pull Request #351 · eGovFramework/egovframe-docsAppender 선언과 정의 테이블의 태그명 미표기 문제를 마크다운 수정으로 해결했습니다. 참고 : https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_.. 2024. 11. 13. 오픈소스 - hibernate-orm 기여하기 - testing orm 기여 개요이번에는 Hibernate-ORM 오픈소스에서 성능 최적화를 위한 개선 작업을 진행했습니다. 구체적으로는hibernate-testing/src/main/java/org/hibernate/testing/orm/domain/gambit/Shirt.java의 convertToEntityAttribute 메서드에서 불필요한 Integer.valueOf() 호출을 제거하는 작업이었습니다. 변경 사항 상세 설명변경 전 코드@Overridepublic String convertToEntityAttribute(Integer dbData) { if (dbData != null) { switch (Integer.valueOf(dbData)) { // 불필요한 변환 case .. 2024. 11. 8. 오픈소스 - 스프링프레임워크 기여하기 - WebSocketHandlerMapping Spring Framework에 기여한 내용 소개오늘은 Spring Framework 오픈소스에 기여한 내용에 대해서 작성하겠습니다.먼저 제가 오픈소스 기여에 관심을 가지게 된 계기는 GDG Songdo에서 진행하고 있는 오픈소스 멘토링을 통해서 많은 분들이 크고 작은 글로벌 오픈소스에 기여를 하는 것을 보고 나도 저렇게 내가 사용하는 프레임워크에 기여를 해보고 싶다는 생각으로 시작되었습니다.현재는 스프링프레임워크의 아주 작은 코드를 수정하는 수준의 기여를 하였는데 앞으로는 더 큰 로직을 더 나은 방향으로 수정하고 직접 테스트 코드도 짜서 검증하는 기여를 해보고 싶습니다.이번에 기여한 내용은 Pull Request #33634에서 확인하실 수 있습니다.변경 사항 설명이번 기여에서는 WebSocketHan.. 2024. 11. 7. 이전 1 다음