본문 바로가기
TIL

241125 TIL | 코드로 UI 짜기, 네트워크 프로토콜 스택

by 23g 2024. 11. 25.

눈물난다 엄청 열심히 쓴 나의 글,,,날라갔다,,,,,크롬아 너 죽을래 ㅠㅠㅠ

 

0. 회고 및 개선점 📝

  • 느낀 점: 글 저장을 잘 하자
  • 잘한 점 : 어제 극한의 스케쥴 후 오늘 출근한 것이 기적, 그러나 스터디까지 하고 있는 나를 칭찬합니다.
  • 개선 점 : 남는 시간에 잔디 심기
  • 앞으로 : 위의 개선 점을 잘 지키자, 생각을 더 확장시키자

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

swift 강의

강의명 : 코드로 UI 짜기

  • 키워드: 코드로 UI 짜기
  • 개요: 


1일 1커밋

📜 문제 설명

괄호 짝 맞춰서 맞으면 true 안맞으면 false

⌨️ 입출력 예

"()()" true

✏️ 나의 코드

import Foundation

func solution(_ s:String) -> Bool
{
    var arr = s.map { $0 == "(" ? 1 : -1}
    var sum = 0
    
    for i in arr{
        sum += Int(i)
        if sum == -1{
            return false
        }else if sum == 0{ 
            return true    ❌ sum이 0이 되는 순간 true가 되기 때문에 안됨
        }
    }
    
    return false
}

 

📚 개선 코드

func solution(_ s: String) -> Bool {
    var count = 0
    for char in s {
        count += (char == "(" ? 1 : -1)
        
        //✅ count가 음수가 되면, ")"가 "("보다 먼저 나온 경우이므로 false 반환
        if count < 0 {
            return false
        }
    }
    
    //✅ 모든 괄호를 다 확인한 후 count가 0이면 true, 그렇지 않으면 false 반환
    return count == 0
}

작은 차이로도 완전 다른 코드, 다른 결과가 나온다.

정확하게 생각하기!!!


cs 공부

질문 : 네트워크 프로토콜 스택과 iOS에서의 네트워크 통신 방식에 대해 설명해주세요.

 

답변 :

더보기

네트워크 프로토콜 스택이란? 🚦

네트워크 프로토콜 스택은 인터넷에 연결될 때 거치는 단계별 규칙 같은 것임. 계층이 쌓여있는 형태라서 "스택"이라고 부름. 데이터를 잘 보내고 받도록 단계별로 하는 일이 다름!

예시: 택배가 집으로 오는 과정 📦

  1. 응용 계층 (Application Layer)
    택배를 주문하는 단계! 인터넷으로 요청을 보내는 역할을 함. 우리가 자주 쓰는 HTTP나 FTP 같은 게 여기에 해당.
  2. 전송 계층 (Transport Layer)
    택배의 안전을 책임지는 단계! TCP는 신뢰성 있게 보내고, UDP는 속도가 빠른 대신 조금 더 간단하게 보냄.
  3. 네트워크 계층 (Network Layer)
    택배 주소를 찾는 단계! IP 주소로 데이터를 어디로 보낼지 찾아내는 역할.
  4. 링크 계층 (Link Layer)
    택배가 출발해서 실제로 이동하는 단계! 이더넷, 와이파이 등이 데이터를 실제로 이동시키는 역할을 함.

iOS에서 네트워크 통신 방식 📲

iOS에서는 서버랑 대화하거나 데이터를 주고받기 위해 여러 가지 도구를 제공함.

  1. URLSession
    • iOS의 기본 네트워크 도구로, 인터넷에 요청을 보내고 응답을 받음.
    • 예를 들어, 뉴스 앱에서 최신 뉴스 목록을 불러오는 일을 맡음.
  2. Alamofire
    • URLSession을 더 쉽게 쓰도록 만들어진 라이브러리.
    • 큰 프로젝트에서는 이걸 많이 쓰는데, 마치 택배를 자동으로 주문하고 추적해주는 서비스 같은 것.
  3. WebSocket
    • 채팅이나 게임처럼 서버랑 실시간으로 대화가 필요할 때 사용됨.
    • 서버랑 계속 연결된 상태라 빠르게 대화할 수 있음!
  4. Combine과 Async/Await
    • 네트워크 작업을 편하게 하는 최신 도구들임.
    • async/await 덕분에 비동기 작업도 순차적으로 진행하는 것처럼 코드 작성이 가능해서 깔끔하게 짤 수 있음.

요약 🎉

  • 네트워크 프로토콜 스택은 인터넷에서 데이터를 주고받기 위한 규칙이고, 계층별로 역할이 다름.
  • iOS에서는 URLSession이나 Alamofire로 서버랑 쉽게 대화할 수 있음.
  • 실시간 데이터가 필요하면 WebSocket을 쓰고, 최신 비동기 도구인 Combine과 async/await도 활용할 수 있음.

iOS는 이런 여러 도구들을 통해 네트워크 연결을 쉽게 처리하도록 도와줌! 📡


💬

미친다 마감이라 쫓겨남 ㅂㅂ ㅠㅠ