학과별 커뮤니티 개발 - 7

정성윤·2023년 12월 6일
0

Swift 프로젝트

목록 보기
7/9

2023.11.03 ~ 2023.11.09

프론트엔드, 백엔드 간 데이터 통신 구축

게시판들의 page 별로 게시판의 뷰를 가져오는 페이징 통신을 진행했습니다.
자유게시판, 학생회 공지사항의 페이징 통신을 하였습니다.

페이징(Paging)

서버와의 데이터 통신에서 일정한 양의 데이터를 더 작은 덩어리로 분할하여 전송하는 방 법. 대규모 데이터를 처리하거나 대량의 데이터를 효과적으로 표시.
페이징 기술 구현

  1. 서버 구현
  2. 클라이언트 구현
  3. 페이지 요청 및 응답처리
  4. 페이지사이즈에따라요청->더많은페이지요청처리 5. UI 업데이트
    의 로직으로 페이징 기술을 구현했습니다.

저희 프로젝트는 전체 페이지 중, 각 페이지 사 이즈를 20으로 하고 스크롤을 아래로 하면 더 많은 페이지 요청을 진행하고, 위로 스크롤 을 재스처하면 새로운 페이지(처음부터) 불러오도록 페이징 기술을 처리했습니다.
전체 뷰는 TableViewController를 이용하여 각 셀 당 페이징 통신으로 불러온 내용 1개 로 할당 했습니다.

메소드를 통해서 불러왔고, 전역 변수로 currentPage(현재페이지)를 조 절해가며 새로운 데이터 페이징 통신을 진행하였습니다.
처음 전체 페이지 목록에 대해 불러올 때, 게시글 제목, 내용, 이미지 등 전체 내용에 대해 불러오고, 상세 내용을 조회 할때는 이니셜라이저를 이용해 가져왔습니다.

이니셜라이저

객체의 초기화를 담당하는 메서드 또는 함수로, 객체를 초기화를 담당하는 메서드 또는 함 수로, 객체를 생성하고 초기 상태를 설정하는 역할을 합니다.

이니셜라이저는 객체 지향 프로그래밍 언어에서 주로 사용됩니다. 객체의 속성 및 멤버 변수를 초기화하고 작업을 수 행하는 데 사용됩니다.이니셜라이저를 활용한 데이터 전달 : 초기화 메서드나 이니셜라이저를 사용하여 데이터를 다른 화면으로 전달하는 방법입니다.

데이터를 전달하려는 대상화면에 이니셜라이저를 정의하고, 데이터를 전달하려는 화면에서 대상 화면을 초기화할 때 이 이니셜라이저를 사용하여 데이터를 전달합니다. 초기 BoardViewController에서 post배열을 가져와, 이니셜라이저를 이용해 게시판 상세뷰 로 데이터를 전달하고 이 가져온 데이터를 통해 상세뷰를 게시함으로써 데이터 통신의 횟 수를 줄이고 있습니다.

구현 코드 GitHub: https://github.com/Creative-Semester/ios
"OpenBoardViewController" 참고

참고자료 : https://velog.io/@yy0867/Swift-정리-Initialization https://swieeft.github.io/2020/07/20/PagingTableView.h![](https://velog.velcdn.com/images/jeoungsung12/post/383f25c2-4e02-4511-92ec-3d8936ede04d/image.png)
tml
https://www.youtube.com/@dev_jeongdaeri
야곰(Swift5) 교재

내주계획 : 이미지 업로드 기능, 이미지 데이터 변환, 통신을 진행

profile
이유있는 스위프트 개발자

0개의 댓글