Si Jong Tech Blog
close
프로필 배경
프로필 로고

Si Jong Tech Blog

  • 분류 전체보기 (253)
    • ◽️ Programming (253)
      • T I L (92)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
2024년도를 돌아보며

2024년도를 돌아보며

24년도에는 참 많은 일이 있었던 한해인 것 같다. 개발하겠다고 시작해서 지금 글을 쓰고 있는 12월 말까지 정말 열심히 살았던 것 같아 오랜만에 뿌듯한 한해다. 24년도에 내가 했던 목표와 그걸 얼마나 이뤘는지 그리고 25년도에는 어떤 목표를 가지고 성장해 나갈건지 한번 쭉 되짚어보자~! 2024년도에 들어서 개발을 하겠다고 마음먹은 뒤 나는 몇가지 목표를 세웠다. 첫번째. 적어도 1년은 아무리 힘들어도 포기하지 않고 끝까지 해보기두번째. 내가 해온걸 꾸준하게 기록으로 남겨두기세번째. 취업에 성공하기 크게보면 이렇게 세가지 목표가 있었다. 먼저 첫번째 목표는 지금 이 회고글을 쓰는 것과 같이 아무리 힘들고 벽이 느껴져도 포기하지 않고 끝까지 해왔다는 점이다. 나는 뭐든 초반 배움이 빠른 스타일이었다. ..

  • format_list_bulleted ◽️ Programming/회고
  • · 2024. 12. 30.
  • textsms
Deadlock에 대해서 알아보자!!

Deadlock에 대해서 알아보자!!

