TECH RAFA
/
Computer Science (4)
Search
Share
Computer Science (4)
Gallery
List
Search
All Posts
목차
1.
클로저란?
2.
캡처란?
3.
클로저의 메모리 할당
클로저란?
클로저는 코드의 일부분을 캡슐화하여 나중에 호출할 수 있는 기능입니다. 흔히 익명 함수나 lamda로 알려져 있으며 함수와 매우 유사하지만 더 간결한 형태로 사용할 수 있습니다. 예를 들어, 배열의 정렬이나 비동기 작업 등에 자주 사용됩니다.
Swift의 클로저에 대해 알아보기
스레드는 프로그램이 동시에 여러 작업을 처리할 수 있게 해주는 중요한 개념입니다. 스레드를 사용하면 프로그램이 여러 일을 동시에 처리할 수 있으며 성능을 크게 향상시킬 수 있습니다.
목차
1.
스레드란?
2.
싱글 스레드 vs 멀티 스레드
3.
스레드의 메모리 모델
4.
멀리 스레드의 위험성
Thread
오늘은 메모리 구조에 대해 비전공자도 이해할 수 있게 정리하고자 합니다! 바로 가보시죠.
메모리 구조의 이해
먼저, 메모리에 대해서 알고 계신가요? 메모리는 사람의 뇌처럼 어떠한 정보를 저장하고 관리하는 곳이죠. 메모리의 구조로 4 종류가 있어요.
코드(Code) - 데이터(Data) - 힙(Heap) - 스택(Stack)
으로 구성되어 있죠. 먼저, 코드 영역부터 보겠습니다.
코드 영역
코드 영역은 컴퓨터가 실행할 코드를 저장하는 곳이에요. 이를 쉽게 이해하려면 여러 레시피들을 모아둔 레시피 책과 같아요. 코드는 레시피가 되겠죠. 레시피 책에는 다양한 요리법이 적혀 있듯이 코드 영역에는 프로그램이 실행할 작업들이 명령어로 적혀 있어요.
프로그램이 실행될 때 컴퓨터는 이 코드 영역에 있는 명령어들을 차례로 읽고 실행해요. 여기서 중요한 것은 이 명령어들이 얼마나 효율적으로 작성되었느냐예요. 효율적인 명령어란, 컴퓨터가 더 적은 자원(시간, 메모리 등)을 사용하여 더 빠르고 정확하게 작업을 할 수 있는 코드를 말해요.
이 과정에서 컴파일러의 역할도 중요하죠. 컴파일러는 프로그래머가 작성한 코드를 컴퓨터가 이해할 수 있는 기계어 코드로 변환해요. 이 과정에서 컴파일러는 코드를 최적화하여 프로그램이 더 효율적으로 실행될 수 있도록 도와줘요.
메모리 구조
Swift는 Apple에서 개발한 현대적이고 강력한 프로그래밍 언어로,
객체지향프로그래밍
패러다임을 완벽하게 지원합니다.
객체지향프로그래밍(Object-Oriented Programming)
객체지향프로그래밍은 프로그램을 독립된 단위인 객체(Object)들로 나누고 이 객체들의 상호작용을 통해 프로그램을 설계하고 구현하는 패러다임입니다. 각 객체는 속성과 메서드를 가지며 클래스라는 틀을 사용하여 객체를 생성합니다.
객체지향프로그래밍의 장점
•
모듈성과 재사용성
- 객체는 독립적이고 재사용 가능한 단위로 구성되므로 코드를 모듈화 하고 재사용하기 용이합니다. 이로써 코드의 유지보수가 편리해지며 생산성을 높일 수 있습니다.
•
유지보수 용이성
- 코드의 변경이나 구현에 대한 영향을 최소화할 수 있습니다.
객체지향프로그래밍의 단점
•
복잡성
- 객체지향프로그래밍은 강력한 도구지만 복잡한 클래스 계층 구조나 다양한 객체 간의 관계를 다루는 것은 어려울 수 있습니다. 잘못된 설계나 사용 시 의도하지 않은 문제가 발생할 수 있습니다.
Object-Oriented Programming(OOP)