개발자 노트

UML 본문

명확히 다 쓰기엔 모든 걸 완벽하게 알지 못한다. 이래서 워터폴 방식은 안되나보다. 그래서 대략적인 관계를 보여주려한다.

1.객체간 데이터는 JSON으로 통일한다.
   => 복잡성을 최대한 줄이기 위해서. 각 클래스가 원하는 데이터에 맞게 전송해주려 하니 입출력데이터형을 일일이 다 봐줘야 한다. 이로 인해 의존성도 높아져서 JSON으로 통일하였다.(이래서 spring에서 DTO를 쓰는건가 싶다.)

2. FTP통신을 통해 server에 접속하여 파일을 다운,삭제 및 디렉토리 변경 등은 FTPManipulation 객체에서 담당해준다.

3.Client의 파일 탐색같은 건 FileManager가 담당해준다.

4.Synchronzation이 2.(server) 3.(client)의 디렉토리를 동일하게 설정해주어 파일을 확인하고 내보낼 수 있도록 정해준다. 즉, SYnchronization객체가 server와 client를 맞춰주는 역할을 한다보면 된다.

5.HashFunction은 interface를 구현하도록 한다.
   =>지금은 SHA1 을 쓰지만 뭐... 충돌가능성이 조오금은 있다해서 나중에 문제되면 SHA256으로 바꿔주는 등 다형성을 위해 interface로 Hash 객체를 만들었다.

6.DB는 interface를 구현하도록 한다.

간편히 하기 위해 텍스트 파일에 JSON을 기록하는 방식으로 접근할것인데,  추후에 mysql같은 것도 쓸 수 있으니 따로 빼두었다. DBManipulation은 dao같은 역할이라 보면 된다.

 

UML를 처음 작성해보기도 하고... 어떤 함수를 만들지, 변수를 만들지 명확하지 못하여 미숙한 부분이 많다.

하지만 만들어가며 수정함으로써 내 코드들의 구조를 파악할 수 있는 지표로 만들어 주어야겠다.

반응형

'토이프로젝트 > 클라이언트-서버 폴더 동기화' 카테고리의 다른 글

배포시 문제  (0) 2020.04.30
ver 1.0문제  (0) 2020.04.29
mavenProjectBuild문제  (0) 2020.04.29
프로젝트를 진행하며 알게 된 것들.  (0) 2020.04.29
프로젝트 개요  (0) 2020.04.29
Comments