전체 글 77

Emotional Intelligence habits(감성 지능)

미국 출장에서 돌아오는 길에 면세점에서 산 책이다. 감성 지능이라는 생소한 단어와 감정을 습관화하고 바꿀 수 있다는 듯한 책의 제목이 궁금해서 샀다. 자기계발서라면 보통 개인의 경험에서 나오는 것들을 전달하는 책이지만 이 책은 자기계발서 임에도 통계와 정보를 가지고 책을 써 나가는 것이 마음에 들었다. 마치 MBTI의 T가 분석한 F의 생활이랄까? 책 소개 요즘 헬스를 하는 사람들이 그렇게 많다. 하나의 유행처럼 너도 나도 바디 프로필을 준비하며 배에 초콜릿이 박히는 것을 지향하며 열심히 살아간다. 하지만 뉴스를 보나 주위를 보나 정신적으로는 피폐해져 가는 것이 점점 더 많이 보인다. 이 책은 보다 감정에 대해서 확실하게 파악하고 통제할 수 있도록 도움을 줄 수 있는 시대에 필요한 책이 아닐까 싶다. 성..

2023.11.26

CFSocket을 통한 로컬 서버 만들기 4

근 4 달만에 이어지는 글이네요. 이번편은 단순하게 전 글들에서 만든 ServerSocket과 ClientSocket을 객체화 시켜 연결하는 과정이기 때문에 어려울 것도 없어 최대한 짧게 쓰려고 합니다. CFSocket에 관한 제일 첫번째 글에 나왔던 이 이미지를 다시 한번 상기시켜 봅시다. ServerSocket을 만든 목적은 Avplayer에서 request한 Network를 intercept하기 위함이었고 ClientSocket이 intercept한 url을 대신 remote Server에 요청하여 데이터를 기기에 저장 및 serverSocket을 거쳐 avplayer에 반환하는 것이 전체 과정입니다. 5. ProxyServer 만들기 class ProxyServer { private var s..

iOS 2023.10.22

CFSocket을 통한 로컬 서버 만들기 3

전글에서 Server Socket을 간단하게 만들어 보았고 이번에는 ClientSocket을 만들어 보겠습니다. 4. ClientSocket 만들기 먼저 풀 코드부터 보여 드리겠습니다. class ClientSocket : NSObject { var fileDescriptor: Int32 private var inputStream: InputStream! private var outputStream: OutputStream! private var address : sockaddr! init(fileDescriptor: Int32, address: sockaddr) throws { var readStream : Unmanaged? var writeStream: Unmanaged? self.fileDesc..

iOS 2023.06.26

CFSocket을 통한 로컬 서버 만들기 2

전글에서 setsocketopt()의 함수를 통해서 생성한 소켓의 옵션까지 정하는 것을 했습니다. 계속 이어서 이번에는 socket의 주소를 설정하는 법을 알아보겠습니다. 우선 코드 부터 보겠습니다. var addr = sockaddr_in(sin_len: __uint8_t(MemoryLayout.size), sin_family: sa_family_t(AF_INET), sin_port: port.bigEndian, sin_addr: in_addr(s_addr: INADDR_ANY), sin_zero: (0, 0, 0, 0, 0, 0, 0, 0)) let addrData = withUnsafePointer(to: &addr) { ptr in return ptr.withMemoryRebound(to: soc..

iOS 2023.06.26

CFSocket을 통한 로컬 서버 만들기 1

새로운 회사에 취직한지 어언 1달이 되었습니다. 새롭게 취직한 회사는 라이브 스트리밍 솔루션을 제공하는 업체이다 보니 라이브 스트리밍과 관련된 기술들을 많이 배우고 접하게 되었습니다. 이러한 와중에 iOS에서 hls 라이브 스트리밍을 캐싱해야 하는 과제를 부여받았습니다. 단순 mp4 캐싱이었으면 얼마나 좋았겠습니까? ㅋㅋㅋㅋ 근데 이놈의 애플은 hls 캐싱을 지원해주지 않더군요.... 그렇다고 또 못하는 것도 아니고 결국 삽질을 하게 되었습니다. 방법은 제목에 쓴 것처럼 앱 안에 로컬 서버를 만들고 이를 통해 외부와 소통하면서 m3u8파일과 ts파일을 추출해서 저장해야 합니다. 일단 가장 간단한 방법으로는 바로 그냥 라이브러리 쓰시면 됩니다. https://github.com/StyleShare/HLSC..

iOS 2023.05.29

Rx와 XCTest를 이용할시 생기는 에러사항들 3

SPM과 RxSwift 그리고 TestUnitBundle을 사용하면서 생기는 에러 사항들 모음집입니다. 저번 글에서 발생한 demangle ~~~ error를 해결하기 위한 글입니다. 1. RxCocoaRuntime프레임 워크만을 추가한다. 해당 프레임 워크는 https://github.com/ReactiveX/RxSwift/releases 요 링크로 들어가셔서 찾아보시면 있습니다. 6.0.0버전 릴리즈를 보시면 됩니다. 프레임 워크를 찾았으면 드래그 앤 드롭으로 세팅해줍니다. 그리고 cmd + u를 실행하면 똭! 이렇게 에러가 나오면서 실행이 안됩니다. 지금보니 RxCocoaRuntime이 RxSwift에 의존성을 가지고 있었네요. 그리고 RxSwift를 /PlugIns/{name}Tests.xctes..

iOS 2023.03.27

Rx와 XCTest를 이용할시 생기는 에러사항들 2 [missing Required module "RxCocoaRuntime"]

SPM과 RxSwift 그리고 TestUnitBundle을 사용하면서 생기는 에러 사항들 모음집입니다. 저번글에서 MainApp에서의 에러 사항을 해결했습니다. 따라서 우리는 TDD를 적용하기 위해서 TestCase를 돌리려고 합니다. cmd + u를 눌러 TestCase를 돌리게 되면 다음과 같은 에러가 나오게 됩니다. 1. Missing Required module "RxCocoaRunTime" 이것에 대한 해결방법은 아주 쉽습니다. TestTarget에 RxTest,RxBlocking,RxCocoa를 추가해주시면 사라지게 됩니다. 요렇게 해만 해주면 에러가 사라지게 됩니다. 하지만 뭔가 꺼림칙한 메세지가 잔뜩 나옵니다. 요런식으로 코드가 중복됬다는 이야기가 나옵니다. 보니까 MainApp과 Test..

iOS 2023.03.27

Rx와 XCTest를 이용할시 생기는 에러사항들 1 [library not loaded XCTest]

SPM과 RxSwift 그리고 TestUnitBundle을 사용하면서 생기는 에러 사항들 모음집입니다. 1.MainApp에 RxTest 프레임워크를 포함시켰을때 SPM으로 RxSwift를 다운받고 메인 번들을 실행시키면 아마 다음과 같은 에러들을 만나실 겁니다. Undefined symbol: _$s6XCTest14XCTAssertEqual___4file4lineyxyKXK_xyKXKSSyXKs12StaticStringVSutSQRzlF Undefined symbol: _$s6XCTest7XCTFail_4file4lineySS_s12StaticStringVSutF Undefined symbol: __swift_FORCE_LOAD_$_XCTestSwiftSupport 요 에러는 단순히 보시는 바와 같이 메..

iOS 2023.03.26

[프로그래머스] - N_Queen[파이썬]

그래프의 크기도 최대 12라고 생각해서 단순 2차원 배열 돌면서 모든 경우의 수를 구하는 DFS문제인지 알았더니 아주 띠용하는 방법이 있었다. https://school.programmers.co.kr/learn/courses/30/lessons/12952 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은 서로를 한번에 공격 할 수 없습니다. 체스판의 가로 세로의 세..

알고리즘 2023.03.15

[프록래머스] - 스티커모으기(2)[파이썬]

dp문제는 역시나 딱 봤을때 떠오르지 않는게 문제다. 결국 힌트를 보고 풀었다. https://school.programmers.co.kr/learn/courses/30/lessons/12971#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 스티커_hb1jty.jpg 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 ..

알고리즘 2023.03.15