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

스윞한 개발자

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

프로젝트

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

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

이번에는 프론트/백엔드 간 데이터 통신 구축에 대해 써보았습니다 ㅎㅎ

 

통신에 관련해서 간단한 개발일지? 기록? 입니다 ! 

 

 

 

2023.10.13 ~ 2023.10.19

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

제 담당 부분인 사용자 인증 및 회원가입 기능에 대한 개발을 진행하였습니다!

 

프론트엔드에서 같은 분야를 담당하고 있는 학생은 서버와의 통신을 Alamofire 라이브러리를 사용하여 통신하였고, 저는 URLSession을 사용하여 통신하였습니다.

 

서로 다른 방법으로 서버와의 통신을 하였기에, 회의때 코드리뷰를 하며 새로운 통신법에 대해서 알 수 있는 시간이었습니다. 이번 서버와의 통신에서 URLSession 기능 프레임워크에 대해 알수 있게 된 시간이었고 애플 공식문서, 교재 등을 찾아보며 공부할 수 있는 시간이었습니다!

URLSession

 

*< URLSession >*

 

데이터를 다운로드하거나 업로드하고, HTTP 요청을 보내거나 받을 때 사용됩니다.

 

URLSession은 Apple의 Foundation 프레임워크에 속하며, 앱이 네트워크 작업을 비동기 적으로 수행할 수 있도록 도와줍니다. URLSession의 세션 유형에서 저는 shared를 사용하였습니다. 서버와의 데이터 통신에서 입력받은 아이디와 비밀번호를 서버에 POST형태로의 데이터를 요청하기에 URLSessionDataTask를 사용하였습니다.


서버로부터 바디 형태로 전달받은 액세스토큰, 리프레시 토큰에 대해 저장하기 위해서 키 체인이라는 데이터 저장소를 이용했습니다.

KeyChainSwift

 

*< KeyChainSwift >*

 

키체인은 IOS및 macOS에서 안전하게 사용자 데이터 등을 저장하고 관리하는데 사용되는 암호화 저장소 입니다. 이를 통해 보안과 데이터 보호, 영구적 저장소, 공유 및 접근 제어, 암호화 옵션을 사용할 수 있습니다.

 

로컬 저장소를 이용해서 통신할때마다 저장된 토큰을 이용해 통신을 하고, 다양한 로직을 수행할 수 있습니다. 이번 주차에서는 로그인을 수행하기 위해 URLSession의 간단한 통신 로직, 전달 받은 토큰을 저장하기위해 Keychain 암호화 저장소에 대해 공부하였고 이를 개발에 적용하였습니다.

 

토큰을 저장, 로그인 유효성 검사, 로그아웃을 처리하는 메서드를 AuthenticationManager라는 클래스를 새로 만들어 해당 메서드를 관리했습니다. 토큰 유효성을 검사하는 메서드는 어플 기능 수행을 진행하며, 서버와의 지속적인 통신으로 액세스 토큰이 만료되면 리프레시 토큰을 통해 재발급을 받고 리프레시 토큰이 만료 됐을 경우에는 로그아웃을 시키는 방법으로 계획 중입니다.

 

내주, 토큰 유효성 검사와 다른 HTTP 통신을 개발할 예정입니다.

 

 

 

이번에는 로그인을 위한 간단한 POST 통신과 키체인으로 토큰 저장하는 방법을 배우고 개발하였습니다. 다음 주차에서는 이 키체인 암호화 저장소를 이용해 저장된 토큰을 가져와 통신을 하기위해 인증하는 과정, 그리고 기본적인 UI를 만든 뷰에 POST 이외 의 서버와의 다른 통신을 진행해보도록 하겠습니다.

 

프론트엔드에서 같은 분야를 담당하고 있는 학생은 서버와의 통 신을 Alamofire 라이브러리를 사용하여 통신하였고, 저는 URLSession을 사용하여 통신했는데, 서로 다른 방법으로 서버와의 통신을 하였기에, 회의때 코드리뷰를 하며 새로운 통신법에 대해서 알 수 있는 시간이었습니다!!!

 

미숙하지만 차차 하나씩 완성해 갈때의 뿌듯함이 있는거 같습니다! 다음 포스팅에서도 열심히 써볼게요!!

 

구현 코드

GitHub : https://github.com/Creative-Semester/ios
"AuthenticationManager" 참고
참고자료

 

GitHub - Creative-Semester/ios

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

github.com

https://developer.apple.com/documentation/security/keychain_services/ https://developer.apple.com/documentation/foundation/urlsession
https://www.figma.com/file/dr9rKsORggCI6fW144hGkc/창의학기제
https://www.youtube.com/@dev_jeongdaeri
야곰(Swift5) 교재

 

개발하는 정대리

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

www.youtube.com

 

Figma

Created with Figma

www.figma.com

 

URLSession | Apple Developer Documentation

An object that coordinates a group of related, network data transfer tasks.

developer.apple.com

 

Keychain services | Apple Developer Documentation

Securely store small chunks of data on behalf of the user.

developer.apple.com

 

728x90
반응형
LIST