Swift로 코드 최적화하기
·
🖥️ Computer Science/Algorithm
백준/프로그래머스 풀다보면서 얻은 Swift 꿀팁 정리(다른 언어도 포함일 수도 ㅇㅇ) 1. 입력 받을 때 map { Int($0)! } 보다는 map { Int(String($0))! }이 더 빠르다.let input = readLine()!.split(separator: " ").map { Int($0)! }vslet input = readLine()!.split(separator: " ").map { Int(String(($0))! }2. 함수 단위로 코드를 실행하면 컴파일러 최적화 측면에서 더 효율적이다.func solve() -> Int { var N = Int(readLine()!)! var crane = readLine()!.split(separator: " ").map { Int..
[Xcode] 협업 간 pbxproj 충돌 방지하기
·
📱 iOS/Xcode
학습 목표깃허브 협업 간 pbxproj 파일에 대한 충돌 해결학습 내용pbxproj 파일이란 ?Build Setting(실제 프로젝트의 설정)을 담은 파일프로젝트 내부에서 생성된 파일들을 파일 유형에 따라 reference를 저장하고 있다.pbxproj에 대한 충돌은 위 설정 파일에 대한 reference가 없을 때 발생pbxproj 충돌 해결방법pbxproj 파일을 binary 파일로 취급하게 해야 함프로젝트 최상위 폴더(README.md가 있는 곳)에서 .gitattributes 파일을 만들고 설정해당 코드를 추가*.pbxproj binary merge=union배운 점최상위 폴더에 .gitattributes를 추가하면 해결 가능하다고 하니미리 설정해두는게 좋을 거 같습니당참조 링크[git] Xcod..
[RL] MDP를 알 때 플래닝
·
🎸 기타/Reinforcement Learning
MDP를 알 때 플래닝[RL] MDP를 알 때의 플래닝바닥부터 배우는 강화 학습 | 04. MDP를 알 때의 플래닝그리드 월드 MDP 상황을 예로정책 𝜋가 주어졌을 때, 각 상태의 밸류를 평가하는 Prediction과최적의 정책 함수를 찾는 Control 문제 푸는 방법을 배운다.플래닝 = MDP에 대한 모든 정보를 알 때, 정책 개선 과정본 목차의 내용을 적용하려면- 작은 문제 (상태 집합 S, 액션 집합 A의 크기가 작은 경우)- MDP를 알 때두 가지의 조건을 만족하는 상황일 때만 가능작은 문제이므로 *(테이블 기반 방법론)에 기반함*테이블 기반 방법론: 모든 상태 s 혹은 상태와 액션의 페어 (s,a)에 대한테이블을 만들어 값을 기록해놓고, 그 값을 조금씩 업데이트하는 방식밸류 평가하기 - 반복..
[Swift] final을 사용해야 하는 이유 with Dispatch
·
📱 iOS/Swift
학습 목표Dispatch에 대해 알아보기Static Dispatch & Dynamic Dispatch 차이Reference Type | Value Type | Protocol에서의 Dispatch 동작Extension 했을 때의 Dispatch 동작학습 내용본 주제에 대한 개요🧑🏻‍💻 프로젝트에서 final 키워드를 모든 class에 다 붙여 두셨는데 이유가 있나요?🧑🏻‍💼 더이상의 상속을 하지 않겠다는 의미로 final 키워드를 모두 붙여주었습니다!🧑🏻‍💻 그렇다면 final 키워드를 사용함으로써 상속을 막는것 이외에 다른 장점은 무엇이 있을까요?🧑🏻‍💼 ?출처: https://itllbegone.tistory.com/10Dispatch에 대한 개념을 알아야 final을 써야 하는..
[RL] 벨만 방정식
·
🎸 기타/Reinforcement Learning
Bellman Equation(벨만 방정식)이란?반환값과 상태가치함수 리뷰반환값- 타입스텝 t에서 계산한 누적 보상의 합계- 에피소드 하나에 대한 가치를 측정상태 가치 함수- 환경 전체에 대한 가치를 측정- 상태 전이 확률을 같이 고려함MRP 벨만 방정식강화학습에서 프로그래밍으로 가치를 구하기 위해 '벨만 방정식'을 많이 사용수학자 리처드 어니스트 벨만의 이름을 땄음일반적으로 기댓값을 시그마 기호를 사용한 수열의 합으로 표현현재 상태의 가치함수와 다음 상태의 가치함수 관계로 나타냄수식 1 = 개념적인 상태 가치 함수수식 2 = 상수는 기댓값에서 의미 X, 정리함수식 3 = 기댓값을 수열의 합과 다음 상태에서의 상태 가치 함수로 나타낸 것MDP 벨만 기대 방정식0단계벨만 기대 방정식: 현재 상태의 가치 함..
[디버깅 회고] 네트워크 통신 공부 중 발생한 보라색 에러
·
📱 iOS/Xcode
App Transport Security has blocked a cleartext HTTP connection to (대충 서버주소) since it is insecure. Use HTTPS instead or add this domain to Exception Domains in your Info.plist.위와 같은 에러가 발생했다. 내가 설정해둔 baseURL의 서버 도메인이 HTTPS가 아닌 HTTP였기 때문에 발생한 오류였다.보라색 에러가 뜰 때마다 놀라곤 하는데, 애플에서는 HTTP를 사용을 금하고 있다. (보안이 문제니까 ㅇㅇ) Info.plist에서 'Allow Arbitrary Loads - YES'로 해주면 된다. 애플은 2018년 이후로 HTTP 연결 대신 HTTPS를 통한 보안 연..
[CN] 2장: CDNs
·
🖥️ Computer Science/Computer Network
CDNsStreaming stored video: Client Buffer서버가 비디오를 보내면, 유저는 다음과 같이 보면 됨근데, 클라이언트-서버 간 대역폭은 네트워크 혼잡이 발생가능즉, 클라이언트 측의 버퍼가 필요함클라이언트 측 버퍼링 및 재생 지연을 위해네트워크 추가적인 지연과 지연 변이를 보상DASH 프로토콜비디오 품질이 좋을수록 더 높은 대역폭이 필요해서 만든 프로토콜클라이언트클라이언트-서버 간의 대역폭을 주기적으로 측정매니페스트 파일을 참조하여,비디오 조각을 요청함대역폭 상황에 따라 최대 품질 버전의 청크를 선택함서버비디오 파일을 여러 조각으로 분할각 조각은 여러 품질 버전으로 인코딩HD, FHD, 4K ..여러 품질 버전의 비디오 조각은 여러 서버에 저장됨매니페스트 파일: 여러 품질 버전의 ..
[CN] 2장: Peer-To-Peer Applications
·
🖥️ Computer Science/Computer Network
Peer-To-Peer ApplicationsP2P 개요클라이언트가 송신, 제공 다 하는 역할 → 자기 확장성항상 동작하지 않고, 피어의 IP 주소는 바뀔 수 있음파일 분배: 클라이언트-서버 vs P2P한 서버에서 F크기의 파일을 N개의 피어로 배포하는데 걸리는 시간?클라이언트-서버: N이 증가함에 따라 선형적으로 시간 증가→ 서버가 N명한테 다 주는 방식서버 전송파일 1개: F/u파일 N개: N*F/u클라이언트최소분배시간: F/d(min)d(min) = 다운 로드가 가장 느린 클라이언트의 속도P2P: N이 증가해도, u(i)도 증가해서 효율적임서버 전송반드시 1개 파일,F/u 시간 걸림클라이언트최소분배시간: F/d(min)P2P 파일 분배: BitTorrent토렌트: 특정 파일 분배에 참여하는 피어의 ..
[CN] 2장: The Domain Name System, DNS
·
🖥️ Computer Science/Computer Network
The Domain Name System, DNSDNS 개요1IP Address일반적인 IP 주소(IPv4)는 32비트,0~255 사이의 4개 숫자로 표시 됨IP 주소는 기억하기 어렵지만,google.com과 같은 호스트 이름은 기억하기 쉬움DNS (Domain Name System)DNS 서버들의 계층 구조로 구현된 분산 데이터베이스애플리케이션 계층 프로토콜로 구현된 핵심 인터넷 기능호스트가 분산 DB로 질의 허용UDP 상에서 수행되고, 포트번호는 53번사용자가 웹 서버의 호스트 이름을 입력하여, 웹 서버의 IP 주소를 얻는 절차유저 컴퓨터에 DNS 클라이언트가 계속 돌고있음URL로부터 호스트 이름을 DNS 클라이언트에 보냄DNS 클라이언트가 DNS 서버에 호스트 이름을 포함한 쿼리 보냄DNS 클라이언..
iOS 네트워크 통신 (1/3) - 개요 (URLSession, Alamofire, Moya)
·
📱 iOS/UIKit
학습 목표이번 시간에는 iOS에서 사용되는 네트워크 통신의 수박 겉핥기 개요서버와 통신할 때 사용되는 URLSession, Alamofire 각 특징 알기URLSession과 Alamofire 차이 알기Moya 특징/동작 알기학습 내용URLSession과 AlamofireURLSessionAn object that coordinates a group of related, network data transfer tasks.네트워크 데이터 전송과 관련한 일을 처리하는 클래스애플이 제공하는 APIURL Loading System표준 IP 혹은 유저가 만든 커스텀 프로토콜을 사용하여URLs에 의해 구분되는 자원을 접근하게 함→ 비동기적으로 진행되므로 통제해줘야 하는데 이를 URL Session이 해줌하나의 UR..
kyxxn
'2024/05 글 목록