본문 바로가기
TIL

241106 텍스트 필드, Git, 운영체제, 별 찍기

by 23g 2024. 11. 6.

0. 회고 및 개선점 📝

  • 느낀 점: Git아 ... 그런데 온 몸으로 맞짱 뜨다보니 조금씩 눈을 뜨는거 같기도...^_ㅠ
  • 잘한 점 : 출근 전 스터디 ㅜ 퇴근 후 빡공 ㅠ
  • 개선 점 : rebase, .ignore
  • 앞으로 : 깃이랑 싸워서 이긴 내용 정리해놓기~

1. 오늘 배운 내용 📘 (데일리 루틴)

swift 강의

강의명 : 텍스트필드와 델리게이트 패턴

  • 키워드: textField, Delegate 패턴
  • 개요:
    • 델리게이트패턴은 대리자 권한을 주는 것!
    • textField : 뷰컨트롤러와는 별개의 유저와 상호작용을 하는 역할!
      • 여러 기능들을 통해 유저의 동작을 다시 뷰컨에 전달
        예를 들면 입력값 제어, 허락 등등 ...
        Bool 값으로 리턴되는 것들은 허락의 의미!

1일 1커밋

📜 문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

⌨️ 입출력 예

✏️ 나의 코드

import Foundation

let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! }
let (a, b) = (n[0], n[1])

for i in 1...b{
    for j in 1...a{
        print("*", terminator : "")
    }
    print("")
}

📚 개선 코드

import Foundation

let input = readLine()!.split(separator: " ").map { Int($0)! }
let (a, b) = (input[0], input[1])

//✅ 한 줄에 a개의 별을 가진 문자열 생성
let row = String(repeating: "*", count: a)

//✅ b줄에 걸쳐 같은 문자열을 반복 출력
for _ in 0..<b {
    print(row)
}

 

 


cs 공부 

더보기

 

 

운영체제의 역할과 iOS에서의 운영체제 구조

  • 운영체제의 역할: 운영체제는 컴퓨터의 '매니저' 역할을 하는 소프트웨어라고 생각하면 됨. 이 매니저는 CPU(두뇌), 메모리(기억 공간), 저장소, 네트워크 등 모든 자원을 관리하고, 앱들이 이 자원을 효율적으로 사용하도록 함. 사용자가 앱을 실행할 때 매니저가 CPU와 메모리를 적절히 배분하여 앱이 충돌하지 않고 빠르게 실행될 수 있게 해줌.
  • iOS의 운영체제 구조: iOS는 4층 구조로 되어 있음. 각 층이 서로 다른 역할을 맡고 있음.
    • 코어 OS 계층: 하드웨어와 가장 가까운 층으로, 파일 저장과 같은 기초적인 시스템 관리 기능을 함.
    • 코어 서비스 계층: 데이터베이스나 네트워크 같은 기본 서비스를 제공하는 층.
    • 미디어 계층: 사진, 영상, 음악을 처리해주는 미디어 작업을 위한 층.
    • 코코아 터치 계층: 화면의 버튼, 스크롤 등 사용자 인터페이스(UI)를 구성하는 프레임워크가 있음. 이 층 덕분에 iOS 앱의 화면 구성을 쉽게 만들 수 있음.

프로세스와 스레드의 차이점, iOS에서의 프로세스와 스레드 관리

  • 프로세스: 프로세스는 컴퓨터에서 실행 중인 하나의 앱이라고 보면 됨. 예를 들어, 메모장 앱이 하나의 프로세스임. 앱마다 독립된 메모리 공간을 갖고 있으며, 각 앱은 서로 다른 공간에서 작동하기 때문에 안전하고 충돌이 적음.
  • 스레드: 스레드는 앱 내에서 여러 작업을 동시에 실행하는 단위임. 예를 들어, 인스타그램에서 사진을 보는 동시에 메시지를 주고받거나, 화면을 스크롤하는 작업이 각각 하나의 스레드임.
  • iOS의 프로세스와 스레드 관리:
    • iOS는 앱을 개별 프로세스로 관리하여 각 앱이 충돌하지 않게 보장함.
    • 또한, iOS에서는 Grand Central Dispatch(GCD)라는 기술로 여러 스레드를 쉽게 관리할 수 있음. 예를 들어, 백그라운드 작업(사진 다운로드, 영상 재생 등)은 GCD가 자동으로 처리하여 사용자 경험을 개선함.

iOS의 메모리 관리 기법과 특징

  • ARC (Automatic Reference Counting): iOS에서는 ARC를 통해 더 이상 사용되지 않는 객체를 자동으로 메모리에서 제거함.
    • 쉽게 말해, 쓰레기통을 비우는 가정부 역할을 한다고 보면 됨. ARC는 앱이 실행될 때마다 가정부처럼 객체들을 체크해서 필요 없는 객체는 지워주어 메모리 누수를 방지함.
    • 다만, 순환 참조가 생기면 ARC가 이를 해결하지 못해 메모리 누수가 발생할 수 있음. 이 문제를 막기 위해 개발자는 weak unowned 같은 키워드로 객체 참조를 끊어주어야 함.

4. iOS의 샌드박스(Sandbox) 개념과 역할, 앱 간 데이터 공유 방법

  • 샌드박스: 샌드박스는 각 앱을 서로 다른 방에 가둬 놓는 것이라고 보면 됨. 각 앱은 자기 방에서만 작동하고, 다른 방(앱)에는 접근할 수 없게 해서 보안을 강화함.
  • 앱 간 데이터 공유 방법:
    • 앱 그룹(App Group): 같은 방에서 작업하는 앱들은 데이터를 공유할 수 있음. 예를 들어, 같은 개발자가 만든 앱들(은행 앱과 카드 앱)이 특정 파일이나 사용자 정보를 공유할 수 있음.
    • Keychain Sharing: 매우 민감한 정보를 공유해야 할 때는 Keychain을 사용함. 예를 들어, ID나 비밀번호 같은 정보를 여러 앱이 공유할 때 Keychain을 통해 안전하게 관리함.

💬 야 미치겟다 카페 마감이다