분류 전체보기
-
확률과 통계 : 불확실성 모델링 방법Math♾️/Probability Statistics🎲 2025. 2. 11. 15:24
내일 비가 올까요? 다음 주 주식 시장은 어떻게 될까요? 새로 만난 사람이 좋은 친구가 될까요? 이런 질문들에 대해 우리는 정확한 답을 할 수 없습니다. 이것이 바로 '불확실성'입니다.불확실성의 원인 측정의 한계동전 던지기를 예로 들어보겠습니다. 이론적으로는 동전의 초기 위치, 던지는 힘, 공기 저항, 중력 등 모든 물리적 요소를 정확히 알면 결과를 예측할 수 있을 것입니다. 하지만 현실에서는 이 모든 요소를 완벽하게 측정하고 통제하는 것이 불가능합니다. 이러한 측정의 한계가 불확실성을 만듭니다.시스템의 복잡성날씨를 예측하는 경우를 생각해봅시다. 지구의 모든 공기 분자의 움직임, 해류의 흐름, 태양 복사량 등 셀 수 없이 많은 요소들이 서로 영향을 주고받습니다. 이렇게 복잡한 시스템에서는 작은 초기 조건..
-
순수 함수란?Programming🧑💻/Functional Programming 2025. 2. 10. 23:22
수학에서 f(x) = x + 1 같이 함수는 x에 특정 값을 넣으면 항상 동일한 결과가 나옵니다. 프로그래밍에서 순수 함수도 이와 같은 원칙을 따릅니다. 항상 단일 값을 반환합니다 (동일한 입력에 대해 동이한 출력 반환)반환 값은 오직 입력 매개변수에만 기반하여 계산됩니다기존 값을 변경하거나 부작용을 일으키지 않습니다위의 원칙들을 따르면서 나타나는 다음 특성들 때문에 이를 '순수'하다고 합니다 입력과 출력의 관계가 순수하게 유지됩니다 (같은 입력 = 같은 출력)외부 세계와의 상호작용 없이 순수하게 계산만 수행합니다부작용 없이 순수하게 자신의 역할만 수행합니다 순수함수가 왜 필요한데?전통적인 클래스 기반 접근 방식의 문제점장바구니에 책이 포함되어 있을 때 할인을 해주는 비즈니스 로직을 구현한다고 해봅시다...
-
함수야 거짓말 하지마라Programming🧑💻/Functional Programming 2025. 2. 9. 23:07
함수 시그니쳐란? 함수 시그니쳐는 함수의 정체성을 나타내는 ID 카드와 같습니다. 함수의 이름, 매개변수 타입, 반환 타입을 포함하며,이를 통해 함수가 무엇을 받아서 무엇을 돌려주는지를 명확하게 알 수 있어야합니다. func functionName(parameterName: ParameterType) -> ReturnType { // 함수 구현} 예를 들어, 사용자의 나이를 받아서 성인 여부를 반환하는 함수의 시그니처는 이렇게 됩니다func isAdult(age: Int) -> Bool { return age >= 18} 위와 같이 함수의 시그니쳐들을 통해 해당 함수가 어떤 "역할을 하는지?" ,"어떤 값들을 필요로 하는지?", "어떤 결과값이 나올 수 있는지?"등의 함수의 동작을 예측할 수 ..
-
Scene과 Window의 관계Apple🍎/UIKit 2025. 2. 8. 23:20
시각적 요소와 상태 관리 시각적 요소 관리란 화면상에 보이는 모든 UI 컴포넌트들의 레이아웃, 크기, 위치, 계층 구조를 다루는 것을 의미합니다. 예를 들어 버튼의 위치, 텍스트 필드의 크기, 뷰의 계층 구조 등이 여기에 포함됩니다. 상태 관리란 UI의 현재 상황과 관련된 모든 데이터를 다루는 것을 의미합니다. 예를 들어 현재 선택된 탭, 스크롤 위치, 입력중인 텍스트, 네비게이션 스택의 상태 등이 이에 해당됩니다. 또한 UI의 생명주기 또한 상태관리의 일부입니다. UIKit과 SwiftUI의 생명주기 관리앱 생명주기어플리케이션 생명주기란 앱이 실행부터 종료까지의 과정 속에서 상태 변화를 다루는 개념이다. Not Running (실행되지 않음): 앱이 아직 시작되지 않았거나 완전히 종료된 상태를 의..
-
테스크는 뭘까?Apple🍎/Cocurrency 2025. 2. 7. 21:06
카페 체인점을 차려보자프로그램 ( Program ) 가장 먼저, 프로그램은 카페 체인점의 운영 메뉴얼이라고 생각할 수 있습니다. 실제로 점포를 내고 운영중인 상태는 아니지만 새로운 체인점을 차리게 된다면 필요한 목록과 밟아야하는 절차에 대해서 명시해놓은 책자입니다. 아직 실행되지 않아 메모리 위에 올라오지 않고 디스크에만 저장된 정적인 상태입니다. 메뉴얼에는 다음과 같은 내용이 있을 수 있습니다. 카페를 어떻게 운영할지에 대한 전체 계획 ( = 시스템 아키텍쳐 )필요한 장비와 재료 목록 ( = 하드웨어 자원 , 데이터 )직원들이 따라야할 절차와 규칙 ( = 비즈니스 로직 )메뉴 레시피 및 제조 방법 ( = 함수, 메서드 )프로세스 ( Process ) 프로세스는 위 메뉴얼을 바탕으로 실제로 오픈한 ..
-
L-value와 R-valueProgramming🧑💻/Cpp 2025. 2. 6. 21:43
표현식 ( Expression )표현식이란, 하나의 값으로 평가될 수 있는 코드의 단위입니다. 아래 코드에서 표현식은 계산되어 하나의 값이됩니다. int a = 5; // 5는 표현식int b = a + 3; // a + 3은 표현식int c = b * (a-1); // b * (a-1)은 표현식, (a-1)도 표현식 L-Value와 R-Value 개념L-value와 R-value는 표현식(expression)의 값 범주를 구분하는 방법입니다. L-Value의 'L'은 'Left'에서 왔습니다. 이는 할당 연산자(=)의 왼쪽에 올 수 있는 표현식을 의미합니다. L-Value의 핵심적인 특징은 메모리상에서 이름과 주소를 가지고 있어 여러번 참조 할 수 있다는 점입니다. int ..
-
함수 호출시 매개변수 전달 방법 3가지Programming🧑💻/Cpp 2025. 2. 5. 23:29
값에 의한 전달 ( Pass by Value ) 함수 호출시 매개 변수의 복사본이 호출된 함수의 스택 메모리에 생성됩니다. 원본 데이터와 완전히 독립된 메모리 공간을 사용합니다. 함수 종료시 복사본은 스택에서 자동으로 해제 됩니다. void processData(int data) { data = data + 1; // 값을 복사했기 때문에 원본 데이터에 영향 없음}int main() { int value = 5; processData(value); print("value=%d",value); // value 값은 여전히 5} 포인터에 의한 전달 ( Pass by Pointer )메모리 주소값만 복사되어 전달됩니다.포인터 자체는 호출된 스택 프레임내에 생성되지만 크기는 항상 고정됩..
-
콜 스택 동작을 통해 알아보는 함수 호출Programming🧑💻/Cpp 2025. 2. 4. 23:29
콜 스택이란?프로그램이 실행되어 메모리에 올라오면, 운영체제는 해당 프로그램을 프로세스라는 실행단위로 관리하면서 필요한 컴퓨팅 자원 (CPU 시간, 메모리 등) 을 할당합니다. 각 프로세스는 자신만의 독립된 메모리 공간을 할당받는데, 이를 프로세스의 메모리 구조라고 합니다. 프로세스는 뭘까?프로그램은 컴퓨터가 특정 작업을 수행하기 위해 작성된 명령어들의 집합입니다. 쉽게 말해 우리가 하드디스크에 저장해둔 실행 파일이라고 할 수 있죠. 예를 들어 워드나 크롬 브라우저 같은people-analysis.tistory.com 프로세스의 메모리는 크게 다음과 같은 영역으로 구분됩니다. 코드(텍스트) 영역: 실행할 프로그램의 코드가 저장되는 영역데이터 영역: 전역변수와 정적(static) 변수가 저장되는 영역힙(H..