일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딕셔너리
- 네트워크
- struct
- uikit
- 반응형
- 기초문법
- collectionview
- 토이프로젝트
- swift
- MVVM
- 학과별커뮤니티
- 프로토콜
- 앱개발
- ios
- SwiftUI
- AppStore
- 이론
- async
- WeatherKit
- RxSwift
- mvc
- 세종대학교
- 스트럭트
- 디자인 패턴
- 협업
- forEach
- CS
- 대표
- 구름톤 유니브
- 실습
- Today
- Total
스윞한 개발자
IOS 학과별 커뮤니티 개발 - 7 본문
이번 포스팅에서는 게시판들의 글들을 가져오는 통신을 적어보았습니다!!
페이징의 기능/원리에 대해 배우고 개발해보는 시간을 가졌습니다
거의 프로젝트 완성이 되어가고 있는데, 끝까지 봐주세요 ㅎㅎ
2023.11.03 ~ 2023.11.09
프론트엔드, 백엔드 간 데이터 통신 구축
게시판들의 page 별로 게시판의 뷰를 가져오는 페이징 통신을 진행했습니다.
자유게시판, 학생회 공지사항의 페이징 통신을 하였습니다.
페이징(Paging)
페이징이란?
서버와의 데이터 통신에서 일정한 양의 데이터를 더 작은 덩어리로 분할하여 전송하는 방법입니다.
대규모 데이터를 처리하거나 대량의 데이터를 효과적으로 표시할 수 있어요!
페이징 기술 구현
- 서버 구현
- 클라이언트 구현
- 페이지 요청 및 응답처리
- 페이지사이즈에따라요청 -> 더많은페이지요청처리
- 5. UI 업데이트의 로직
위의 로직으로 게시판 페이지 기술을 구현했습니다!
저희 프로젝트는 전체 페이지 중, 각 페이지 사 이즈를 20으로 하고 스크롤을 아래로 하면 더 많은 페이지 요청을 진행하고, 위로 스크롤 을 재스처하면 새로운 페이지(처음부터) 불러오도록 페이징 기술을 처리했습니다.
전체 뷰는 TableViewController를 이용하여 각 셀 당 페이징 통신으로 불러온 내용 1개 로 할당 했습니다.
메소드를 통해서 불러왔고, 전역 변수로 currentPage(현재페이지)를 조 절해가며 새로운 데이터 페이징 통신을 진행하였습니다.
처음 전체 페이지 목록에 대해 불러올 때, 게시글 제목, 내용, 이미지 등 전체 내용에 대해 불러오고, 상세 내용을 조회 할때는 이니셜라이저를 이용해 가져왔습니다.
이니셜라이저
객체의 초기화를 담당하는 메서드 또는 함수로, 객체를 초기화를 담당하는 메서드 또는 함 수로, 객체를 생성하고 초기 상태를 설정하는 역할을 합니다.
이니셜라이저는 객체 지향 프로그래밍 언어에서 주로 사용됩니다!
객체의 속성 및 멤버 변수를 초기화하고 작업을 수 행하는 데 사용됩니다.이니셜라이저를 활용한 데이터 전달 : 초기화 메서드나 이니셜라이저를 사용하여 데이터를 다른 화면으로 전달하는 방법입니다.
데이터를 전달하려는 대상화면에 이니셜라이저를 정의하고, 데이터를 전달하려는 화면에서 대상 화면을 초기화할 때 이 이니셜라이저를 사용하여 데이터를 전달합니다. 초기 BoardViewController에서 post배열을 가져와, 이니셜라이저를 이용해 게시판 상세뷰 로 데이터를 전달하고 이 가져온 데이터를 통해 상세뷰를 게시함으로써 데이터 통신의 횟 수를 줄이는 방법으로 구현했습니다!
구현 코드
GitHub:
https://github.com/Creative-Semester/ios
"OpenBoardViewController" 참고
참고자료 :
https://velog.io/@yy0867/Swift-정리-Initialization
https://www.youtube.com/@dev_jeongdaeri
야곰(Swift5) 교재
내주계획 : 이미지 업로드 기능, 이미지 데이터 변환, 통신을 진행
'프로젝트' 카테고리의 다른 글
IOS 학과별 커뮤니티 개발 - End (0) | 2024.01.25 |
---|---|
IOS 학과별 커뮤니티 개발 - 8 (2) | 2024.01.25 |
IOS 학과별 커뮤니티 개발 - 6 (0) | 2024.01.25 |
IOS 학과별 커뮤니티 개발 - 5 (0) | 2024.01.25 |
IOS 학과별 커뮤니티 개발 - 4 (2) | 2024.01.25 |