이번엔 두번째로 Deadlock 에 대해서 알아보자Deadlock?먼저 데드락이란 여러 스레드가 서로가 가진 리소스를 기다리면서 계속 실행이 중단되어있는 상태를 말한다. iOS 개발에서는 멀티스레드 환경에서 동기 작업을 수행하거나 서로 잠긴 리소스를 접근할 때 발생하곤 한다. Deadlock 예시예시를 통해서 살펴보자DispatchQueue 데드락import Foundationfunc deadlockExample() { let queue = DispatchQueue(label: "com.example.queue") queue.sync { print("Task started") queue.sync { // 여기서 데드락 발생 ..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 12. 13.
  • textsms
멀티 쓰레드 환경에서 Race Condition에 대해서 알아보자

멀티 쓰레드 환경에서 Race Condition에 대해서 알아보자

이번에 넥스터즈 면접 중 기술 면접을 진행하고 나서 내가 아직 많이 부족하다고 느낄 수 있었다.. Race Condition, Dead lock, Priority Inversion 등 멀티 스레드를 운용하면서 일어날 수 있는 문제점 등에 대해서 제대로 개념을 잡아두지 않아 답변에 어려움이 있었다.. 처음엔 조금 속상했지만 그래도 이런 경험을 통해 이러한 키워드, 개념들을 잡고 갈 수 있는 기회가 될 수 있으니까 모르면 배우면 되지~ 하는 마음으로 단계별로 개념을 정리해보도록 하자. 먼저 오늘은 멀티쓰레드 환경에서 Race Condition에 대해서 알아보도록 하자!Race Condition그래서 레이스 컨디션이 뭘까 도대체 경쟁 상태라고 해석할 수 있는 이 상태는 두개 이상의 쓰레드나 프로세스가 공유 자..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 12. 9.
  • textsms
클린아키텍처를 사용해 로그인 정보 저장 로직 구성 및 데이터 전달

클린아키텍처를 사용해 로그인 정보 저장 로직 구성 및 데이터 전달

챗봇 앱을 구현하면서 TCA를 활용해 아키텍처를 구성할까, 클린아키텍처를 활용해 구성할까 고민하다가 외부라이브러리를 사용하지 않고 클린아키텍처를 통해 제대로 한번 구현해보고 싶은 마음에 클린아키텍처를 활용해 프로젝트를 구성하기로 했다. 이전 블로그 글을 통해 클린아키텍처에 대해서 정리했지만 간단하게 다시 훑고 지나가 보자 클린아키텍처는 크기 Presentation, Domain, Data 로 계층을 나눈다. Presenstation은 UI와 사용자의 상호작용을 처리하는 역할을 담당하고 View와 ViewModel로 나뉜다. View는 사용자의 행동을 받아드려 ViewModel로 전달하게 되고 ViewModel은 사용자 이벤트를 처리하며 UseCase를 호출해 비즈니스 로직을 실행한다. Domain은 핵심..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 12. 5.
  • textsms
WKWebView를 사용해 웹페이지 가져오기

WKWebView를 사용해 웹페이지 가져오기

회사에서 웹뷰를 활용한 챗봇을 만드는 프로젝트가 시작해 Swift에서 웹뷰를 사용하는 방식에 대해서 기록으로 남겨두려고 한다. 요즘 많은 프로젝트에서 웹뷰를 활용한 개발이 많이 이뤄지고 있는데 사실 제대로된 웹뷰를 사용해보지 않아 이번 기회에 공부해보려고 한다.iOS에서 웹뷰를 사용하기 위해서는 주로 WKWebView를 사용한다. 하지만 나는 SwiftUI로 개발을 진행하고 있기 때문에 이 SwiftUI에서는 WKWebView를 사용할 수 없어 UIViewRepresentable를 활용해 UIKit에서 가져와 사용하는 방식으로 구현하려고 한다. UIViewRepresentable 사용UIViewRepresentable은 UIKit의 뷰를 SwiftUI에서 사용할 수 있도록 해주는 프로토콜이다. WKWeb..

  • format_list_bulleted ◽️ Programming/iOS
  • · 2024. 12. 2.
  • textsms
Let’s Swift 2024 방문 후기 🙂

Let’s Swift 2024 방문 후기 🙂

11월 25일 월요일 날 세종대학교에서 열린 2024 Let’s Swift에 다녀왔다 첫 컨퍼런스 참여라 많은 기대를 하고 방문하게 되었는데 회사에서 티켓도 사주고 연차도 지원해줘서 아주 나이스.. 덕분에 좋은 경험했다!날씨도 너무 좋고 세종대학교 처음 가봤는데 캠퍼스가 너무 이쁘다.. 대학 졸업한지 한참 지난 다음 대학교에 다시 오니 젊은이들 학교 다니는 모습들에 참 가슴이 몽골몽골해지기도 한 것 같다. 9시 30분부터 입장이 가능했고 나는 9시 30분에 시작으로 착각해 8시 50분에 도착해버렸다.. 조금 더 잘 수 있었는데..처음 도착하면 입장권을 확인하고 앱을 설치하면 스탬프를 받을 수 있었다. 앱을 설치하고 그 안에 시간표랑 여러가지 확인도 할 수 있어서 간편하게 사용하기 위해 미리 다운을 받았다..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 11. 26.
  • textsms
SwiftUI TCA - Dependency, Reducer, Effect에 대해서 알아보자!!

SwiftUI TCA - Dependency, Reducer, Effect에 대해서 알아보자!!

Dependency (의존성)우리가 통상 개발하는 앱은 카운터 앱에 자동 카운트 기능을 넣고 싶을수도 있고, 이보다 더 복잡하고 많은 네트워크 코드가 들어가는 상황이 생긴다. 그럴때 Reducer 안에서 이러한 의존성을 가리키는 Dependency가 생기는 경우는 어떻게 처리해야할 지 알아보자. 예를 들어 카운터 앱에 자동 카운트 기능을 넣기 위해 Timer가 필요하게 된다. 이럴 땐 TCA에서 기본적으로 지원하는 Timer의 Dependency를 사용할 수 있다.@Dependency(\.continuousClock) var clock또한, API를 포함해 네트워크 코드들은 통신하는 Client와 의존성이 생기게 된다. 이때 Timer보다 더 복잡한 과정이 필요하지만 이 내용은 추후에 제대로 다시 설명해..

  • format_list_bulleted ◽️ Programming/TCA
  • · 2024. 11. 21.
  • textsms
SwiftUI에서 Charts를 구현해보자

SwiftUI에서 Charts를 구현해보자

오늘은 SwiftUI에서 Charts 사용에 대해서 글을 남기려고 한다. 먼저 SwiftUI에서 Charts는 Swift 4.0에서 새롭게 나온 API로 데이터를 넣으면 손 쉽게 그 데이터를 시각화 할 수 있도록 차트를 만들어주는 아주 편리한 기능이다. Charts는 iOS 16 버전 이상에만 지원이 되고 해당 차트를 사용하기 위해서는 Xcode 14버전 이상을 사용해야 한다.공식 문서를 통해 더 자세하게 알아보자!https://developer.apple.com/documentation/charts/ Swift Charts | Apple Developer DocumentationConstruct and customize charts on every Apple platform.developer.apple..

  • format_list_bulleted ◽️ Programming/SwiftUI
  • · 2024. 11. 18.
  • textsms
Custom Calendar 구현과 ViewBuilder에 대해서

Custom Calendar 구현과 ViewBuilder에 대해서

오늘은 지금까지 수집한 데이터를 바탕으로 데이터 수집량에 관한 진행상황을 알 수 있는 주간 캘린더와 데이터를 시각화해 이해를 도울 수 있는 작업을 진행하였다. 먼저 캘린더 구현된 내용을 살펴보면 날짜를 1주일 단위로 보여주고 그 밑에 일자별로 데이터 수집량을 확인할 수 있도록 구현하였다.컴포넌트화 하기 위해 수집량을 파악하는 Progress 뷰와 캘린더뷰를 별도로 구분했다. CalendarView먼저 캘린더뷰를 살펴보자import SwiftUIstruct CalendarView: View { @State private var selectedDate = Date() @State private var showMonthPicker = false private let calendar = Cale..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 11. 13.
  • textsms
iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (4)

iOS Swift의 자료 구조, 알고리즘에 대해서 알아보자 (4)

Stacks이번에는 기초 자료구조 중에서도 어디에서도 사용되고 있는 개념인 스택에 대해서 알아보도록하자.스택은 예시를 들어보면 사진과 같이 팬케익이 쌓여있는 느낌으로 볼 수 있다. Stack의 자료구조는 개념적으로 객체의 물리적 스택과 동일하다. 어떤 항목을 스택에 넣으면 스택의 맨 위에 놓이게 되고 스택의 어떤 항목을 제거한다면 항상 가장 위에 있는 항목이 제거된다. 스택은 두가지 필수 작업이 존재한다.Push : 스택의 최상단에 요소 추가Pop : 스택의 최상단 요소를 제거인터페이스를 이 두가지 작업으로 제한하는 것은 자료구조의 한 방향에서만 추가하거나 제거할 수 있다는 것이다. CS에서 스택은 LIFO(후입선출) 자료구조로 알려져 있다. 가장 마지막에 Push된 요소가 가장 먼저 Pop되어 나가지게..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 11. 11.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ···
  • 26
  • navigate_next
프로필 로고

Si Jong Tech Blog

전체 카테고리
  • 분류 전체보기 (253)
    • ◽️ Programming (253)
      • T I L (92)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
최근 글
인기 글
최근 댓글
태그
  • #MVC
  • #uikit
  • #IOS
  • #tableView
  • #project
  • #알고리즘
  • #티스토리챌린지
  • #swift
  • #TIL
  • #오블완
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바