일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 람다 칼큘러스
- 로버트마틴
- 스택
- JavaScript
- lambda calculus
- 디자인패턴
- Pattern
- tcp
- 프로그래머스
- exception
- Rails
- Spring
- Python
- design-pattern
- JDBC
- 겨울카카오인턴
- DesignPattern
- functional programming
- 큐
- javscript
- 함수형 프로그래밍
- Java
- Eclipse
- Network
- Collections
- 백준
- Collection
- solid
- 자바
- 파이썬
- Today
- Total
개발자 노트
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 |