🙇 시작하며물론 알고있는 내용들도 많지만 CPU에 대해서 간단하게 정리해보고 싶어서 이렇게 글을 먼저 작성하게 되었다. 아래와 같이 homebrew CPU라고 집에서 CPU도 만들 수 있다! (솔직히 나중에 만들어 보고 싶다... 극강의 공돌이만 도전 할 듯..?) Homebrew CPU Home PageMagic-1 is a completely homebuilt minicomputer. It doesn't use an off-the-shelf microprocessor, but instead has a custom CPU made out of 74 Series TTL chips. Altogether there are more than 200 chips in Magic-1 connected toge..
분류 전체보기
문제풀다가 사실 깜짝 놀랐다. 2차원 배열 회전을 하는 방법이 아리까리(?) 했던 것이다... 그래서 이번 기회에 확실하게 복습해보려고 한다.🕑 시계 방향 회전그림을 살펴보면 행이 열이 되고, 열은 행이 되면서 뒤집히는 효과(?)를 볼수 있다. 이것을 (n-1-열)로 나타낼 수 있다. 이것을 코드로 구현해보면 아래와 같다.func rotateClockwise(_ matrix: [[Int]]) -> [[Int]] { let n = matrix.count let m = matrix[0].count var rotated = Array(repeating: Array(repeating: 0, count: n), count: m) for i in 0..🕗 시계 반대 방향 회전반대로 ..
🧪 Test Double?항상 테스트를 하면서 Mock, Stub, Fake... 이런 키워드들을 보면서 언제 어떤 걸 쓰는 게 맞는 표현인지가 궁금해서 이번기회에 제대로 찾아보게 되었다.🤓 공식... 정의?솔직히 요즘 인공지능이 생겨나면서 인터넷에서 도대체 어떤것이 정확한 자료인지 항상 고민이 많이 된다. 그러다가 마틴 파울러 사이트에서 이것을 명확하게 정의한 것을 보게 되었다. 마틴 파울러가 누군지는 굳이 말할 필요 없을 것 같다. bliki: Test DoubleTest Double is generic term for fakes, mocks, stubs, dummies and spies.martinfowler.com마틴 파울러는 5가지를 소개하고 있다. Dummy, Fake, Stub, Spy,..
🌐 WWDC에서 설명하는 네트워크 구조, 테스트 방법WWDC 2018에서는 아래와 같이 네트워킹 과정을 설명하고 있다. 간단하게 말로 풀어보면 아래와 같지 않을까?원하는 요청 만들기서버에게 요청 보내고 응답 받기응답을 뷰에 맞는 형태로 바꾸기응답을 뷰에 표시하기만약 여기서 Server를 제외하고 중간 흐름 수준의 테스트를 하고싶다면?URLProtocol을 사용하면 된다!🍎 WWDC에서 설명하는 URLProtocol가상의 데이터, 응답을 줘서 직접적인 인터넷 연결 없이 내가 요청을 잘 만들었는지, 응답을 잘 처리하는지를 확인 할 수 있다. 네트워크 요청을 가로채는 것이다.Swift에서는 URLProtocol클래스를 상속받는 MockProtocol을 만들 수 있다. WWDC에서 소개하는 코드를 그대로 가..
테이스터라는 테이스팅 노트 앱을 개발하면서 앱을 개발해서 배포한다는 것의 책임에 대해 알게 되었고, 기초적인 지식이 없이 무조건 새로운 기술을 도입해 보는 것이 능사는 아니라는 것을 뼈저리게 깨닫고 반성하게 되었다. 나에게 개발자로서의 자세에 대해 깊게 생각해본 계기가 되었고, 개발에 대한 아프지만 의미 있는 경험이라고 생각하여 이렇게 블로그에 기록해 본다.🚧 사건의 배경나는 2023년 12월 11일, SwiftData를 도입한 테이스팅 노트인 테이스터라는 앱을 배포했다.모든 과일이나 물건들의 디자인을 가져올 수 없어서 피그마에 모든 아이콘을 여러 레퍼런스를 참고해서 그릴정도로 열정적으로 1인 앱 개발에 힘썼다.약 1년 동안 다운로드 수가 516건, 업데이트가 앱 배포 시 몇백 건은 되는 듯하여 적지 ..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 3. 실행, Context switch??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영swift-library.tistory.com🧵 멀티스레드 프로세스많은 개발자들을 괴롭히고(?) 있는 스레드! 멀티 프로세싱은 Context switching을 통해서 os에서 관리한다. 하지만 각 프로세스 안에서도 Task관리... 해야겠지? 기존 전통적인 프로세스는 single-threaded process이였지만, 현대에 와서는 multithreaded process로 발전했다.A thread is a..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 2. 프로세스의 구조??🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역swift-library.tistory.com🤔 그래서 프로세스를 어떻게 "실행, 관리" 할 수 있는 거지?물론 PCB(Process Control Block)의 존재를 알고 있기는 했다. 하지만 정확하게 PCB가 뭔지, 어떻게 작동하는지가 궁금했다.🛠️ Kernel바로 커널이 등장했다. Activity Monitor를 보면 있는 그 친구...! 스레드상으로만 보면 압도적이다. (크롬 때문일까...?)User mode, Kernel ..
🗃️ 이전 글 [CS] 프로세스와 스레드 딥다이브 - 1. 딥다이브 전 기초지식🧐 학습 계기이번에 스터디를 진행하면서 운영체제-프로세스에 대해서 학습공유를 하게 되었다. 학습을 하다 보니 역시 파도파도 끝이 없다. 이 부분에서 학습공유에 정리하기 전에 내가 학습swift-library.tistory.com🧐 프로세스의 구조?흔히 구글에 프로세스의 구조라고 치면 너~무나도 유명한 Stack, Heap, Data, Text 네 가지 층으로 구성된 자료들을 흔히 확인할 수 있다.나도 프로그램이 실행되면 이렇게 Stack, Heap, Data, Text(Code) 뚝딱! 메모리에 할당되고 처리가 되는가보군? 정도로 넘어갔었는데 이번 기회에 조금 더 깊이 들어가 보고 싶었다. 공룡책(Operating Sys..