Page 156 - MDP2020-3
P. 156

150
                      |    인천전자마이스터고등학교  ·············································································································

            제 4 장 기능 구현




            1. 개요

              앞선 테스트를 통해 구현 과정에서 큰 문제가 없을 것으로 확인되었기 때문에 본격적인 기능
            구현을 진행하였습니다.


            2. 진행 사항

              가장 중요한 기능은 데이터베이스 서버이기 때문에 데이터베이스 서버 구축을 가장 먼저 진
            행하였습니다. WAMP에서 사용되는 데이터베이스의 경우 MariaDB 이었으며 MySQL과 사용법에 있
            어서는 차이가 없기에 별도의 어려움을 겪지 않고 진행할 수 있었습니다. 데이터베이스를 설정
            할 때 있어서 가장 중요시 되는 것은 내부에서의 테스트가 아닌 외부 클라이언트에서 접근, 쿼
            리가 가능한지가 관건이었습니다. 특별한 문제는 없이 진행할 수 있었습니다.



              라즈베리파이의 경우 Linux 중 Debian 배포판을 기반으로 사용하고 있기에 기존 경험에 의하
            면 Ethernet 통신을 사용하여 데이터베이스 접속에 있어서 문제가 없을 것을 알 수 있었습니
            다. 그러나 MPU를 사용하여 접속한 적은 없었기에 이 점에 대한 해결책이 필요하였습니다. 여
            러 가지 방법을 찾아보았으나 현재 프로젝트에 적용하는데 있어서 많은 시행착오가 있을 것으

            로 보였습니다. 그러던 중 Java의 RxTx 모듈을 사용하여 필요한 기능을 만족할 수 있다는 것을
            다른 팀의 조원으로부터 들을 수 있었습니다. 해당 모듈을 이용할 경우 Java를 이용한 Serial
            통신 즉, USART 통신을 구현할 수 있었고 해당 통신으로부터 값을 넘겨받아 데이터베이스와 통
            신하는 방법으로 해결할 수 있었습니다. 모듈에 대해 검색할 때 예제 코드 또한 찾을 수 있었
            는데 모듈의 동작 방식을 이해하기 위하여 해당 예제 코드를 사용하여 MPU와 간단한 통신을 시

            도하였습니다. 모듈을 테스트하는 과정에서 여러 오류가 발생하였지만 대부분 검색을 통해 해
            결할 수 있는 오류였습니다. 그러나 하나의 오류를 해결할 수 없었는데 해당 오류에 대한 정확
            한 해결 방법은 찾지 못하였으나 검색을 통해 연관된 자료를 확인한 결과 환경에 문제가 있을
            것이라 판단하여 차이점에 대해 분석해보았습니다. 찾아본 결과 해당 모듈은 32bit 환경에서
            사용하기 위했던 모듈로 확인되었습니다. 따라서 64bit 환경에서 사용할 수 있는 version에 대

            해 찾아보았으나 정상적인 동작을 확인할 수 없었고 이에 따라 가상 머신을 사용하여 32bit 환
            경에서 개발을 진행하기로 하였습니다.


              Java와 데이터베이스 간의 통신을 위한 방법으로 JDBC API를 사용하는 방법에 대해 알 수 있
            었습니다. JDBC를 사용하기 위해서는 JDBC Driver를 설치하여 프로젝트에 추가할 필요가 있었

            습니다. 기존의 계획과 다르게 RxTx 모듈로 인해서 32bit 환경에서 개발이 진행되어야 했기에
            JDBC Driver에 대해서 호환성을 확인할 필요가 있었습니다. 해당 API 또한 예제 코드를 사용하
            여 확인한 결과 이상 없이 동작하는 것을 확인할 수 있었습니다.


              예제 코드는 프로젝트의 요구 조건을 전부 충족할 수는 없었기에 각 코드의 동작에 대해 자

            세하게 분석한 후 이를 목적에 맞게 수정하여 사용하기로 하였습니다. 우선 RxTx Serial 통신
            과 관련된 코드의 경우 다음과 같이 분석할 수 있었습니다.
   151   152   153   154   155   156   157   158   159   160   161