앱을 만들어두고 바쁘다는 핑계로 자잘한 버그를 수정하는 것 외에는 크게 손댄것이 없었는데, 계속 어떤 기능을 추가하면 좋을지에 대해 생각해봤다. 일단 당시와 지금은 나름 성장이 있는 듯 하다.ㅎㅎ 당시엔 해결하지 못한 문제들이 있었은데 해당 문제들에 대한 해결방법을 알았고 다음 업데이트에 적용될 예정이다. 또한 색상을 다루는 능력도 많이 늘어서 좀 더 다양한 색으로 서비스 할 수 있을 거 같다. 우선 추가하고 싶은 기능은 능력치의 도합 레벨이 늘어나면 뭔가 보이는 변화가 있으면 좋겠다는 생각이다. 예를 들어 간단한 캐릭터같은걸 하나 만들어서 레벨 도합이 50이 되면 캐릭터에 모자가 씌워진다거나 ㅋㅋㅋㅋㅋ 하는 느낌으로다가... 이건 최근에 어떤분이 달아주신 댓글에서 아이디어를 얻을 수 있었다. 또한 자신..
안녕하세요! Pingu입니다. 오늘도 열심히 OS에 대해 알아보겠습니다! 지난 글에서는 일반적인 자료구조에 Lock을 상호 배제 구현하여 thread safety 하게 만드는 방법에 대해 알아봤었습니다. 여러 가지 자료구조에 대해 lock으로 상호 배제를 구현하고 발생하는 문제점들을 해결했었죠! 이번 글에서는 Condition Variable(상태 변수)라는 것을 추가하여 lock을 사용할 때 상호 배제만 고려하는 것이 아닌 synchronization(동기화) 즉 스레드들의 실행 순서 관계를 관리하는 방법을 알아보려고 합니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 30 - Condition Variables 부분 입니다! Conditional Variables 지난 글까지는 ..
문제 링크 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ..., l-1} × {0, ..., l-1}로 나타낼 수 있다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 칸, 나이트가 이동하려고 하는 칸이 주어진다. 출력 각 테스트 케이스마다 나이트가 최소 몇 번만에 이동할 수 있는지 출력한다. 문제 풀이 이..
안녕하세요 Pingu입니다. 지난 글에서는 Concurrency(동시성)을 구현할 때 필요한 mutual exclusion(상호 배제)을 구현하기 위한 lock이라는 개념에 대해 알아봤습니다. 이번 글에서는 지난번에 알아본 lock을 사용하여 queue, linked list, hash table 등의 자료구조에서 여러 개의 스레드가 동시에 접근하더라도 문제가 없도록 하는 방법에 대해 알아볼 예정입니다. 제가 공부할 때 참고하고 있는 OSTEP 책에서는 Chapter 29 - Locked Data Structure 입니다! Lock-based Concurrent Data Structures 자료구조에 여러개의여러 개의 스레드가 동시에 접근한다면 어떻게 될까요? 예를 들어 배열의 경우 특정 인덱스에 여러 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/IaaQ9/btqSGj64ABj/GakFKzilq7ajgeBEITvt6K/img.png)
안녕하세요 Pingu입니다! iOS에서 개발을 하다 보면 네비게이션 컨트롤러를 자주 사용하는데요, 네비게이션 컨트롤러는 스택의 개념으로 뷰가 쌓이는데 가끔 2개나 3개를 한 번에 없애버리고 싶을 때가 있더라고요. 어떻게 하는 게 좋을까.. 하다가 다양한 방법이 있어서 정리해보려고 합니다. 물론 더 많은 방법이 있을 수 있지만... 제가 오늘까지 알아본 방법까지 정리해보겠습니다. 만약 다른 방법이 있다면 알려주시면 감사하겠습니다! 우선 프로젝트를 하나 만들고 네비게이션 컨트롤러를 만들어 줍니다. 그리고 구분이 쉽게 배경색을 RGB로 하나씩 만들어서 네비게이션 뷰 스택에 쌓는 용도로 만들어보겠습니다. 이렇게 만들어 놓으니까 은근히 예쁜데요? ㅋㅋㅋㅋ 배경 색이 없는 뷰는 WhiteViewController라..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Caudp/btqSdtX6NMX/8IZdKV7qUqYYFwCXgdn1UK/img.png)
안녕하세요 Pingu입니다! 저번 글에서 음악이나 동영상을 백그라운드에서 재생 가능하도록 만들었습니다. 그럼 이제 위와 같이 앱 외부에서 음악이나 동영상을 제어하는 방법을 알아보도록 하겠습니다! 우선 이번 글을 쓸 때 참고한 공식문서들입니다. developer.apple.com/documentation/mediaplayer/mpremotecommandcenter developer.apple.com/documentation/mediaplayer/becoming_a_now_playable_app 일단 음악이나 동영상을 백그라운드에서 재생 가능하도록 만들었다고 가정하고 진행하겠습니다. 우선 MPRemoteCommandCenter, MPNowPlayingInfoCenter에 대해 알아보고 가도록 하겠습니다. M..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/LnUvS/btqSdtX6Orc/OFVK3pkhewoPvGfeqpQOr0/img.png)
안녕하세요 Pingu입니다. iOS에서 이 부분 다들 아시나요? 음악이나 동영상 같은 콘텐츠들을 해당 콘텐츠를 제공하는 앱에서 제어하는 것이 아닌 다른 곳에서 제어할 수 있도록 하는 리모컨 같은 역할을 하는 기능인데 iOS를 사용하신다면 한 번쯤 써보셨을 거예요. 즉 앱이 백그라운드에 있을 때 제어할 수 있도록 하는 것이죠. 이번 글에서는 iOS 개발을 할 때 이러한 기능을 추가하기 위한 방법을 알아보기 전에 음악이나 동영상을 백그라운드에서 재생가능하도록 하는 작업부터 해보려고 합니다. 바로 제어하는 기능을 추가하는 방법을 보려면 여기를 보시면 됩니다! 사용할 음악 파일은 아래 링크에서 받을 수 있어요! file-examples.com/index.php/sample-audio-files/sample-mp..
안녕하세요 Pingu입니다! 지난 글에서는 동시성 프로그래밍에서 사용하는 스레드를 쉽게 사용할 수 있는 C언어 API들을 알아봤었는데요! 이번 글에서는 동시성 프로그래밍을 구현할 때 스레드를 사용하면 발생하는 문제점 중 하나인 공유 자원에 여러 스레드가 동시에 접근하려고 할 때 발생하는 문제를 해결하는 방법인 Lock에 대해 알아보려고 합니다. 제가 공부할 때 참고하는 책인 OSTEP에서는 Chapter 28 - Lock 부분 입니다! Locks 지난 글들에서 Concurrency(동시성)에 대해 알아봤을 때 문제점들이 몇 가지 존재했었습니다. 그중 하나는 명령을 원자적으로 (여기서 원자적이라는 말은 특정 작업을 수행할 때 시작을 했으면 끝나는 것을 보장하는 것을 말합니다.) 수행하고 싶지만 프로세서에는..
- Total
- Today
- Yesterday
- dfs
- 동시성
- 앱개발
- 백준
- 알고리즘
- Swift
- 문법
- 코테
- BFS
- 코딩테스트
- operator
- 아이폰
- design
- document
- OS
- mac
- 스위프트
- Xcode
- Combine
- 자료구조
- OSTEP
- DP
- System
- 프로그래밍
- Publisher
- 테이블뷰
- pattern
- operating
- IOS
- Apple
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |