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

Si Jong Tech Blog

  • 분류 전체보기 (254)
    • ◽️ Programming (254)
      • T I L (93)
      • Swift 문법 (23)
      • UIKit (18)
      • SwiftUI (13)
      • TCA (7)
      • RxSwift (7)
      • iOS (44)
      • 회고 (5)
      • ◽️ Algorithm (32)
      • ◽️ Computer Science (12)
  • 홈
  • 태그
  • 방명록
ToDoList 만들기 (5) 캘린더 추가

ToDoList 만들기 (5) 캘린더 추가

2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) 2024.03.25 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (3) 2024.03.27 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (4) ToDoList 만들기 (5) 캘린더 추가 오늘은 과제에서 요구하는 필수 구현요소를 다 구현한 뒤 마감전까지 완성할 수 있는 기능을 하나 넣는 정도로 마무리 하였다! 그것은 바로 어제 탭바만 추가한 캘린더를 추가한 것이었다. 원래 더 많은 기능을 구현하고 싶었지만 일단 제출을 해야하므로 과제와는 별개로..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 28.
  • textsms
하드웨어 (CS 50 강의)

하드웨어 (CS 50 강의)

하드웨어 하드웨어는 컴퓨터를 물리적으로 구성하는 요소이며, 컴퓨터에 연결되어 추가적인 기능을 수행한다고 합니다. 하드웨어는 다양한 형태와 구성 요소가 있고 소비자들은 다양한 하드웨어의 기능과 차이점을 잘 알수록 필요한 하드웨어를 추가할 수 있을 것이기 때문에 이 강의에 시작인 것 같습니다. 컴퓨터 내의 하드웨어 컴퓨터의 하드웨어는 크게 중앙처리장치, 기억장치, 입출력 장치로 구성되어 있습니다. 중앙처리장치(CPU) 는 프로세서 라고 불리기도 하는데, 입력장치에서 받은 명령을 실제로 처리 합니다. CPU가 1초에 얼마나 많은 연산을 할 수 있는지 속도를 측정하는 단위는 기가 헤르츠(GHz) 입니다. 기억장치는 입력된 명령이나 데이터가 저장되는 공간으로, 주기억장치와 보조기억장치로 나눠집니다. 주기억 장치에..

  • format_list_bulleted ◽️ Programming/◽️ Computer Science
  • · 2024. 3. 27.
  • textsms
ToDoList 앱 만들기 (4)

ToDoList 앱 만들기 (4)

2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) 2024.03.25 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (3) ToDoList 앱 만들기 (4) 오늘은 지금까지 해결하지 못하던 문제들을 한번에 해결하는 날이었다. 분명히 구현이 되어야 하는 기능인데 왜 되지 않을까 고민에 빠졌었지만 한가지 실마리가 해결되니 줄줄이 해결 되는 날이었달까.. 오늘은 내가 해결한 내용을 위주로 글을 써볼까 한다. 내가 가지고 있던 문제 새로운 할 일을 추가하면 새로 등록되는 newTodo 의 레이블 값 즉 할일을 적는 부분이 완료 버..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 27.
  • textsms
Delegate Pattern 왜 사용하는 걸까?

Delegate Pattern 왜 사용하는 걸까?

Delegate Pattern 왜 사용하는 걸까? 과제나 강의를 들어도 꼭 나오는 델리게이트 패턴은 정말 많이 쓰이는 것 같지만 정작 왜 사용하는지 모르고 사용하는 것 같은 느낌이 들어 개념을 한번 잡아보려고 한다. Delegate Pattern 이란 객체가 자신의 책임을 다른 객체에게 위임하는 디자인 패턴 테이블뷰는 셀을 탭했을 때 어떤 행동을 할지에 대한 책임을 뷰컨트롤러에게 UITableViewDelegate 를 사용하여 위임한다. 테이블 뷰 외에도 콜렉션뷰 , 텍스트필드 등 많은 UI 요소들이 델리게이트 패턴을 사용해 다른 객체에게 책임을 위임하고 있다. 왜 위임을 하는 걸까? UI요소에서의 Delegate Pattern 셀을 탭하면 테이블 뷰는 탭 이벤트를 받는다. 테이블뷰가 탭 이벤트를 받으면..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 26.
  • textsms
ToDoList 앱 만들기 (3)

ToDoList 앱 만들기 (3)

2024.03.19 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (1) 2024.03.21 - [◽️ Programming/T I L] - ToDoList 앱 만들기 (2) ToDoList 만들기 (3) 오늘은 새로 배운 MVC 패턴, 클래스 간 데이터 이동 등 강의를 통해 배운 내용을 이번 과제에 한번 녹여내보고 싶어 원래 만들었던 ToDoList 를 버리고 새로 다시 만들었다. 다시 만들면서 취소선 만들기 부분이 생각보다 이해가 되지 않는 부분이 있어 다른 분의 블로그를 참고하여 새로 공부를 다시 했다. 취소선 구현 먼저 원래 사용했던 UISwitch 를 토글하여 true/false 를 구한 후 이 값을 활용하여 사용하는 법보다 UIButton 을 사용하여 select..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 25.
  • textsms
