전체 글 썸네일형 리스트형 [개인 프로젝트] SpotChat 회고 ⭐️ 기획 단계🤔 주제 선정유럽 여행 경험을 바탕으로, 사람들이 함께 동행할 수 있는 플랫폼이 있으면 좋겠다는 필요성을 느꼈습니다.특히 유럽 여행지에서 동행을 구하는 활동이 ‘유랑’과 같은 온라인 커뮤니티에서 주로 이루어진다는 점에서 착안하여, 이를 더욱 간편하게 연결할 수 있는 모바일 앱으로 구현하고자 했습니다.또한, 이러한 활동이 주로 젊은 연령층 사이에서 이루어지고 있음을 고려했을 때, iOS 앱으로 출시가 된다면 해당 타겟층에게 높은 메리트를 제공할 것으로 판단했습니다. ✅ 개발 방식지난 프로젝트에서는 처음부터 모든 기능을 완벽히 설계하고 진행하는 방식으로 작업을 진행했습니다. 그러나 프로젝트 후반부에 새로운 요구사항이 생기거나 수정이 필요할 때, 앱 전반을 변경해야 하는 상황이 발생했습니.. 더보기 [iOS] About Kingfisher 이번 게시글에서는 제가 자주 사용하는 라이브러리 Kingfisher의 기능들에 대해서 알아보고자 합니다. 그런데 저의 경우, 초반에 학습할 때 Kingfisher를 사용하는 명확한 이유에 대해서 알지 못한 채로 사용했었는데요..! 그래서 이번에는 Kingfisher를 사용하는 이유와, 이를 통해 얻을 수 있는 장점들을 정리하며 보다 명확한 사용 목적을 이해하고자 합니다.이를 위해 먼저 이미지 캐시의 기본 개념과 여러 캐싱 방법들을 간단히 짚어보고, 이후 Kingfisher가 이러한 캐싱 전략을 어떻게 활용하고 있는지 살펴보겠습니다!이미지 캐시?이미지 캐시는 어플리케이션에서 이미지를 효율적으로 로드하고 표시하기 위해 이미지 데이터를 임시로 저장하는 기술입니다. 이미지 캐시의 필요성- 빠른 로드 시간- 네트.. 더보기 자료구조 사전지식 1. 시간복잡도- 입력의 크기와 문제를 해결하는데 걸리는 시간의 상관관계 => 쉽게 이야기하면 내 코드가 연산되는 횟수 1-1. Big - O 표기법- 모든 경우를 고려했을 때 최악을 기준으로 시간복잡도 표현- 가장 큰 영향을 주는 요소를 기준으로 표현=> 상수항 무시=> 계수 무시=> 최고차망만 표시 But, 항상 시간복잡도가 크다고 해서 연산횟수가 많은 것은 아님=> 데이터의 크기에 따라 결정 1-2. 그 외 표기법- Big-Ω (빅 오메가): 최선의 시간 복잡도- Big-θ (빅 세타): 평균적인 시간 복잡도 2. 공간복잡도- 입력의 크기와 문제를 해결하는 데 필요한 공간의 상관관계 2-1. Bit & ByteBit- 0,1 을 표현하는 데이터 양의 최소 기본 단위Byte- 1byte = 8bit.. 더보기 [iOS] About 채팅 UI UIKit을 활용한 채팅 UI... 그런데 이제 SnapKit을 곁들인.. 준비물: UIKit, SnapKit, UITableViewCell, 채팅에 대한 정보(송신자, 시간, 내용 등) 구성요소: messageBubble, messageLabel, imageContainerStackView, taimeLabel 목표- 메시지를 보낸 사람이 본인 / 상대방 에 따라 메시지 버블 색삭 및 위치 다르게 설정- 텍스트와 이미지를 포함한 메시지 지원 0. 뷰 계층 구성은 SKIP~ 1. 메시지 버블 레이아웃 private var leadingConstraint: Constraint?private var trailingConstraint: Constraint?messageBubble.snp.makeConstra.. 더보기 서버의 인증서 유효성 검사 CA(인증기관)이란?디지털 통신 및 거래에 대한 신뢰도를 높이기 위해 디지털 인증서를 발급하는 조직 1. 서버의 인증서 확인이 중요한 이유 - 인터넷에서 클라이언트(사용자)와 서버 간의 데이터 통신은 보안을 필수로 요구- 하지만 서버가 신뢰할 수 있는 대상인지 검증되지 않은 상태에서 통신이 이뤄진다면, 중간자 공격(Man-in-the-Middle Attack)과 같은 보안 위협에 노출- 이를 방지하기 위해 HTTPS 프로토콜은 서버의 인증서를 검증하는 과정을 포함 2. 서버 인증서 확인 과정 a. 서버가 CA에 인증 요청- 서버는 자신의 사이트 정보와 공개키를 CA(인증기관)에 전달- 이 요청은 서버가 자신이 신뢰할 수 있는 기관으로부터 인증받기를 원하는 과정 b. CA에서 인증서 발급- CA는 서버.. 더보기 [iOS] About Local Notification Local Notification- 사용자 기기에서 발생하는 알림으로, 서버 없이 앱 내부에서 특정 이벤트 / 시간을 기반으로 알림 트리거 가능- 인터넷 연결 없이도 동작하며, 앱 사용자에게 중요한 정보를 전달하는 데 유용함 로컬 알림의 주요 특징 1. 인터넷 연결 불필요- 로컬 알림은 기기 내에서 트리거되므로 네트워크 연결 필요 없음 2. 앱 내부 이벤트 기반- 특정 시간이나 이벤트에 따라 알림을 생성 가능- 예를 들어, 특정 작업의 마감 알림이나 데일리 리마인더를 설정 가능 3. 제한된 컨트롤- 앱이 백그라운드나 종료된 상태일 때는 알림만 표시 가능 로컬 알림 구현(SwiftUI 기반으로 작성된 프로젝트입니다..!!) 1. 권한 요청- 앱이 로컬 알림을 보내기 전에 사용자로부터 알림 권한 요청i.. 더보기 [iOS] About 동시성 동시성여러 작업을 동시에 실행되는 것 처럼 보이게 하는 것 프로그램 / 프로세스 / 스레드 프로그램- 단순한 코드 덩어리 프로세스- 프로그램이 실제로 실행되어 메모리에 올라가 실행 중인 것 스레드- 프로세스 내에서, 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것 멀티 프로세스멀티 프로세스- 하나의 운영체제에서 동시에 프로세스를 여러개 실행시킬 수 있는 기술 멀티 프로세스 환경에서의 메모리 구조- 하나의 운영체제에서 여러 프로세스들이 각각의 독립적인 공간을 할당받음- 하나의 프로세스 내부에 코드, 데이터, 힙, 스택 영역들이 각각 존재 멀티 스레드멀티 스레드- 하나의 프로세스 내에서 둘 이상의 스레드가 동시에 작업을 수행하는 것 멀티 스레드 환경에서의 프로세스의 메모리 구조- 하나의 운영체제에.. 더보기 HTTP & HTTPS HTTP와 HTTPS의 차이 HTTP정의- 클라이언트와 서버 간의 request, response를 주고받는 비연결형 텍스트 기반 통신 프로토콜 특징- 80번 포트 활용 (HTTP 서버가 80번포트에서 요청 대기, 클라이언트가 80번 포트로 요청 전송)- 애플리케이션 계층에서 작동하고, TCP/IP 기반 동작- 비연결성, 무상태성의 특징을 가짐 비연결성- 처음 연결을 맺은 후 요청(Request)과 한번의 응답(Response)이후 연결이 종료- 매 요청마다 재연결해야함 무상태성- 프로토콜에서 Client의 상태를 기억하지 않음- Client의 상태를 보관하기 위해 쿠키나 세션, JWT토큰 등을 이용하여 Client의 상태를 유지 HTTP 메서드 주요 메서드- create, get, put, del.. 더보기 이전 1 2 3 4 5 6 ··· 8 다음 목록 더보기