SlideShare ist ein Scribd-Unternehmen logo
1 von 231
Downloaden Sie, um offline zu lesen
iOS Memory
Management
이영록
실행시	 메모리	 구조
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text) 프로그램코드가
 저장
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
프로그램코드가
 저장
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
동적할당을
 위한
 공간
프로그램코드가
 저장
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
동적할당을
 위한
 공간
지역변수와
 매개변수가
 저장
프로그램코드가
 저장
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
동적할당을
 위한
 공간
지역변수와
 매개변수가
 저장
프로그램코드가
 저장
}메모리
 사용량
 변동없음
프로그램
 종료시
 해제
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
동적할당을
 위한
 공간
지역변수와
 매개변수가
 저장
프로그램코드가
 저장
}메모리
 사용량
 변동없음
프로그램
 종료시
 해제
-
객체가
 생성되는
 공간
사용량이
 변동
메모리관리의
 대상영역
실행시	 메모리	 구조
Stack
Heap
Data
Code(Text)
전역변수와
 정적변수가
 저장
동적할당을
 위한
 공간
지역변수와
 매개변수가
 저장
프로그램코드가
 저장
}메모리
 사용량
 변동없음
프로그램
 종료시
 해제
-
객체가
 생성되는
 공간
사용량이
 변동
메모리관리의
 대상영역
사용량이
 계속해서
 변경
OS가
 관리-
메모리-Code 영역
프로그램의
 명령문들
-
 이
 명령문에
 의해
 프로그램은
 작동한다
메모리-Data 영역
전역변수
• 프로그램 전역에서 사용가능한변수
정적변수
• 실행중에 항상 일정한 메모리 공간에 유지됨
• 블럭을 벗어나도 자동으로 제거되지 않음
메모리-Heap 영역
동적할당 변수
• 프로그램 실행중에 Heap 영역으로부터 필요한 만큼 메모리를 할당받는다.
• 사용이 완료되면 시스템에 반납하여야 한다
• C언어에서는 malloc() 함수에 의해 할당
• C++ 언어에서는 new 키워드에 의해 할당
• Objective-C 언어에서는 alloc 메소드에 의해 할당
장점
• 효율적인 메모리 관리가 가능하다
단점
• 메모리 관리를 프로그래머가 책임지고 해야한다
메모리-Stack 영역
지역변수
• 함수나 블럭안에서 정의되는 변수
• 함수가 종료되거나 프로그램이 종료되면 메모리 공간이 해제됨
• 함수가 받는 매개 변수나 함수내에서 사용되는 지역변수가 이 Stack 영역에 저장
( OS의 관리 )
@interface ClassA : NSObject {
}
+ (void) imClassMethod
- (void) methodA;
@end
@implementation ClassA
+ (void) imClassMethod {
	 NSLog(@I’m Class Method);
}
- (void) methodA {
	 NSLog(@I’m A);
}
@end
@interface ClassB : ClassA {
}
- (void) methodB;
@end
@implementation ClassB
- (void) methodB {
	 NSLog(@I’m B);
}
@end
@interface ClassC : ClassB {
}
- (void) methodC;
@end
@implementation ClassC
- (void) methodC {
	 NSLog(@I’m C);
}
@end
int main (int argc, const char * argv[]) {
ClassC *obj = [[ClassC alloc] init];
	 [obj methodC];
	 [obj methodB];
	 [obj methodA];
	 [obj methodX];
NSNumber *num =[[NSNumber alloc] init];
return 0;
}
Stack Heap
Code
ClassC *obj = [[ClassC alloc] init];
Stack Heap
Code
ClassC *obj = [[ClassC alloc] init];
Stack Heap
Code
ClassC
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
Stack Heap
Code
ClassC
+alloc
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
Stack Heap
Code
ClassC
-init
+alloc
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
obj
Stack Heap
Code
ClassC
-init
+alloc
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
obj
Stack Heap
Code
ClassC
-init
+alloc
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-init
+alloc
ClassC *obj = [[ClassC alloc] init];
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-init
+alloc
ClassC의 Instance
obj isa
Stack Heap
Code
[obj methodC];
ClassC
-init
+alloc
ClassC의 Instance
obj isa
Stack Heap
Code
[obj methodC];
ClassC
-methodC
-init
+alloc
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
[obj methodB];
-init
+alloc
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
[obj methodB];
super
-init
+alloc
ClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
[obj methodB];
super
-init
+alloc
ClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
[obj methodB];
super
-methodB
-init
+alloc
ClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
[obj methodA];
-init
+alloc
ClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
[obj methodA];
super
-init
+alloc
ClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
[obj methodA];
super
-init
+alloc
ClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
[obj methodA];
super
-methodA
-init
+alloc
ClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
-init
+alloc
ClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-methodX
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
[obj methodX];
super
-init
+alloc
NSObjectClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
-init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
-init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
+alloc
-init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
+alloc
NSNumber의 Instance
-init -init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
+alloc
NSNumber의 Instance
num
-init -init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
+alloc
NSNumber의 Instance
num
isa
-init -init
+alloc
NSObject NSNumberClassAClassB
ClassC의 Instance
obj isa
Stack Heap
Code
ClassC
-methodC
super
-methodB
super
-methodA
super
NSNumber *num=[[NSNumber alloc] init];
+alloc
NSNumber의 Instance
num
isa
super
-init -init
+alloc
메모리 관리란?
메모리 관리란?
메모리 관리란?
Heap
메모리 관리란?
Heap
object
메모리 관리란?
Heap
object
object
메모리 관리란?
Heap
object
object
object
메모리 관리란?
Heap
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
object
메모리 관리란?
Heap
object
object
object
object
object
메모리 관리 방식
명시적해제 가비지콜렉터 레퍼런스
 카운팅
