반응형
Notice
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 딥러닝
- 머신러닝
- Yes
- 데이터분석
- 사이버보안
- 네트워크보안
- 웹개발
- 알고리즘
- 빅데이터
- 컴퓨터과학
- 소프트웨어공학
- 컴퓨터공학
- 인공지능
- I'm Sorry
- 프로그래밍
- 컴퓨터비전
- 디자인패턴
- 데이터과학
- 데이터베이스
- 자료구조
- 버전관리
- 파이썬
- 데이터구조
- 프로그래밍언어
- 클라우드컴퓨팅
- 네트워크
- 자바스크립트
- 보안
- 소프트웨어
- springboot
Archives
- Today
- Total
스택큐힙리스트
3 개의 Objective-C 프로젝트에서 extern에 대한 질문 설명 본문
반응형
아무 메서드나 변수를 선언하기 전에 extern 키워드를 사용하면, 전역변수로 설정되어 프로젝트 전체에서 읽고 쓸 수 있나요?
키워드 앞에 extern을 사용할 경우, 프로젝트의 일부에서만 접근할 수 없을 가능성이 있나요? 예를 들어 protected처럼 서브클래스에서만 접근할 수 있는 경우 등.
extern은 C의 키워드 맞나요? Objective-C에서는 해당하는 키워드가 있는 건가요? 실제로 Objective-C 프로젝트에서 C의 키워드를 사용하는 이유는 잘 이해가 되지 않습니다.
감사합니다.
답변 1
// MONClass.m
static const size_t MONClassMaximumThreads = 23;
@implementation MONClass
@end
불행히도, objc로 이 상수를 보호하기에는 동일하게 간단하거나 일반적인 방법이 없습니다.
마지막으로, 클래스별로 숫자가 다르게 되는 경우 클래스 메서드를 사용할 수도 있습니다:
@interface MONMammal : NSObject
+ (NSUInteger)numberOfLegs;
@end
@implementation MONDog
+ (NSUInteger)numberOfLegs { return 4; }
@end
@implementation MONHuman
+ (NSUInteger)numberOfLegs { return 2; }
@end
3) 예, 다른 언어들 중에도 있습니다. 예를 들어, c++ 번역에서 extern const int Something을 사용하면, c++ 번역에서는 Something을 extern C++ 심볼로 선언한 것을 찾게 됩니다. objc에는 대체할 것이 없습니다; objc는 C의 모든 기능을 상속한 C의 상위 집합입니다. extern의 사용은 올바른 형식을 갖추고 있으며, 사용하는 프레임워크(예: Foundation)에서도 찾을 수 있습니다. 이를 사용하는 이유는 링커 지정이 필요하기 때문입니다. objc에는 대체할 것이 없는데, 아마도 대체나 확장이 필요하지 않았기 때문일 것입니다.
이를 피하기 위해서, 다음과 같이 #define을 사용하세요:
#if !defined(__cplusplus)
#define MONExternC extern
#else
#define MONExternC extern C
#endif
MONExternC const size_t MONClassMaximumThreads;
답변 2
Externer 사용 시 고려해야 할 3가지 질문에 대한 SEO 친화적인 한국어 글외부 라이브러리 또는 프레임워크를 Objective-C 프로젝트에 통합하는 것은 많은 이점을 제공합니다. 그러나 어떤 경우에는 이러한 외부 의존성을 추가하기 전에 몇 가지 질문을 고려해야 할 수도 있습니다. 본 글에서는 Extern(Extern 선언)을 사용하여 Objective-C 프로젝트에 통합할 때 고려해야 할 3가지 질문에 대해 다룰 것입니다.
1. 외부 라이브러리나 프레임워크의 성능은 어떠한가요?
외부 라이브러리나 프레임워크의 통합은 애플리케이션의 성능에 직접적인 영향을 미칠 수 있습니다. 때로는 라이브러리가 느리거나 비효율적인 코드를 포함하고 있어서 응답 시간이 느려지거나 메모리 소비량이 증가할 수 있습니다. 따라서 외부 라이브러리의 코드 품질과 성능을 평가하는 것은 매우 중요합니다. 이를 위해 개발자는 라이브러리의 문서를 검토하고, 커뮤니티에서 다른 사용자들의 리뷰를 참고해야 합니다. 외부 라이브러리의 성능은 애플리케이션의 사용자 경험에 직접적인 영향을 미치기 때문에, 가능한 한 가장 최신 버전을 사용하고 관련 문제에 대해 주기적으로 모니터링하는 것이 좋습니다.
2. 외부 라이브러리나 프레임워크의 지속적인 지원은 보장되나요?
Objective-C 프로젝트에서 외부 라이브러리를 사용하면, 해당 라이브러리가 지속적으로 업데이트되고 지원되는지 확인해야 합니다. 외부 라이브러리 없이 프로젝트를 진행하는 경우, 애플이 제공하는 업데이트와 지원을 받을 수 있습니다. 그러나 외부 의존성을 추가하면 해당 라이브러리가 호환성 문제로 인해 애플의 업데이트와 충돌할 수도 있습니다. 또한, 개발자 커뮤니티의 지속적인 지원이 중요합니다. 라이브러리 또는 프레임워크를 사용하는 다른 개발자들과 소통하면서 지원 및 문제 대응에 대한 피드백을 받을 수도 있습니다. 따라서 외부 라이브러리 사용 전에 지속적인 업데이트와 지원을 보장하는지 확인해야 합니다.
3. 외부 라이브러리의 라이선스 규정이 이해되고 준수되는지 확인했나요?
외부 라이브러리나 프레임워크의 사용은 종종 소프트웨어 라이선스 규정에 따라야 합니다. 각각의 라이브러리는 고유한 라이선스를 가지고 있으며, 이를 준수하지 않을 경우 법적 문제가 발생할 수 있습니다. 라이선스가 상용 라이선스인 경우, 상업적 목적으로 사용하는 경우 추가 비용이 발생할 수도 있습니다. 따라서 외부 라이브러리를 프로젝트에 통합하기 전에 라이선스를 신중하게 검토하고 이해하는 것이 중요합니다. 개발자는 라이브러리의 라이선스가 프로젝트 요구사항과 일치하는지 확인하고, 필요에 따라 적절한 대체 라이브러리를 찾을 필요가 있습니다.
결론적으로, Extern 또는 외부 라이브러리의 사용은 Objective-C 프로젝트에 유용하고 효과적일 수 있습니다. 그러나 외부 라이브러리의 성능, 지속적인 지원, 그리고 라이선스 규정을 고려해야 합니다. 이러한 질문에 대한 충분한 고려는 프로젝트의 안정성, 성능, 법적 문제 등을 고려할 수 있도록 도와줄 것입니다.
반응형
Comments