✅네이버클라우드 캠프/개발일기

[네이버클라우드캠프] 50일차. Java DAO와 네트워킹을 통한 원활한 데이터 공유 및 관리

우동한그릇 2023. 7. 5. 21:29
반응형

* DAO (Data Access Object) 도입

 

* 현황

저장소를 변경하려면 데이터 조작 방식이 바뀐다.

즉, 저장소 변경에 따라서 파일 I/O 방식이 바뀌며, 코드를 변경해주어야 한다는 뜻이다.

 

모든 Listener 클래스를 변경해야한다. (유지보수 비용이 많이 발생한다.)

 

 

 

* 개선

MemberDao 에서 데이터 파일 I/O , 데이터 조작 등의 기능을 수행하게 함으로써

데이터 처리 방식을 캡슐화하고 유지보수성을 향상시킨다.

 

두 개의 클래스에서 각각 처리하던 작업을 하나의 클래스로 통합하고, 

캡슐화함으로써 유지보수가 용이해진다.

 


* DAO 만들기

 

1.

 

변경 전 예시)

변경 후 예시)

 

3.

상속 후에 인터페이스를 적용한다면,

Dao 클래스를 각각 새로 정의해주어야한다.

 

4.

Member***Dao 등의 클래스들은 각각 동일한 인터페이스 MemberDao 를 사용한다.

 

MemberDao.java

 

MemberListDao.java


* 37. 네트워킹을 통한 데이터 공유

 

① 데이터 파일이 로컬에 저장된다면 App간에 데이터를 공유할 수 없다 !

② 데이터 파일을 별도의 컴퓨터에 분리하고 공유한다면 ? 

     동시에 같은 App파일을 편집하다 보면 파일의 데이터가 깨질 수 있다.

③ 데이터 관리 기능을 별도의 App으로 분리하여 App이 직접 데이터파일에 접근하는 것을 막는다.

   원격컴퓨터의 App이 데이터 등록/조회/변경/삭제 등을 관리한다.

   데이터 요청 처리를 받은 후에 데이터 파일이 변경되므로  동시에 접근해서 발생되는 문제를 피할 수 있다.


* S/W Architecture : client/server Architecture 

* 소켓연결

 

* IP와 port 번호

 

 

서버실행)

 

 

전송)

두가지 방법 !

 

 

* TCP 3-way HandShaking 역할

* Server/Client App 구동시켜보기 

 

먼저 vs코드로 (편의상 선택) 

 

App이 모여있는 프로젝트 폴더에서..

 

1. Setting.gradle 수정

 

 

ServerApp 이 있는 프로젝트 폴더에서..

2. build.gradle 수정

 

ServerApp 이 있는 프로젝트 폴더에서..

3. build.gradle 수정

 

상단에 Run 옆에 '▼' 버튼 클릭

4. Run Configurations... 클릭

 

5. Arguments 에서 Server는 '8888' 포트 번호 입력

 

6. Arguments 에서 Client는 '8888' 포트 번호 입력

7. 하단에 Display Select Console 버튼을 눌러서 App을 전환하면서 화면 확인

 

 

반응형