전체 글
-
쓰레드는 뭘까?Apple🍎/Cocurrency 2025. 1. 27. 21:36
프로세스의 도입으로 하나의 CPU 코어를 여러 프로그램이 시분할(time-sharing) 방식으로 공유할 수 있게 되었습니다. 운영체제는 각 프로세스에 CPU 시간을 조금씩 할당하여 마치 여러 프로그램이 동시에 실행되는 것처럼 보이게 합니다. 메모장, 웹브라우저, 유튜브를 동시에 실행하는 상황을 예로 들어보겠습니다. 메모장에서 파일 저장과 같은 I/O 작업이 발생하면, 해당 프로세스는 I/O 작업이 완료되기를 기다리는 'blocked' 상태로 전환됩니다. 이때 운영체제는 CPU 자원을 웹브라우저나 유튜브와 같은 다른 실행 가능한('ready') 상태의 프로세스들에게만 할당합니다. 그렇지만 메모장 프로그램이 파일을 디스크에 저장하는 동안에도 사용자는 계속해서 텍스트를 입력하거나, 맞춤법 검사 결과를 확인하..
-
프로세스는 뭘까?Apple🍎/Cocurrency 2025. 1. 27. 00:15
프로그램은 컴퓨터가 특정 작업을 수행하기 위해 작성된 명령어들의 집합입니다. 쉽게 말해 우리가 하드디스크에 저장해둔 실행 파일이라고 할 수 있죠. 예를 들어 워드나 크롬 브라우저 같은 응용프로그램 파일들이 이에 해당합니다. 프로그램은 실행되기 전까지는 그저 디스크에 저장된 정적인 상태로 존재합니다. 반면 프로세스는 실행 중인 프로그램을 의미합니다. 프로그램이 실행되면 운영체제는 해당 프로그램을 메모리에 로드하고, CPU 시간과 같은 시스템 자원을 할당합니다. 이렇게 실행되어 메모리에서 동작하는 상태가 바로 프로세스입니다. 초기 컴퓨터 시스템에서는 한번에 하나의 프로그램만 실행할 수 있었습니다. 프로그램은 CPU, 메모리와 같은 컴퓨터의 모든 자원을 독점적으로 사용했기 때문에 자원 관리는 비교적 단순했습..
-
동시성 이해를 위한 컴퓨터 기본 구조Apple🍎/Cocurrency 2025. 1. 26. 20:01
컴퓨터란 데이터들을 정해진 규칙에 따라 연산을 수행하는 장치 입니다. 요리에 한번 비유를 해볼까요? 데이터: 요리의 재료들이 데이터에 해당합니다. 예를 들어 계란, 설탕, 밀가루와 같은 실제 재료들은 컴퓨터가 처리하는 원시 데이터와 같습니다.재료들은 그 자체로는 아무 의미가 없지만, 정해진 규칙에 따라 처리되면 의미 있는 결과물이 됩니다. 정해진 규칙: 레시피가 바로 정해진 규칙에 해당합니다. 레시피는 "계란을 3개 넣고, 설탕 2스푼을 넣은 뒤 섞는다"와 같이 재료를 어떤 순서로, 어떻게 처리해야 하는지 정확히 명시합니다. 이는 컴퓨터 프로그램이 데이터를 어떻게 처리할지 정의하는 것과 같습니다. 연산: 실제 요리 과정이 연산에 해당합니다.재료를 섞고, 반죽하고, 굽는 등의 물리적 행위들은 컴퓨터가 수행..
-
Run & Learn : 배움은 계속된다.Apple Developer Academy @ POSTECH🍍 2024. 12. 17. 17:14
아카데미가 내게 남긴 것들때때로 머리에서 떨어져 나온 부스러기들보다 피부 밑 서려있던 감각들이 더 많은 것을 기억한다. 처음 이곳에 도착한 날, 달갑지 않은 객을 받은 집주인 눈빛 같은 바람이 온몸에 박혀 들었다.다시 공기가 얼어붙으니 그때의 떨림이 또 한 번 떠날 때가 되었음을 알린다. 한참 더웠던 여름 한 구석 실컷 뛰고 난 뒤 땀을 뻘뻘 흘리면서 계단을 내려가다마주친 태양의 눈높이가 어제와 일치했다. 문득 내일이 오늘과 같아도 나쁘지 않을 것 같다는 생각이 들었고특별히 좋지도 않지만 나쁜 것도 없는 괜찮은 하루에 반복이라면 니체 영원회귀도 받아들일 수 있을 것 같았다. 낯설었던 길들이 이제야 발에 들어맞고눈에 걸리던 풍경들이 일상 속에 스며든 지 얼마 되지 않았는데 익숙해진 하루들을 떠나보낸다..
-
클린 아키텍처 쉽게 이해하기 with SwiftUI 🔍Apple🍎/SwiftUI 2024. 10. 29. 23:06
클린 아키텍처가 뭔가요?앱을 만들 때 코드를 역할별로 깔끔하게 나누는 방법이에요. 마치 서랍장에 물건을 종류별로 정리하는 것처럼, 코드도 하는 일에 따라 구분해서 관리하는 거죠.클린 아키텍처의 계층 구조 이해하기 📚계층이란? 🤔앱의 코드를 역할별로 나눈 각각의 층을 말해요. 각 계층은 자기만의 역할이 있고, 다른 계층과 약속된 방식으로만 소통해요. Domain Layer (핵심 계층) 💡앱의 가장 기본이 되는 부분이에요. 마치 집을 지을 때 기초 공사가 중요한 것처럼, Domain Layer는 앱의 핵심적인 데이터 모델과 이를 다루는 규칙들을 담고 있답니다.Entity: 실제 세상의 물건이나 개념을 앱 속에서 어떻게 표현할지 정하는 설계도예요.예를 들어 쇼핑앱을 만든다고 생각해볼까요?실제 상품을 앱..
-
얼만큼 할 수 있고 얼마만에 할 수 있을까? - 파이룰Apple Developer Academy @ POSTECH🍍 2024. 10. 14. 22:45
일단 지금 할 수 있는 것을 하자.애플 아카데미에서 지낸지도 6개월이 다되어가는 시점에 마지막 메크로 프로젝트를 맞이하게 되었다.우리팀은 메크로 주제를 멘토께서 협업프로젝트로 가져오신 공유자전거로 선택하였다.외부와 협업을 경험해볼 수 있다는 점, 이미 많은 공유자전거 플렛폼이 존재하여 레퍼런스가 많다는 점, 그리고 실 사용대상이 가까이 있다는 점들이 장점으로 다가왔기 때문이다. 그러나 주제를 선택한 시점으로부터 기관과의 미팅을 하기까지 일주일간의 시간을 기다려야하는 상황이 되니팀 내부적으로 앞으로 기관과 소통주기가 이렇게 길다보면 중간중간 뜨는 시간이 많이 생길 것 같다는 걱정이 나왔다.그리고 협업과정에서 어그러져버리면 우리는 어떻게 대처해야할지에 대한 고민이 있었다.따라서 자전거라는 도메인을 유지하며 ..
-
ML 세션 : 애플 생태계에서 ML 기술 활용하기Apple Developer Academy @ POSTECH🍍 2024. 9. 27. 22:04
애플 디벨로퍼 아카데미에서 ML 스터디를 진행하며 애플 생태계에서 ML 기술을 활용하는 방법에 대한 세션을 진행하게 되었습니다. 다들 안녕들하신지요? 아임 파인입니다.오늘은 애플 생태계에서 AI 모델을 어떻게 활용할 수 있는지 코드와 함께 알아보려고 합니다.다들 평소에 AI를 어떻게 활용하고 계시나요?저는 모든 일상속에서 AI와 함께하고 있는데요.코드를 짤때는 물론이고 글을 적기전 내용을 구성할 때, 새로운 기술을 학습할때 등다양한 상황에서 gpt와 같은 생성형 ai의 도움을 받고 있습니다.혹시 얼마전에 gpt의 새로운 모델이 또 나왔다는 사실을 알고 계셨나요?새로 나온 모델의 이름은 o1으로 현재는 o1-preview라는 미리보기 형태로 체험이 가능합니다.한동안 인터넷상에서 한국인만 해석할 수 있는 리..
-
SwiftUI와 UIKit 뷰 구성하는 법 비교하기 ( 선언형, 절차형 패러다임 비교)Apple🍎 2024. 9. 19. 23:52
SwiftUI - 선언형 프로그래밍선언형 프로그래밍에서는 "무엇"을 원하는지를 코드로 작성합니다.개발자는 원하는 결과를 설명하고, 시스템이 그 결과를 어떻게 달성할지 결정합니다.SwiftUI 예제다음 코드에서 개발자는 어떠한 컴포넌트들이 어떤 형태가 되어야하는지 결과 상태를 코드로 명시합니다.각 컴포넌트들이 어떻게 그 상태에 도달할지에 대한 설명은 하지 않습니다.VStack(spacing: 20) { Text("Hello, World!") Image(systemName: "star.fill") Spacer() Button("Tap me") { print("Button tapped") }}.padding()수직으로 요소들을 쌓고 싶다 (VStack)요소들 사이에 20..