문자열 다루기 기본

문자열 다루기 기본

문제 설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. func solution(_ s:String) -> Bool { guard s.count == 4 || s.count == 6 else { return false } for char in s { if !char.isNumber { return false } } return true } 먼저 문자의 길이가 4 혹은 6인 경우의 수를 guard 문을 통해 조건을 만들어 준다 guard s.count == 4 || s.count == 6 else { return false } 문자의 길이 수가 4..

  • format_list_bulleted ◽️ Programming/◽️ Algorithm
  • · 2024. 3. 25.
  • textsms
MVC 패턴 적용하여 테이블 뷰 구성하기

MVC 패턴 적용하여 테이블 뷰 구성하기

MVC 패턴 적용하여 테이블 뷰 구성하기 지난번 MVC 패턴의 기본 개념정도만 정리하는데 그친 반면에 오늘은 이 패턴을 직접 적용시켜 간단한 테이블 뷰를 만들어 보려고 한다. Swift Architecture , MVC 개념 정리 아키텍처(Architectuer) 애플리케이션을 설계하고 구축하는데 사용되는 구조와 패턴을 나타낸다. 모델의 구성과 동작 원리, 구성요소 간의 관계 및 시스템 외부 환경과 관계 등 포괄하여 설명하는 dongdida.tistory.com 먼저 MVC 패턴을 다시 한번 간단하게 말해보면 소스 코드 설계 기법으로써, 모델(Model) , 뷰(View), 컨트롤러(Controller) 의 핵심구조를 이용하여 애플리케이션을 설계하는 것을 말한다. 모델(Model)은 데이터를 담당하고 뷰..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 22.
  • textsms
부족한 금액 계산하기

부족한 금액 계산하기

문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. func solution(_ price:Int, _ money:Int, _ count:Int) -> Int64{ var sum = 0 for i in stride(from: price, through: price * coun..

  • format_list_bulleted ◽️ Programming/◽️ Algorithm
  • · 2024. 3. 22.
  • textsms
App 화면 이동 및 데이터 전달 4가지 방법

App 화면 이동 및 데이터 전달 4가지 방법

앱의 화면 이동 , 데이터 전달 방법 코드베이스 컴포넌트, 코드로 화면 이동 코드베이스로 컴포넌트 생성 및 오토레이아웃 잡은 경우, 먼저 새로운 FirstViewController 를 생성하여 코드베이스로 레이블, 버튼 등 구성했을 경우 하단에 내용과 같이 코드를 구성할 수 있다. UILabel 과 UIButton 을 담아 줄 변수를 선언하여 레이블을 만들어준다. 이 변수 안에 레이블의 오토레이아웃, 셋업 등 화면에 구성될 수 있도록 만들어준다. class FirstViewController: UIViewController { let mainLabel = UILabel() // 따로 적지 않고 변수에 바로 클로저를 선언하여 보다 간편하고 깔끔하게 버튼을 만들어 줄 수 있다. lazy var backBut..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 21.
  • textsms
IBOutlet 임의로 변수명 변경으로 인한 오류

IBOutlet 임의로 변수명 변경으로 인한 오류

오늘은 아무리 해도 분명히 이게 맞는데 정말 이상하게 계속 오류가 나 미치도록 답답한 순간이 있었다.고민고민하다가 튜터님을 찾아가 해답을 얻는데는 1분이 걸리지 않아 정말 어이없었지만짚고 넘어가야 똑같은 실수를 하지 않을 것 같아 기록해두려고 한다.먼저 스토리보드를 통해 우리는 레이블을 생성하여 해당 레이블을 뷰컨트롤과 연결하기 위해 IBOutlet 을 사용하여 Name을 설정한 후 이 명칭을 통해 해당 아울렛을 불러오는 일이 아주 잦다.이런식으로 생성된 mainLabel이 있다고 가정했을때 내가 임의로 저 명칭을 subLabel 이라고 수정한다면이전에 연결되어있던 레이블과는 연결이 되지 않는다. 오늘 내가 저 명칭을 임의로 바꾼것도 잊은채 원하는 기능이 구현되지 않아 정말 어려운 순간이 있었다.꼭꼭 저..

  • format_list_bulleted ◽️ Programming/T I L
  • · 2024. 3. 21.
  • textsms
  • navigate_before
  • 1
  • ···
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • ···
  • 26
  • navigate_next
프로필 로고

Si Jong Tech Blog

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

티스토리툴바