-
[쉽게 이해하는 개발] .so와 .a 파일쉽게 이해기 시리즈/쉽게 이해하는 개발 2023. 12. 7. 02:48
🌟📚 .so 파일과 .a 파일의 차이점 🌟📚
안녕하세요! AI 궤도민수입니다. 🤖 오늘은 .so 파일과 .a 파일의 차이점에 대해 재미있고 쉽게 설명해 드릴게요!
원래 개념 비유적인 설명 .so 파일 (공유 라이브러리) 도서관의 공유 책 .a 파일 (정적 라이브러리) 개인 소장용 책 비유적인 설명 📚
상상해보세요! 여러분이 프로그램을 만드는 건 마치 책을 쓰는 것과 비슷해요. 프로그램을 만들 때 필요한 코드 조각들은 책에서 정보를 찾는 것처럼 다양한 라이브러리에서 찾을 수 있어요.
- .so 파일 (공유 라이브러리): 이건 마치 도서관에서 빌려 쓸 수 있는 공유 책 같아요. 프로그램들이 필요할 때마다 도서관에 가서 이 책을 빌려 쓰는 거죠. 이렇게 하면 많은 프로그램들이 같은 책(코드)을 공유할 수 있어서 공간도 절약되고, 책(라이브러리)을 업데이트 할 때도 한 권만 바꾸면 돼서 편리해요.
- .a 파일 (정적 라이브러리): 이건 마치 여러분이 직접 책을 사서 개인 책장에 두는 것과 같아요. 프로그램이 실행될 때마다 이 책(코드)을 직접 가지고 있으니, 도서관에 갈 필요가 없어요. 이 방법은 프로그램이 항상 필요한 정보를 가지고 있기 때문에 도서관에 가서 책을 빌릴 필요가 없어서 더 빠를 수 있어요. 하지만 모든 프로그램이 자기만의 책을 가지고 있기 때문에 공간을 더 차지해요.
더 쉬운 설명 🎈
- .so 파일 (공유 라이브러리): 많은 사람들이 같이 쓸 수 있는 도서관 책 같아요. 한 권의 책을 여러 사람이 공유하니 효율적이에요!
- .a 파일 (정적 라이브러리): 개인이 소장하는 책처럼, 프로그램마다 자기만의 복사본을 가지고 있어요. 더 빠르지만 공간을 더 차지하죠.
원래의 지식 📖
- .so 파일 (공유 라이브러리): 이 파일들은 실행 시간에 메모리에 로드되며, 여러 프로그램이 동시에 같은 라이브러리 코드를 공유할 수 있어 메모리 사용량을 줄입니다. 또한, 라이브러리를 업데이트할 때 프로그램을 다시 컴파일할 필요가 없어 유지보수가 용이합니다.
- .a 파일 (정적 라이브러리): 이 파일들은 프로그램이 컴파일될 때 프로그램의 실행 파일 안에 포함됩니다. 이 방식은 프로그램이 라이브러리의 별도 버전에
- 의존하지 않아 독립적으로 실행되지만, 파일 크기가 커지고 같은 라이브러리를 사용하는 다른 프로그램들과 코드를 공유하지 못합니다.
😊 어려운 지식을 쉽게 알려주는 GPTs사용하기 : https://chat.openai.com/g/g-Sei8mv1A6-ai-gwedominsu
'쉽게 이해기 시리즈 > 쉽게 이해하는 개발' 카테고리의 다른 글
[쉽게 이해하는 개발] 추상클래스, 추상메서드, 인터페이스 (0) 2023.12.07 [쉽게 이해하는 개발] 서블릿(Servlet)과 디스패처 서블릿(Dispatcher Servlet) (1) 2023.12.07 [쉽게 이해하는 개발] System Call(시스템 콜) (1) 2023.12.06 [쉽게 이해하는 개발] Base64 인코딩 (1) 2023.12.06 [쉽게 이해하는 자바] 오브젝트 맵퍼 (1) 2023.12.05