본문 바로가기

분류 전체보기228

실버리즘, 1년간의 창업 여정과 요양기관 경로 최적화 서비스 개발기 이 글에서는 제가 지난 1년 넘게 직접 개발하고 운영한 실버리즘이라는 서비스에 대해 이야기해보려고 합니다.실버리즘은 요양기관 차량운행표를 자동으로 최적화해주는 웹 서비스입니다.처음엔 단순히 포트폴리오를 만들기 위해 시작했지만, 지금은 전국의 실제 요양기관들에서 사용하는 서비스로 성장했습니다. 실버리즘은 어떤 서비스인가요?실버리즘은 요양기관에서 매일 작성하는 차량 운행표를AI 알고리즘으로 자동 생성할 수 있도록 도와주는 서비스입니다.기능은 크게 세 가지로 나뉩니다:메인 화면에서 차량 운행표를 생성, 수정특정 경로에 대해 빠르게 길 찾기이전 배치 기록을 조회해 반복 작성 시간 절감요양기관에서는 직원들이 어르신을 픽업하고 데려다주는 차량 운행표를 매일 작성해야 합니다.출석자가 바뀌거나, 특정 어르신이 빠지는 .. 2025. 4. 24.
오픈소스 - 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.
캠프라이드, 택시 카풀 커뮤니티 앱을 출시하다 들어가며...  올해 6월 말부터 혼자서 진행했던 캠프라이드 프로젝트가 드디어 출시되었다. 캠프라이드 서비스에 대해 간단하게 소개하자면 교통비 절약이 필요한 직장인, 예비군, 대학생들에게 택시 또는 카풀 커뮤니티를 제공하는 서비스이다. 내가 이 서비스를 처음 떠올리게 된 계기는 올해 학생 예비군을 참여하면서부터이다. 당시 나는 학교 근처에서 자취를 하다가 서울로 이사를 온 상태였고 학생 예비군은 경기도 안산 쪽에서 진행을 하게 되었다. 예비군에 참여하기 위해서 교통편을 알아보니 지하철을 타고 1시간 30분 정도 가야 했고 역에서 또 버스를 타고 예비군 훈련장에 가야하는데 이 버스의 배차 간격이 30분 이상이었고 심지어 정보도 잘 없었다. 아침 8시30분에 훈련을 시작하고 늦으면 예비군 훈련에 참여할 수 .. 2024. 11. 8.
오픈소스 - 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.