분류 전체보기326 24년 10월 회고(사후) 2024년 10월 리뷰결과물주요 기능 구현이미지 필터 기능CI필터를 이용하여 대비, 밝기, 비네트 효과 구현.CI필터의 컬러 매트릭스를 활용하여 커스텀 컬러 필터 구현:배열 내 수를 CIVector로 변환하여 필터 생성.이미지 회전 기능이미지 회전 시 뒷면 여백이 보이지 않도록 확대 로직 함께 구현.회전 시 발생할 수 있는 시각적 문제를 효과적으로 해결.블러 기능선형 블러 및 원형 블러 구현:CILayer를 사용하여 화이트 마스크 생성.핀치, 펜, 회전 제스처를 사용하여 사용자와의 상호작용 강화.텍스트 및 이미지 스티커 기능AutoLayout 대신 Frame을 사용하여 유연하게 구현.펜, 핀치 제스처를 통해 사용자 경험 향상.스티커 이미지 다운로드RESTful API 연동을 통해 스티커 이미지 다운로드 .. 2024. 12. 31. 24년 9월 회고(사후) 2024년 9월 리뷰결과물복귀 후 주요 프로젝트CGV 하이브리드 앱 - 플러그인 호출 - iOS 네이티브 기능 구현.PhotoPlay 플러그인 구현:클린 아키텍처 및 플러그인 패턴을 활용.기존 호출된 플러그인에 연결하여 화면을 구현.구체적인 구현 작업UI 작업버튼 동작 정의 및 커스텀 rulerView UI 구현.콜렉션 뷰 구현 및 탭바 선택에 따른 5가지 화면 구현.크기 선택 기능포토플레이에서 크기를 선택하면 여백이 다른 3가지 모드로 변경되는 기능 구현.Firebase 성능 모니터링Firebase 성능 모니터링 연동 작업 진행.이미지 필터 선택 및 UI 동작이미지 필터 선택 시 UI와 상호작용하는 동작 구현.목표와 방향성목표복귀 직후 빠르게 프로젝트에 적응하며 클린 아키텍처와 플러그인 패턴을 활용한 .. 2024. 12. 31. 24년 8월 회고(사후) 2024년 8월 리뷰결과물작성한 TILSynchronous vs Asynchronous Concepts in Programming동기와 비동기 개념에 대한 기본적인 이해와 차이를 정리.프로그램의 실행 흐름에서 두 개념이 어떻게 작동하는지 설명.Async and Concurrent Concepts in Programming비동기 및 병렬 처리에 대한 심화 학습 내용 정리.iOS 개발에서 async/await를 사용하는 방법과 적용 사례 설명.주요 교훈동기와 비동기, 병렬 처리를 개념적으로 명확히 이해하게 됨.TIL 작성 과정을 통해 iOS에서의 비동기 작업과 병렬 처리의 효율성을 재확인.목표와 방향성목표TIL 작성을 통해 학습 내용을 체계적으로 정리하고, 실제 개발에 적용 가능성을 높임.iOS 비동기 작업.. 2024. 12. 31. 24년 7월 회고(사후) 2024년 7월 리뷰결과물이직 준비 활동여러 기업에 지원하고, 실기 테스트 두 가지를 진행함:사진첩 앱 구현: 복잡한 콜렉션 뷰 구현 요구.알고리즘 테스트 (영어로 진행): 이전보다 쉬운 느낌이었으나, 언어 장벽으로 어려움이 있었음.주요 교훈콜렉션 뷰 구현:단순한 콜렉션 뷰가 아닌 복잡한 로직과 사용자 인터페이스를 포함한 콜렉션 뷰 구현에서 어려움을 느낌.이러한 구현을 원활히 하기 위해 더 많은 실습과 구조적 이해가 필요함.알고리즘 문제 풀이:알고리즘을 정확히 이해하고 구현하는 것보다 표면적으로 접근하는 경향을 확인.실전 중심의 알고리즘 연습과 언어 장벽 극복 필요성 인식.목표와 방향성목표이직 준비를 계속 이어가며 기술 테스트 대비.실행의 어려움육아와 병행하며 학습 및 준비 시간이 충분히 확보되지 않음... 2024. 12. 31. 24년 6월 회고(사후) 2024년 6월 리뷰목표6월 목표알고리즘 숙련을 위한 Swift 문법 강화아키텍처 패턴 숙련도 향상RxSwift 개념 재검토세부 계획프로그래머스 일일 과제를 통한 흥미 유발 및 필수 알고리즘 10가지 습득기본적인 알고리즘 개념 익히기Swift로 알고리즘 구현 연습문제 많이 풀어보기UIViewController를 MVC -> MVP로 변환하는 연습Unit Test 코드 작성 연습주요 활동알고리즘 테스트 준비프로그래머스의 일일 알고리즘 과제를 꾸준히 진행했으나, 벼락치기 방식으로 연습한 점이 한계로 작용.6월 4일 알고리즘 테스트에서 복잡한 입력값과 풀이 과정으로 인해 어려움을 경험.육아와 학습 병행육아로 인해 학습 시간을 확보하기 어려운 상황 발생.예상치 못한 변수들로 인해 목표 달성이 어려웠음.학습 시간.. 2024. 12. 31. 기본적인 자료구조(4) - 큐 (Queue) 큐(Queue)는 선입선출(FIFO: First In, First Out)의 원칙을 따르는 자료구조다.가장 먼저 들어온 데이터가 가장 먼저 나가며, 주로 대기열이나 리소스 관리 등에서 사용된다. 큐의 주요 특징선입선출(FIFO): 가장 먼저 들어온 요소가 가장 먼저 나감.동적 크기: 필요에 따라 요소를 추가하거나 삭제할 수 있음.제한적인 접근: 큐는 맨 앞과 맨 뒤에서만 요소를 추가하거나 제거할 수 있음. 주요 연산:enqueue: 큐의 끝에 요소를 추가.dequeue: 큐의 앞에서 요소를 제거하고 반환.peek: 큐의 맨 앞에 있는 요소를 제거하지 않고 확인.isEmpty: 큐가 비어있는지 확인. 시간 복잡도enqueue: O(1) – 큐의 끝에 요소를 추가.dequeue: O(1) – 큐의 앞에서 .. 2024. 10. 1. 기본적인 자료구조(3) - 스택(Stack) 스택(Stack)은 후입선출(LIFO: Last In, First Out) 원칙을 따르는 선형 자료구조다.스택은 데이터의 순서를 처리할 때 유용하며, 주로 재귀 호출, 백트래킹 등의 알고리즘에서 많이 사용된다. 스택의 주요 특징후입선출(LIFO): 마지막에 삽입된 요소가 가장 먼저 제거된다.동적 크기: 필요에 따라 요소를 추가하거나 삭제할 수 있다.제한적인 접근: 스택은 맨 위(top) 요소만 접근할 수 있다. 주요 연산:push: 요소를 스택의 맨 위에 추가.pop: 스택의 맨 위에 있는 요소를 제거하고 반환.peek: 스택의 맨 위에 있는 요소를 제거하지 않고 반환.isEmpty: 스택이 비어있는지 확인. 스택의 시간 복잡도push, pop, peek: 모두 O(1) 시간 복잡도를 가진다.스택의 맨 .. 2024. 10. 1. 기본적인 자료구조(2) - 연결 리스트(Linked List) 연결 리스트(Linked List)는 노드(Node)라는 개체들이 연결된 구조로 데이터를 저장하는 자료구조. 각 노드는 데이터와 다음 노드를 가리키는 참조(포인터)로 이루어져 있다. 배열과 달리, 연결 리스트는 동적 크기를 가지며, 요소 삽입/삭제 시 메모리 재할당이 필요 없다는 장점이 있다.연결 리스트의 주요 특징동적 크기: 배열과 달리 연결 리스트는 크기가 가변적으로, 필요에 따라 노드를 추가하거나 삭제할 수 있다.노드 기반 연결: 각 노드는 데이터와 다음 노드를 가리키는 포인터로 구성돼. 노드를 통해 연속된 데이터를 저장할 수 있다.순차 접근: 인덱스를 통해 바로 접근하는 배열과 달리, 연결 리스트는 순차적으로 노드를 탐색해야 한다. 시간 복잡도삽입/삭제: 특정 위치에 노드를 삽입하거나 삭제할 때는.. 2024. 10. 1. 기본적인 자료구조(1) - 배열(Array) 기본적인 자료구조 - 배열배열(Array)배열은 같은 데이터 타입의 값들을 순차적으로 저장하는 선형 자료구조다. 배열의 각 값은 인덱스를 통해 접근하며, 인덱스는 0부터 시작한다. 배열은 연속된 메모리 공간에 저장되므로, 빠른 접근 속도를 제공한다. 배열의 주요 특징인덱스 기반 접근: 배열은 인덱스를 사용해 각 요소에 O(1)의 시간 복잡도로 빠르게 접근한다.예: array[0]은 배열의 첫 번째 요소에 접근한다.고정된 크기: 배열은 선언 시 크기가 고정되며, 배열의 크기를 변경하려면 새로운 배열을 생성해야 한다. Swift에서는 동적 크기의 배열을 지원하지만, 일반적인 배열은 고정 크기다. 삽입/삭제의 시간 복잡도삽입/삭제: 배열의 중간에 요소를 삽입하거나 삭제할 경우, O(n)의 시간이 걸린다. 이는.. 2024. 9. 29. 동기와 비동기에 대한 개념 동기와 비동기에 대해 들어가기 전에 스레드에 대해 먼저 이야기해보자.스레드PC 사양 중에 4코어 8스레드, 8코어 16스레드 라는 식의 말을 들어본 적이 있을 것이다.스레드란 일을 하는 존재라고 생각해보자. 8스레드라면 일을 할 수 있는 존재가 8개, 16스레드라면 일을 할 수 있는 존재가 16개 라는 것이다.아이폰 11 Pro기준 6코어라면 일을 할 수 있는 스레드가 6개가 있다는 것이다.설명Thread1이 존재한다. 아래와 같은 작업이 Thread1에 순서대로 존재한다고 생각해보자.Task걸리는 시간Task14Task23Task32Task41 하나 하나의 작업을 보면 걸리는 시간이 다르다.근데 통상적으로 일은 Thread1에서 처리하게 된다. 그러면 과부하가 생긴다.이걸 분산시켜서 처리를 하는 것이 .. 2024. 8. 12. 이전 1 2 3 4 ··· 33 다음