방식
프로그래머가
 객체를
 생
성해서
 사용하다
 필요가
 
없을때
 명시적으로
 해제
가비지
 콜렉터가
 수시로
 
실행되어서
 필요없는
 객체
들을
 해제
레퍼런스(리테인)카운트
에
 의해
 객체를
 해제
특징
전적으로
 프로그래머에
 
의해
 관리
시스템부하없슴
 
프로그래머가
 관리안함
시스템부하
프로그래머가
 오너쉽정책
에
 의거해서
 관리
시스템부하없슴
언어
C++
Delphi
Java
C#
Objective-C
Reference Count System
int main (int argc, const char * argv[]) {
NSNumber *num = [[NSNumber alloc] init];
NSNumber *num1 = [num retain];
NSNumber *num2 = num;
[num release];
[num1 release];
return 0;
}
Reference Count System
Heapstack
Heapstack
NSNumber *num = [[NSNumber alloc] init];
Heapstack
NSNumber의객체
NSNumber *num = [[NSNumber alloc] init];
Heapstack
num
NSNumber의객체
NSNumber *num = [[NSNumber alloc] init];
Heapstack
num
NSNumber의객체
NSNumber *num = [[NSNumber alloc] init];
Heapstack
num
NSNumber의객체
= 1
NSNumber *num = [[NSNumber alloc] init];
retainCount
Heapstack
NSNumber *num1 = [num retain];
num
NSNumber의객체
= 1retainCount
Heapstack
NSNumber *num1 = [num retain];
num
NSNumber의객체
= 1
num1
retainCount
Heapstack
NSNumber *num1 = [num retain];
num
NSNumber의객체
= 1
num1
retainCount
Heapstack
NSNumber *num1 = [num retain];
num
NSNumber의객체
num1
+ 1retainCount
Heapstack
NSNumber *num1 = [num retain];
num
NSNumber의객체
num1
= 2retainCount
Heapstack
num
NSNumber의객체
num1
= 2retainCount
NSNumber *num2 = num;
Heapstack
num
NSNumber의객체
num1
= 2retainCount
NSNumber *num2 = num;
num2
Heapstack
num
NSNumber의객체
num1
= 2
[num release];
retainCount
num2
Heapstack
num
NSNumber의객체
num1
- 1
[num release];
retainCount
num2
Heapstack
num
NSNumber의객체
num1
= 1
[num release];
retainCount
num2
Heapstack
num
NSNumber의객체
num1
= 1
[num1 release];
retainCount
num2
Heapstack
num
NSNumber의객체
num1
- 1
[num1 release];
retainCount
num2
Heapstack
num
NSNumber의객체
num1
[num1 release];
= 0retainCount
num2
Heapstack
num
NSNumber의객체
num1
[num1 release];
= 0
dealloc
retainCount
num2
Heapstack
num
NSNumber의객체
num1
[num1 release];
= 0retainCount
num2
Heapstack
num
num1
[num1 release];
num2
Reference Count System
- (id)init
- (id)retain
- (oneway void)release
- (id)autorelease
- (id)copy
.
.
.
Reference Count System
- (id)init
- (id)retain
- (oneway void)release
Reference Count System
- (id)init
- (id)retain
- (oneway void)release
{
.
	 .
	 .
	 retrainCount=1;
	 .
}
Reference Count System
- (id)init
- (id)retain
- (oneway void)release
{
.
	 .
	 .
	 retrainCount=1;
	 .
}
{
	retrainCount+=1;
return self;
}
Reference Count System
- (id)init
- (id)retain
- (oneway void)release
{
.
	 .
	 .
	 retrainCount=1;
	 .
}
{
	retrainCount+=1;
return self;
}
{
	retrainCount-=1;
	 if (retrainCount==0) [self dealloc];
}
잘못된 메모리 관리
int main (int argc, const char * argv[]) {
NSNumber *var1 = [[NSNumber alloc] init];
NSNumber *var2 = [[NSNumber alloc] init];
NSNumber *var3 = [[NSNumber alloc] init];
NSNumber *var4 = [[NSNumber alloc] init];
var2 = [[NSNumber alloc] init];
[var3 release];
[var3 isEqualToNumber: var1];
return 0;
}
잘못된
 메모리관리
