본문 바로가기

project5

[C++] 에이스타(A*) 알고리즘을 구현한 최단 경로 이동 시뮬레이션 개발 https://jbground.tistory.com/74 최적 경로 찾기 #2 - 에이스타(A*) 알고리즘, 자바 코드 구현 포함에이스타(A*) 알고리즘 에이스타 알고리즘은 순서대로 정점을 검사하는 수학적 접근 방식과 특정 정보를 활용하여 계산 효율성을 향상하는 휴리스틱 접근 방식을 사용하여 비용을 계산하는 알jbground.tistory.com A* 알고리즘 코드void RouteCreator::create(Point& start, Point& end, vector* out) { int n = 100; int m = 70; int dx[] = { -1, 0, 1, 0 }; int dy[] = { 0, 1, 0, -1 }; vector open_list; vector cl.. 2023. 7. 12.
[Go] Golang을 이용한 칼만 필터 적용 구현 및 시뮬레이션 https://jbground.tistory.com/82 [SLAM] 칼만 필터(Kalman Filter)란?로봇의 각종 센서 정보를 통해 로봇의 위치를 추정하고 이동 경로 계획을 위한 SLAM을 하는 과정에서 센서를 통해 들어오는 정보에 잡음(노이즈)이 섞이는 경우가 발생한다. 이로 인해 추정된 위jbground.tistory.com 공부했었던 칼만 필터를 실제로 적용하는 과정을 직접 확인해보기 위해 시뮬레이션 개발을 진행했습니다.칼만 필터는 github.com/konimarti/kalman 라이브러리를 적용했습니다. 간단한 웹 구현을 위해 Gin을 활용하여 개발했습니다.func RoutingByGin() *gin.Engine { r := gin.New() r.Use(gin.Logger()) r.Use.. 2023. 7. 11.
[Project] SECS 프로토콜을 이용한 데이터 통신 Conversion Server 개발기 반도체 산업의 물류 자동화를 위한 필수 요건 중 하나는 반도체 장비와의 실시간 통신이며 반도체 장비와의 실시간 통신은 SECS 표준 프로토콜을 이용합니다.물류 자동화 서버 엔지니어로 일하며 경험하고 개인적으로 개선되었으면 하는 부분의 개선을 통해 반도체 장비와 통신하며 메세지와 매핑된 객체를 이용하여 Byte를 Object로 변환하는 서버를 개발하고 그에 대한 기록을 남겨보려고 합니다. 반도체 장비와의 통신은 시나리오 기반이며 시나리오는 메세지들의 통신으로 이루어져 있습니다.Send/Reply 과정을 통해 메세지를 송수신하며 시나리오를 진행합니다.Send 메세지를 수신하면 그에 맞는 Reply 메세지를 응답해야 하고 이 과정에서 타임아웃이 적용되며 default timeout은 보통 5초로 설정합니다. .. 2023. 4. 24.
[Project] 오픈 API 데이터 통합 수집 배치 프로그램 개요프로젝트 진행 중 오픈 API의 데이터를 읽어 통합 데이터로 수집하는 배치 프로그램을 개발하는 업무를 담당하게 되어 업무 진행 간 겪은 경험들을 기록하고자 함. 분석1. 각각의 오픈 API에 있는 모든 데이터를 수집해야 한다.2. API의 데이터는 대부분 페이지 방식으로 적용되어 있다.  - pageNo = 1, RowNum = 103. 오픈 API의 URL 마다 다음 데이터를 나타내는 URL이 각각 다르다.  - page & row 방식, first row & last row 방식 4. 오픈 API 중 인증키를 요구하는 API도 있다.5. 오픈 API에서 요구하는 필수 Paramter가 존재한다.6. 연계된 오픈 API에서 가져온 데이터를 기반으로 수집해야 하는 API도 존재한다.7. 수집한 데이터.. 2022. 9. 29.
[Project] Develop Database Middleware server project 개요회사에서 제공하는 솔루션 중 Client에서 발생하는 속도 저하 현상을 해결하기 위한 목적기존 클라이언트는 Client - Server, Client - Database 라는 본인 기준 이해할 수 없는 방식으로 사용중이였고보안 기준이 향상된 고객사에서 해당 방식을 사용하지 못하는 상황이 발생하여 임시방편으로Client - DB RESTful Server(JSON) - Database 구조를 적용하여 사용하고 있는데 이때 기존에 사용하던 Hibernate로직을 그대로 적용하여 (Hibernate에 맞게 개발되어 사용중인 인터페이스에 구현체만 HttpServlet으로 바꾼 꼴)for문의 과도한 사용, session 과도한 접속 등의 이유로 심각한 속도저하가 발생하였고이를 개선하고자 Client - Dat.. 2022. 7. 14.