카공족을 위한 카페의 정보를 제공하는 프로젝트를 웹프로그래밍 동아리에서 팀을 꾸려 진행했었다. 카페의 의자 수, 형태, 콘센트의 개수 등을 DB에서 저장하여 사용자의 위치정보나 검색을 통해 추천한 위치기반 서비스였다. 자주 팀 프로젝트에서 백엔드 부분을 자주 맡아와서 자연스럽게 백엔드를 담당 하였다. 언어, 프레임 워크와 DB를 Node.js, Express.js, Mongodb로 선정하여 프로젝트를 진행하였다. 자주 사용되는 REST API로 제공하여 사용자에게 정보를 보여주도록 하였다. 프로젝트가 작지만, 세부적으로 나누었다. 클라이언트와 만나는 API, DB와 연결되어 데이터의 관리하는 Model, 그사이를 연결하는 service 로 나누었다. 이것들을 각각 나누고 연동되도록 작업을 하였다. 서버가..
DB는 MYSQL을 선택하였습니다. 사용하는 언어에 맞게 MYSQL C 라이브러리를 했습니다. 많은 부분 PHP의 MYSQL 레퍼런스를 참고했습니다. DB에 쿼리를 JSON 변환을 이용했기 때문에 여러 줄을 이용한 쿼리는 복잡하고 길어졌습니다. 일부 SQL문들은 procedure로 구현하였습니다. 이를 이용해 get 요청에도 get 쿼리 변환 실행 후 함수 실행하듯 DB의 procedure를 실행하도록 만들었습니다. 어떠한 컬럼이 바뀌면 같이 바뀌어야 하는 부분이 있어서 MYSQL의 기능인 트리거를 이용하여 같이 변하게 만들었습니다. 주로 데이터 추가와 삭제를 트리거로 다른 테이블의 데이터를 수정, 삭제 등을 했습니다. 박물관, 미술관 등 현장실습 할만한 곳을 추가하기 위해 공공데이터 API를 쓴 적이 ..
교육 보조용 프로그램, 현장 실습 때 AR과 위치기반 출석체크 및 퀴즈 풀이 서비스 AR과 Google Map API 기반 기술을 통해 현장 실습에 도움을 주던 프로그램이었습니다. 사용자가 위치정보와 문제를 통해 이곳을 방문하고 잘 관람했는지 관리자가 체크를 할 수 있는 서비스를 기획했습니다. 이전에 진행한 프로젝트에서는 CSV와 비슷하게 특정 문자열을 이용하여 데이터를 분리하는 방법을 썼습니다. 이 방식이 관리하기 어렵다고 생각해 github에 있는 C언어 JSON 파싱 라이브러리를 이용해 JSON을 프로토콜에 사용했습니다. 말만 JSON이었지 SQL 쿼리 변환기를 짜는 것과 다름이 없었습니다. 사용자가 프로토콜에 맞게 JSON을 보내면 서버가 JSON의 데이터를 이용해 SQL 쿼리문을 작성하고 DB에..