잘못된
 메모리관리
Heapstack
Heapstack
NSNumber *var1 = [[NSNumber alloc] init];
Heapstack
object1var1
NSNumber *var1 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
NSNumber *var2 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
NSNumber *var3 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
object4
var4
NSNumber *var4 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
object4
var4
var2 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
object4
var4
object5
var2 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
object4
var4
object5
var2 = [[NSNumber alloc] init];
Heapstack
object1var1
object2var2
object3var3
object4
var4
object5
var2 = [[NSNumber alloc] init];
memory
leak
Heapstack
object1var1
object2var2
object3var3
object4
var4
object5
[var3 release];
memory
leak
Heapstack
object1var1
object2var2
var3
object4
var4
object5
[var3 release];
memory
leak
Heapstack
object1var1
object2var2
var3
object4
var4
object5
[var3 isEqualToNumber: var1];
memory
leak
Heapstack
object1var1
object2var2
var3
object4
var4
object5
[var3 isEqualToNumber: var1];
memory
leak
dangling
pointer
Ownership Policy
alloc
 을
 사용한
 인스턴스
 생성
copy를
 사용한
 인스턴스
 복사
retain을
 사용한
 보존
자기
 몫의
 retainCount
 ‘1’을
 가지는
 것
인스턴스
 객체의
 오너만이
 그
 인스턴스의

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹炎炎夏日學 Android 課程 -  Part1: Kotlin 語法介紹
炎炎夏日學 Android 課程 - Part1: Kotlin 語法介紹
 
Introduction à spring boot
Introduction à spring bootIntroduction à spring boot
Introduction à spring boot
 
Kotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is comingKotlin Coroutines. Flow is coming
Kotlin Coroutines. Flow is coming
 
Practical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme ChangePractical QML - Key Navigation, Dynamic Language and Theme Change
Practical QML - Key Navigation, Dynamic Language and Theme Change
 
React storybook
React storybookReact storybook
React storybook
 
Kotlin Coroutines in Practice @ KotlinConf 2018
Kotlin Coroutines in Practice @ KotlinConf 2018Kotlin Coroutines in Practice @ KotlinConf 2018
Kotlin Coroutines in Practice @ KotlinConf 2018
 
Rich domain model
Rich domain modelRich domain model
Rich domain model
 
Kotlin Collections
Kotlin CollectionsKotlin Collections
Kotlin Collections
 
Spring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrineSpring boot anane maryem ben aziza syrine
Spring boot anane maryem ben aziza syrine
 
Javascript Prototypal Inheritance - Big Picture
Javascript Prototypal Inheritance - Big PictureJavascript Prototypal Inheritance - Big Picture
Javascript Prototypal Inheritance - Big Picture
 
Java 8-streams-collectors-patterns
Java 8-streams-collectors-patternsJava 8-streams-collectors-patterns
Java 8-streams-collectors-patterns
 
Java Class Design
Java Class DesignJava Class Design
Java Class Design
 
Android kotlin coroutines
Android kotlin coroutinesAndroid kotlin coroutines
Android kotlin coroutines
 
