본문 바로가기

전체 글

(37)
강화학습(2) 개요이번 학기에 수업을 들으면서, 우연히 강화학습에 대해 공부할 기회가 생겼는데 이 글은 강화학습에 대해 정리한 두 번째 글이다이번 글에서는 게임환경에서의 강화학습에서 사용되는 Q-Learning을 이해하기 위해, 우선 수학적 기반들에 대해 알아본다 마르코프 결정 과정상태 가치 함수와 행동 가치 함수최적 행동 가치 함수 마르코프 결정 과정(Markov Decision Process, MDP)마르코프 결정 과정(Markov Decision Process, MDP)는 연속적인 상태와 행동을 통해 에이전트가 최적의 정책을 찾아 최대의 누적 보상을 얻도록 의사 결정을 모델링하는 수학적 프레임워크다구성요소아래와 같은 그림을 기반으로 MDP의 구성요소들을 설명해보면 다음과 같다상태 집합 S상태의 유한집합으로, 그림..
강화학습(1) 개요이번 학기에 수업을 들으면서, 우연히 강화학습에 대해 공부할 기회가 생겼는데 이 글은 강화학습에 대해 정리한 글이다특히 게임환경에서의 강화학습 관련해서 중점적으로 정리하며, 앞으로 몇 주간에 걸쳐서 글을 이어갈 예정이다 또한 최종적으로 직접 만든 게임을 Gymnasium으로 강화학습 환경으로 배포하는 것을 목표로 하고 있다우선은 이번 글에서는 다음과 같은 내용을 정리한다 강화학습이란?강화학습 분류Q-Learning 강화학습이란? 강화 학습은 에이전트(agent)가 환경(environment)에서 행동(action)을 선택하고,관측(observation)을 통해 그 행동의 결과로 얻은 보상(reward)을 바탕으로 점진적으로 학습하여,상태(state)에 따라 행동을 선택하는 최적의 정책(policy)을..
Linux cheatsheet 개요이 글은 리눅스에서 자주 사용되는 기능들과 핵심이 개념에 대해 간략하게 정리한 글이다개인적으로 리눅스를 이용한 작업 경험을 하면서 이젠 익숙한 것들보단, 항상 쓰려고 하면 잘 기억이 안 나서 찾아보고 사용한 유용했던 기능들을 우선적으로 정리하려 했다 앞으로 글은 아래와 같이 카테고리로 나눠서 진행한다 파일파일시스템(+inode)과 마운트 셸프로세스부팅네트워크로그 파일리눅스는 모든 것이 파일이라는 철학을 바탕으로 설계되었다파일 개념파일은 물리적 저장 매체와 관계없이 데이터의 "추상화"된 표현이자디바이스, 프로세스, 네트워크 연결 등 모든 것의 표현을 파일로 "통일"했으며각 파일은 속성과 권한(소유자, 그룹, 접근 권한 등)을 포함한 "메타데이터"를 가진다파일 종류일반 파일텍스트, 이미지, 오디오 파일 ..
Xcode Cloud와 Sparkle framework 개요이 글은 Xcode Cloud를 통해 간편하게 CI/CD를 수행하고, Sparkle을 통해 앱에서 간편하게 업데이트 구현하는 법에 대해 정리한다 Sparkle을 이용한다면 앱에 조금의 코드 추가로 앱에서 설정한 URL을 통해 appcast.xml을 얻어 업데이트를 수행할 수 있다 앞으로 우선 Xcode Cloud에 대해 잠깐 정리하고, Sparkle을 통한 업데이트 구현을 위해 알아야 할 내용들을 간단하게 이해하고, 이후 앱 부분에서 좀 더 자세한 내용들에 대해 알아본다  Xcode CloudSparkle Framework앱 설정과 구현 Xcode CloudXcode Cloud는 클라우드에서 앱 빌드, 테스트 등의 서비스를 제공한다 Xcode Cloud 설정에서 깃헙 레포지터리를 등록하면, 해당 브랜..
Objective-C 개요이 글은 Objective-C에 대해 공부하며 메모한 글이다 모든 내용을 자세하게 정리하지 않았지만, 기본적으로 C를 알고있는 상태에서 Objective-C에 대해 배울 때, 해당 언어만 독특하게 가지고 있는 요소들을 중심적으로 정리했다 Objective-C와 SwiftMethod와 FunctionStructClassCategory와 ExtensionProtocolBlockError handling Objective-C와 SwiftApple은 2014년에 Swift를 도입했지만, 많은 기존 프로젝트와 라이브러리가 Objective-C로 작성되어 있었기 때문에 두 언어 간의 원활한 상호 작용이 필수적이었다이를 위해 Apple은 다음과 같은 상호 운용성(interoperability) 메커니즘을 구현했다..
WidgetKit 개요 이 글은 WidgetKit에 대해 정리한 글이다참고로 위젯은 기본적으로 인터렉션이 불가능하나, AppIntent를 이용하면 가능하다(SwiftUI Button은 action 대신 intent 인자도 가진다!)AppIntent를 이용한 인터렉티브한 위젯에 대해서는 다음 기회에 알아보고 우선 App Group과 WidgetKit 구성요소들을 알아본다이 글에서 핵심 키워드들은 다음과 같다 App GroupWidgetBundleWidgetWidgetConfigurationProviderEntryEntryView(View)WidgetCenter App GroupApp Group을 사용하면 같은 개발자가 만든 앱과 그 앱의 확장 기능들 간에 파일, 사용자 기본 설정, 데이터베이스 등을 공유할 수 있다(동일한 ..
Transferable 개요이 글에서는 Transferable에 대해 자세히 정리한다그리고 Drag&Drop 기능에서 Transferable이 사용되는 예시에 대해 알아본다 TransferableTransfer TypeData TransferFile TransferCustom TransferDrag & Drop TransferableA protocol that describes how a type interacts with transport APIs such as drag and drop or copy and paste Transferable에 대한 문서에서의 설명은 위와 같고, String, Data, URL, Image와 같은 시스템 유형 자체는 이미 Transferable을 준수하고 있다 Transferable 프로토콜을..
앱 배포 관련 정리(macOS) 개요macOS 앱을 앱스토어가 아닌 직접 배포를 수행하는데, 게이트키퍼에 올바르게 인식되도록 하려면개발자 인증서를 통한 코드서명과 앱에 대한 애플 서버의 공증이 필요하다 우선은 관련 키워드들에 대해 정리하고, 이후 배포 과정 및 배포 방식에서 이들이 언제 어떻게 쓰이는지 정리한다 빌드 결과물과 코드서명배포과정(검증, 배포, 공증)커맨드 명령어(코드서명, 공증, 배포 패키지)배포 쉘스크립트 빌드 결과물과 코드 서명앱을 배포하기까지 코드 → 아카이브 → 앱 과정을 거치는데 이와 관련된 키워드를 우선 정리하고 넘어간다.xcarchiveXCode에서 생성된 앱의 빌드로, 앱의 모든 파일을 포함하는 번들이다다음과 같이 XCode를 실행하지 않고도 xcodebuild -scheme를 이용해서 아카이브 빌드를 수행할..