RE:ISC프로젝트 6-(전역 포트)폴더 구조 정리
전역 포트 설정에 필요한 것
- 불러올 정보
- 장비명과 장비 id
- 순서
- 장비명과 장비 id
- 포트에서 입력 받는 정보
- 포트 x,y좌표(범위 설정)
- 포트명(유저가 입력)
- 포트 주석
- 케이블 라벨
- 옵션1,옵션2
- 포트 x,y좌표(범위 설정)
- 입력된 정보를 바탕으로 설정해야하는 정보
- 옵션 1,옵션2의 옵션 정보
- 포트의 타입(장비명에 따라)
src/java/globalPort
전역 장비를 담당할 곳이다.
예전에 Port라는 큰 도메인을 한곳에서 관리했더니, 전역포트와 방 별 포트에 대한 설정이 구분도 어렵고(물론 지금은 나 혼자 관리하지만) 안에 들어있는 파일들도 너무 많아져서 두개로 나누어 관리하기로 하였다.src/java/globalPort/service
파이어베이스에 저장되는 구조는 유저명-프로젝트(랜덤키,필드값으로 프로젝트정보)-dev_port(컬렉션으로 들어가기)이다.
장비명과 동일하게 전체 삭제는 자주 할 일이 아니기 때문에 함수는 getPort/getOrder/addPort 정도가 들어갈 예정이다.getPort
만약 등록된 Port가 있다면 당연 있는 정보를 먼저 불러와줘야하기 때문에, Firebase에서 port를 가져와주는 함수이다.
getOrder
포트 정보의 경우, 장비와 동일한 순서를 유지해주어야하는데 파이어베이스는 데이터 저장시 순서를 보장해주지는 않는다.
그래서 일단 쿼리문을 통해서 order순으로 기존의 자료들은 getPort시 order순으로 가져오도록 해주었고, 최초 등록시에는 getOrder을 통해 order필드를 채워서 순서를 보장할 수 있도록 해주었다.comboData
위 함수는 포트정보가 저장된 후에 장치 정보와 포트 정보를 조합하여 저장하기 위해 사용하는 함수이다.
이후 json으로 반환하는 작업은 컨트롤러에서 해줄 예정이다.
- 옵션 1,옵션2의 옵션 정보
src/java/globalPort/view
서비스를 통해 읽어온 포트 정보 등을 반환한다.
이 부분에는 아마 크게 어렵거나 추가되어야하는 요소가 없을 것으로 보인다.
src/java/globalPort/model
- 포트의 형태 정하기(Getter/Setter)
- 장비명(Integer)
- 포트 x,y(Integer)
- 포트 주석(String)
- 케이블 라벨(String)
- option1/2(Integer)
- 포트 타입(Integer)
이중에서 옵션의 선택이나 포트 타입에 대한 부분은 장비명에 따라 선택지가 달라져서, 그 부분은 PortForm에서 초기화시 설정을 해주어야하지 않을까 싶다.
- 장비명(Integer)
- PortForm
저번 DeviceForm과 같은 역할을 하는 애다.
차이가 있다면 이번에는 초기 값을 단일하게 맞추는 것이 아니라 이름에 따라 맞추어주어야한다.src/java/globalPort/controller
기본적으로 모든 도메인이
/port
로 시작할 것이기 때문에, RequestMapping을 써준다.
그리고 유의해야할 점으로는 json처리인데, 포트가 등록이 완료 되었을 때에 combo_data라는 json을 생성해야하므로 이 부분은PostMapping
을 담당할 함수에서 처리를 해주어야한다.
댓글남기기