250x250
반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

스윞한 개발자

IOS 학과별 커뮤니티 개발 - 7 본문

프로젝트

IOS 학과별 커뮤니티 개발 - 7

스윞남 2024. 1. 25. 17:53
728x90
반응형
SMALL

이번 포스팅에서는 게시판들의 글들을 가져오는 통신을 적어보았습니다!!

 

페이징의 기능/원리에 대해 배우고 개발해보는 시간을 가졌습니다

거의 프로젝트 완성이 되어가고 있는데, 끝까지 봐주세요 ㅎㅎ

 

 

 

2023.11.03 ~ 2023.11.09

 

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

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

 

페이징(Paging)

페이징이란? 

 

서버와의 데이터 통신에서 일정한 양의 데이터를 더 작은 덩어리로 분할하여 전송하는 방법입니다.

대규모 데이터를 처리하거나 대량의 데이터를 효과적으로 표시할 수 있어요!


페이징 기술 구현

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

위의 로직으로 게시판 페이지 기술을 구현했습니다!

 

 

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


전체 뷰는 TableViewController를 이용하여 각 셀 당 페이징 통신으로 불러온 내용 1개 로 할당 했습니다.

메소드를 통해서 불러왔고, 전역 변수로 currentPage(현재페이지)를 조 절해가며 새로운 데이터 페이징 통신을 진행하였습니다.

 

처음 전체 페이지 목록에 대해 불러올 때, 게시글 제목, 내용, 이미지 등 전체 내용에 대해 불러오고, 상세 내용을 조회 할때는 이니셜라이저를 이용해 가져왔습니다.

이니셜라이저

 

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

 

이니셜라이저는 객체 지향 프로그래밍 언어에서 주로 사용됩니다!

 

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

 

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

 

 

 

구현 코드

GitHub:
https://github.com/Creative-Semester/ios
"OpenBoardViewController" 참고

 

GitHub - Creative-Semester/ios

Contribute to Creative-Semester/ios development by creating an account on GitHub.

github.com

참고자료 :
https://velog.io/@yy0867/Swift-정리-Initialization
https://www.youtube.com/@dev_jeongdaeri
야곰(Swift5) 교재

 

개발하는 정대리

한국에서 개발자로 살아남기! 예전에 저처럼 프로그래머가 되고 싶지만 그 길을 몰라 해매는 분들에게 도움 되고자 이 채널을 운영하기 시작했습니다. 프로그램에 관심 있는 분들이나 취업 준

www.youtube.com

 

Swift 정리 - Initialization

Initialization, Convenience Init, Override Init, init?, init!, closure initialization

velog.io

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

728x90
반응형
LIST