React + Redux. Best practices
React + Redux.  Best practicesReact + Redux.  Best practices
React + Redux. Best practices
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
Polymorphisme
PolymorphismePolymorphisme
Polymorphisme
 
Javascript Design Patterns
Javascript Design PatternsJavascript Design Patterns
Javascript Design Patterns
 
Functional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis AtencioFunctional Programming in JavaScript by Luis Atencio
Functional Programming in JavaScript by Luis Atencio
 
POO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et PolymorphismePOO Java Chapitre 4 Heritage et Polymorphisme
POO Java Chapitre 4 Heritage et Polymorphisme
 
Java 8 - interfaces
Java 8 - interfacesJava 8 - interfaces
Java 8 - interfaces
 

Andere mochten auch (9)

[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법[Objective-C] Objective-C의 메모리 관리 방법
[Objective-C] Objective-C의 메모리 관리 방법
 
파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304파이썬+주요+용어+정리 20160304
파이썬+주요+용어+정리 20160304
 
파이썬 기초
파이썬 기초 파이썬 기초
파이썬 기초
 
Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815Python_numpy_pandas_matplotlib 이해하기_20160815
Python_numpy_pandas_matplotlib 이해하기_20160815
 
파이썬 심화
파이썬 심화파이썬 심화
파이썬 심화
 
파이썬 Special method 이해하기
파이썬 Special method 이해하기파이썬 Special method 이해하기
파이썬 Special method 이해하기
 
python 수학이해하기
python 수학이해하기python 수학이해하기
python 수학이해하기
 
프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법프로그래머가 알아야 하는 메모리 관리 기법
프로그래머가 알아야 하는 메모리 관리 기법
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
 

Ähnlich wie iOS 메모리관리

Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
knight1128
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
Jaehoonyam
 

Ähnlich wie iOS 메모리관리 (20)

Java Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte CodeJava Virtual Machine, Call stack, Java Byte Code
Java Virtual Machine, Call stack, Java Byte Code
 
Java mentoring of samsung scsc 2
Java mentoring of samsung scsc   2Java mentoring of samsung scsc   2
Java mentoring of samsung scsc 2
 
Introduction to Apache Tajo
Introduction to Apache TajoIntroduction to Apache Tajo
Introduction to Apache Tajo
 
Apache avro
Apache avroApache avro
Apache avro
 
Jdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamicJdk(java) 7 - 5. invoke-dynamic
Jdk(java) 7 - 5. invoke-dynamic
 
I phone 2 release
I phone 2 releaseI phone 2 release
I phone 2 release
 
Blockchain 2nd ethereum_core
Blockchain 2nd ethereum_coreBlockchain 2nd ethereum_core
Blockchain 2nd ethereum_core
 
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
(IT실무교육/국비지원교육/자바/스프링교육추천)#15.스프링프레임워크 & 마이바티스 (Spring Framework, MyBatis)
 
Nodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjsNodejs, PhantomJS, casperJs, YSlow, expressjs
Nodejs, PhantomJS, casperJs, YSlow, expressjs
 
7가지 동시성 모델 람다아키텍처
7가지 동시성 모델  람다아키텍처7가지 동시성 모델  람다아키텍처
7가지 동시성 모델 람다아키텍처
 
Kubernetes & helm 활용
Kubernetes & helm 활용Kubernetes & helm 활용
Kubernetes & helm 활용
 
Gcd ppt
Gcd pptGcd ppt
Gcd ppt
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
병렬 프로그래밍
병렬 프로그래밍병렬 프로그래밍
병렬 프로그래밍
 
Node.js at OKJSP
Node.js at OKJSPNode.js at OKJSP
Node.js at OKJSP
 
JVM 메모리 해부학
JVM 메모리 해부학JVM 메모리 해부학
JVM 메모리 해부학
 
Webrtc 허영남 20150528
Webrtc 허영남 20150528Webrtc 허영남 20150528
Webrtc 허영남 20150528
 
Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.Node.js 팀 스터디 발표자료.
Node.js 팀 스터디 발표자료.
 
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
제 10회 엑셈 수요 세미나 자료 연구컨텐츠팀
 
Mem cached
Mem cachedMem cached
Mem cached
 

Mehr von Changwon National University

Mehr von Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 4 슬라이싱
14 4 슬라이싱14 4 슬라이싱
14 4 슬라이싱
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 

iOS 메모리관리