티스토리 뷰

[환히 알기] 머릿말을 달고 쓰는 글은 우분투OS의 한 무른모를 시원스럽게 알게하기 위해 쓰는 글로 우분투계의 고급정보가 될 것으로 자신합니다. 그러나 그 만큼 작성기간이 길기 때문에 일단 공개 후 내용을 더해나갈 계획입니다. 존댓말로 쓰자니 내용이 길어져 반말로 축약합니다. 이해하세요.

시냅틱 꾸러미(패키지) 관리자 : Synaptic Package Manager

MS윈도와 달리 우분투는 저장소란 곳을 정해 두고 여기서 무른모(software)들을 공급받는다. 시냅틱 꾸러미 관리자는 이런 꾸러미 형태로 제공되는 무른모 목록을 관리하고, 꾸러미를 받아다 설치하거나, 설치한 무른모를 삭제하거나 판올림(update) 할 수 있게 해주는 강력한 도구다.

시냅틱- 시냅틱이란 신경세포 연결부위를 뜻하지만 여기서는 단순히 무른모 이름으로 쓰였다. 꾸러미- 무른모 덩어리. 보통 무른모는 실행하는 부분, 참고자료 부분(Library) 등으로 구성된다. 시냅틱은 이를 하나로 싼 꾸러미 단위로 관리한다. 관리자- 관리하는 자. 

실행: [시스템]-[관리]-[시냅틱 패키지 관리자]

1. 차림표: 상세한 내용은 아래에 다룬다.
2. 명령 아이콘: 다시 읽기, 판올림 모두 표시(업그레이드 모두 표시), (선택한 내용) 적용, 꾸러미 정보보기, 꾸러미 찾아보기(빠른 검색), 꾸러미 자세하게 찾아보기(검색)로 구성돼 있다.
3. 분류창4. 분류 누르개: 밑의 분류 누르개에 따라 분류창에 꾸러미 분류가 뜹니다. 처음 분류는 사용분야에 따라 꾸러미 목록을 보여주고, '상태'는 설치여부와 설치 형태에 따라 꾸러미를 분류해 보여준다. '출처'는 저장소 별로 갖추고 있는 꾸러미를 보여주고, '사용자 정의 필터'는 미리 정의된 거르개에 따라 꾸러미를 분류해 보여준다. 거르개 기준을 바꾸는 방법은 차림표 [설정]-[필터] 설명 참고. '검색 결과'는 빠른 검색 또는 검색으로 찾은 꾸러미들을 보여준다.
5. 목록창: 꾸러미 목록을 보여준다. 꾸러미 목록 앞에 있는 상자를 눌러 설치/제거 등을 선택할 수 있다. 상세한 내용은 [꾸러미] 부분 설명 참고.
6. 설명창: 꾸러미에 대한 상세한 정보를 보여준다.

시냅틱 꾸러미로 할 수 있는 일?
1) 내 컴퓨터에 설치된 꾸러미(무른모) 목록을 출력해, 다른 컴퓨터로 옮기거나, 새로 설치 후 이전 환경을 간단하게 고스란히 재현하는데 사용할 수 있다.
2) 꾸러미를 따로 내려받아 저장하거나, 다른 컴퓨터에서 내려 받도록 명령줄을 만들 수 있다.
3) 특정 기능 구현 (예를 들면 이메일 서버나 자료 서버)을 위한 꾸러미를 한꺼번에 선택/설치할 수 있게 해준다.
4) 판올림할 꾸러미를 솎아서 설치할 수 있게 해준다.
5) 불필요한 꾸러미를 완전히 지울 수 있게 해준다.
 
시냅틱 꾸러미의 정체는?

시냅틱의 정체는 터미널에서 작동하는 APT 꾸러미 관리자를 그림으로 사용(GUI)할 수 있도록 껍질을 입힌 것(front-end)이다. 터미널에서 무른모를 설치할 때 'sudo apt-get install 무른모 이름', 무른모를 지울 때 'sudo apt-get remove 무른모 이름' 을 글자로 쳐서 실행하는 대신, 목록을 보면서 마우스로 꾸러미를 골라 지우거나 설치할 수 있게 해준다. 시냅틱(또는 APT)는 인터넷에 있는 무른모 창고, '저장소'에서 무른모를 가져다 설치하게 돼 있다.

자~ 이제부터 기능을 파헤쳐 보자.  '푸른글씨'는 나의 새 번역 제안이다.

파일: 설치한 목록을 복사해서 옮길 수 있다.



파일 아래 차림표

표시 모음 읽기: '설치한 꾸러미 목록 읽기'
설치된 무른모 목록을 저장해 둔 것을 읽는 기능. 즉 꾸러미 관리자를 이용해 설치된 무른모 목록을 저장해 두었다가 이 기능으로 읽어서 적용하기가 가능하다.

표시 모음 저장: '설치한 꾸러미 목록 저장'
설치한 무른모 목록을 저장할 수 있다. 처음 실행하면 저장할 문서이름을 묻지만, 한 번 문서이름을 저장해주면 그 때부터는 자동으로 그 문서에 설치한 무른모 목록을 저장한다. 이 문서를 우분투가 설치된 다른 PC로 옮겨서 표시 모음 읽기(설치한 꾸러미 목록 읽기)를 해주면 좌라락~ 설치가 된다. 즉 무른모 구성을 고스란히 옮길 수 있다.

표시 모음을 다른 이름으로 저장: '설치한 꾸러미 목록을 다른 이름으로 저장'
설치한 무른모 목록을 다른 이름으로 저장할 수 있다.

패키지 다운로드 스크립트 만들기: '꾸러미 내려받기 명령줄 만들기'
'설치 표시'해 놓은 꾸러미를 내려받기(download)위한 명령줄을 만들 수 있다. 명령줄을 만들어 다양한 활용이 가능하다. 1) 기본 저장소가 아닌 개인적으로 설치한 저장소에서 받은 꾸러미 전달: 예를 들어 우분투 기본 저장소 외에 사용자가 추가한 저장소에서 내려받은 꾸러미를 다른 PC로 전달하려면 이 명령으로 명령줄을 만들면 유용하다. 2) 꾸러미 추출: 특정 무른모를 꾸러미로 내려받아 두고 싶다면, 명령줄을 만들어서 실행하면 꾸러미를 받을 수 있다.

'X용 백묵글꼴 꾸러미 내려받기 명령줄 만들기'
시냅틱을 이용해 실제로 꾸러미 내려받기 명령줄을 만들어보자. 

1) '빠른 검색' 창에 baekmook을 입력.
2) x-fonts-beakmook 앞에 상자를 마우스 오른쪽 누르개로 눌러 '설치 표시' 선택
3) [파일]-[패키지 다운로드 스크립트 만들기] 선택
4) 이름을 묻는 란에 'beakmook' 이라고 입력. (이름은 편한대로 정하면 됨)

위에서 만든 명령줄은 [프로그램]-[보조 프로그램]- [터미널]에서 실행할 수 있다.
sh baekmook
실행 결과로 xfonts-baekmuk_2.2-3_all.deb 꾸러미가 저장될 것이다.

다운로드한 패키지 추가: '내려받은 꾸러미 목록에 추가'
인터넷(또는 다른 시냅틱에 등록 안된 저장소)에서 받은 꾸러미를 시냅틱에 추가한다. 이렇게 하면 시냅틱으로 관리하는 편의를 누릴 수 있다. 예를 들면 virtualbox 꾸러미 같은 우분투 저장소 없는 꾸러미를 가져다 설치하기 전에 저장소 목록에 추가해주면 시냅틱에서 관리하게 된다.

기록: '꾸러미 관리기록'
이때까지 꾸러미를 설치/제거/완전제거/판올림한 내용을 날짜별로 볼 수 있다. 일종의 무른모 관리기록인 셈. 컴퓨터에 무슨 일이 벌어지고 있는지 확인할 수 있는 우분투의 편리한 점 중 하나다.여기서  제거는 꾸러미(무른모)만 제거하는 것이고, 완전제거는 무른모와 무른모 설정 자료까지 지우는 것을 말한다.
(판올림은 '갱신'이라고 표시되는데, 그냥 '판올림'이라고 하거나 '판바꿈' 이라고 하면 좋을 듯.)

나가기:
시냅틱을 끝낸다

편집: 선택한 내용을 지지고 볶을 수 있다.

실행취소: '꾸러미 선택 취소';
바로 전에 선택한 내용을 취소한다. 설치한 꾸러미가 지워지거나 하진 않는다. 별로 쓸 기회가 많지 않은 기능.

다시하기: '꾸러미 선택 되돌리기'
실행취소 했던 내용을 되돌린다. 즉 선택한 내용을 되돌린다. 역시 쓸 기회가  많지 않은 기능.

모든 표시 지우기: '모든 선택 취소하기'
설치/제거/완전제거/판올림 선택한 내용을 모두 지운다. 꾸러미가 지워지는 것이 아니라 선택한 것이 지워지는 것 뿐.

검색: 꾸러미 검색하기. 받고자 하는 꾸러미를 검색합니다. '빠른 검색' 기능에 밀려 자주 쓰지는 않는 기능.

패키지 정보 새로 고치기: '꾸러미 정보 새로 고치기' 저장소 목록을 새로 고친다.

씨디롬 추가: '저장소로 CD/DVD 추가' 꾸러미가 담긴 CD를 저장소에 추가 한다.

업그레이드 모두 표시: '판올림된 꾸러미 모두 선택'
설치된 꾸러미 중에서 새로운 판이 나온 꾸러미들을 모두 선택해준다. [터미널]에서 sudo apt-get upgrade 와 거의 같은 명령이다.

망가진 패키지 고치기: '망가진 꾸러미 고치기'
작동하지 않는 꾸러미를 고친다. 가끔 꾸러미에 있어야할 내용이 안들어가 있거나, 서로 충돌이 일어나는 요소들이 들어있거나 하면 고쳐준다. (최소한 고치려고 시도한다.) 100% 수리율을 자랑하는 것은 아니다. 또 대부분 사용자들은 이 기능의 존재를 모르거나, 거의 사용하지 않는다.

작업 기준으로 패키지 표시: '특정 기능 구현 꾸러미 선택'
우분투의 편집 항목중 가장 쓸만한 부분 아닐까 싶다. 특정 용도에 따른 꾸러미를 모두 골라 선택-설치해 준다. 예를 들면 우분투 서버, 삼바 서버, 메일서버, 톰켓 서버 등 구현을 위해 필요한 꾸러미를 한꺼번에 고를 수 있다. 각 종 서버 뿐만 아니라 우분투를 교육용 에듀분투로 변신시키기 위한 꾸러미도 한꺼번에 선택해 설치할 수 있게 도와준다. 상당히 편리.

표시한 변경 사항 적용: '선택한 내용 적용'
설치/제거/완전제거/판올림 선택한 내용을 적용한다. 평소 이 명령어는 비활성화 상태지만  선택한 내용이 있으면 활성화 된다. 제거나 완전제거시에는 정말 필요없는 꾸러미 인지 다시 한번 숙고할 것. 밑에 적용 누르개가 같은 기능을 하고 있어 자주 사용되는 명령은 아니다.

꾸러미: (패키지) 꾸러미를 마음대로 관리한다. 꾸러미에 마우스를 올린 상태에 오른쪽 누르개를 누르면 등장하는 차림표와 상당부분 일치한다.

표시 지우기: '선택 취소'
설치/제거/완전제거/판올림 등 선택한 내용을 취소한다.

설치 표시:
설치되지 않은 꾸러미를 선택하면 활성화 된다. 선택한 꾸러미를 설치하도록 표시한다. 시냅틱은 마치 영수증에 구매 항목을 기입해 놓았다가 한꺼번에 결제하는 형식으로 작동한다. 설치 표시는 영수증에 항목을 올리는 것과 같다. 꾸러미를 선택해 마우스 오른쪽 누르개를 눌러서 같은 명령을 실행할 수 있다.

재설치 표시:
설치한 꾸러미를 선택하면 활성화 된다. 다시 설치하도록 표시한다.

업그레이드 표시: '판올림 표시'
설치한 꾸러미가 저장소에 판올림 돼 있으면 활성화 된다. 선택하면 꾸러미(무른모)가 판올림 된다.

제거표시:
설치한 꾸러미를 선택하면 활성화된다. 설치한 꾸러미(무른모)를 PC에서 제거하돼, 사용자 설정은 남겨두고 지우게 된다. 무른모에 문제가 있어서 지우는 것이 아니고, 또 설치할 가능성이 있다면 이 방식으로 제거를 권한다.

완전히 제거 표시:
설치한 꾸러미를 선택하면 활성화된다. 설치한 꾸러미(무른모)와 사용자 설정을 PC에서 제거한다. 특정 무른모에 해결되지 않는 문제가 있거나, 설정을 잘못건드려 문제가 생겼다면 이 방식으로 제거를 권한다. 단순히 완전히 지워야 직성이 풀리는 마이크 시에라 같은 사람들도 자주 사용한다.

잠긴 버전: '꾸러미 판 고정하기'
꾸러미를 특정 판에 고정한다. 예를 들어 현재 설치한 1.0은 내 PC에서 문제가 없는데 1.1판에서 문제가 있는 꾸러미가 있다면 잠긴 버전('꾸러미 판 고정하기')를 이용해 판올림(upgrade) 대상에서 제외할 수도 있다. 내  PC에 맞춰 놓은 무른모가 함부로 판올림 되는 것을 막기 위해 유용한 명령이다. *

자동으로 설치됨: '꾸러미 자동 판올림'
판올림된 꾸러미가 있다면 사용자에게 설치여부를 묻지만, 이 명령을 꾸러미에 적용하면, 질문하지 않고 자동으로 판올림 해준다.

버전강제: '강제로 특정 판 설치하기'
꾸러미(무른모)를 특정 판으로 강제 설치한다. 예를 들어 우분투 저장소에는 들지 않은 높은 판을 강제로 설치한다거나, 현재 판보다 낮은 판을 강제설치할 때 사용할 수 있지만, 사용자가 원하는 꾸러미(.deb)를 인터넷에서 받아다가 직접설치하는 것이 일반화 돼 있어 이 명령은 자주 쓰이지는 않는다.

구성: '꾸러미 구성보기'
꾸러미의 구성 내용을 본다. 대부분 꾸러미에서 지원하지 않는다. 밑에 있는 '등록 정보'가 더 상세한 내용을 제공해준다.

Changelog 다운로드: '꾸러미 판올림 내용 받아보기'
꾸러미의 판올림 내용을 저장소에서 내려받아 볼 수 있다. 1.0 때는 어떠했고, 하는 정보에 관심있다면 보시라.

등록정보:
아래처럼 꾸러미의 자세한 내용을 보여준다.

등록정보를 통해 볼 수 있는 내용들:

공통사항
('일반적인 내용'): 꾸러미에 대한 명칭, 설치상태, 관리자(개발자) 정보 등을 보여준다.
의존성: 해당 꾸러미를 설치하기 위해 먼저 설치해야할 꾸러미(무른모나 참고자료)를 보여준다.
설치된 파일('설치 내용'): 해당 꾸러미가 설치됐으면, 어느 폴더에 분산 설치됐는지 설치된 내역을 보여준다. (리눅스 무른모들은 하나의 폴더에 몰려 설치되지 않고, 기능별로 나눠진 폴더에 설치되는 특징이 있다.)
버전 ('판'): 저장소에 있는 꾸러미들을 판별로 보여준다. 보통 한 개의 판이 있지만, 저장소를 여럿을 더하면 여러 판이 존재할 수도 잇다. 예를 들면 0.9판, 1.0판, 1.1판이 같이 보일 수 있다.
설명: 꾸러미(무른모)에 대한 설명. 아직 많은 꾸러미 설명이 영어로 남아있고, 우리말로 나온 것도 단순 번역에 불과할 때가 많아 사용자 입장에서 친절한 번역이 우분투 사용 인구 확대를 위해 필요하다고 본다.


설정: 잘못 건드리면 지뢰밭

기본 설정:
시냅틱에서 보이는 부분을 설정할 수 있다. 상세설명은 아래 부분 참조.

저장소: '저장소 설정'
우분투 상단 차림표의 [시스템]-[관리]-[소프트웨어 소스] 와 같은 기능을 부른다.  '소프트웨어 소스'를 '저장소'로 바꿔 통일했으면 하는 바램.

필터: '검색 조건 설정'
시냅틱의 검색 조건을 바꿀 수 있다. 좌측 분류 누르개 중에 '사용자 정의 필터'('사용자 정의 거르개')를  눌렀을 때 보여줄 항목을 구성할 수 있다. 그러나 대부분 사용자는 굳이 거르개 내용을 바꿀 이유가 없기 때문에 사용도가 낮은 부분으로 보인다.

내부 옵션 설정: '선택사항 설정'
대부분 사용자에게 검색 조건 설정(필터) 보다 사용도가 낮은 부분이다. 무른모를 사용자 마음대로 할 수 있는 자유도가 높은 것이 우분투의 특정이지만, 일반 사용자가 거의 쓸 일 없는 부분은 없애거나, '전문가용'으로 설치해야 차림표가 보이게 하면 어떨지?

도구모음: '도구 모음 표시 설정'
아랫 부분에 도구 모음 표시를 설정한다. 기본 값은 '아이콘 아래 글자' 

*기본적으로 차림표 이름에서 뒷부분 '설정'을 빼던가 앞에 '기본 설정'처럼 전부 넣어주던가 해서 통일성을 줬으면 한다.


기본설정 상세내용


'일반' 갈피

메인 창에 패키지 등록정보 표시: '설명 창에 꾸러미 등록 정보 표시'
시냅틱에서 [패키지]-[등록정보]를 선택했을 때 보여주는 알반적인 내용(공통사항), 의존성, 설치 내용(설치된 파일), 판(버전), 설명 등을 아래쪽 설명 창에 항상 표시해 준다.

다른 패키지에 영향주는 변경사항은 계속할지 물어보기: '다른 무른모의 의존 꾸러미 상태변경 전에 묻기'
무른모가 의존하고 있는 꾸러미를 삭제하거나 지우기 전에 사용자에게 물어볼지 설정한다. 당연히 켜두는 것이 좋다. 의존 대상 꾸러미(무른모)를 지우면 무른모가 작동하지 않을 수 있다.

추천하는 패키지를 의존성으로 간주: '추천 꾸러미를 의존 꾸러미로 간주하기'
라는 특정 꾸러미(무른모)의 성능을 높이거나, 추가 동작을 하게 해주는 등 연관된 꾸러미가 있다면 시냅틱은 설치를 추천한다. 이런 추천 꾸러미를 의존 꾸러미로 간주하면, 꾸러미를 설치할 때 추천 꾸러미도 반드시 설치해야 된다. 기능을 풍부하게 쓰고 싶다면, 표시해 두는 것이 좋다. 무른모 설치공간을 되도록 잡을 계획이라면 표시하지 않고 골라설치하는 방법도 있다.

상태 아이콘 표시를 클릭하면 가장 적합한 명령을 취하기: '표시 상자를 누르면 자동으로 명령 입력'
각 꾸러미 이름 앞에 있는 표시 상자를 누르면 알아서 명령을 택한다. 설치 않된 꾸러미는 설치표시, 설치표시 된 것은 취소 등등. 이 설정을 해주지 않으면 명령을 물어본다. 굳이 사용하지 않아도 될 기능.

시스템 업그레이드: '판올림 정책'
똑똑한 업그레이드 ('알아서 필요한 꾸러미 판올림'): 특정 꾸러미를 판올림 하면서 필요한 꾸러미(의존대상 꾸러미)가 있으면 알아서 설치해준다. 이것 선택을 권장.
기본 업그레이드 ('판올림된 꾸러미만 설치'): 의존성과 상관없이 새 판이 나온 꾸러미만 오로지 판올림 해준다. 만약 판올림한 무른모가 동작하는데 새로 의존하게 된 꾸러미가 있는데 설치가 안되면 오작동의 원인이 되므로 수동 판올림은 권하지 않는다.
항상 물어보기: 판올림 꾸러미가 발견되면 설치할지 하나 하나 물어본다. 판올림시 내 컴퓨터에 설치되는 모든 무른모 이름을 확인하고 싶다면 선택. 그러나 이렇게 까지 할 이유가 있을까?

오래된 패키지 정보 새로 고치기: '꾸러미 정보 바꾸기 정책'
항상 물어보기: 새 꾸러미가 나오면 예전 판 꾸러미를 대체할 것인지 묻는다.
무시 ('바꾸지 않기'): 새 꾸러미가 나와도 현재 시냅틱의 꾸러미를 대체하지 않는다.
자동 ('알아서 바꾸기'): 새 꾸러미가 나오면 자동으로 새 꾸러미로 바꾼다.

실행 취소 횟수: '접속 시도 최대횟수' 의 오역으로 추정된다.
꾸러미 내용을 갱신하기 위해 저장소와 접속하는 최대 횟수를 지정한다. 이 숫자 이상 시도를 해도 접속이 안되면 에러 안내를 출력하는 기능으로 역시 추정된다.

터미널 창에서 변경사항 적용:
꾸러미를 설치하거나 제거할 때 터미널을 열어 설치 상황을 표시해준다. 터미널에 익숙한 사용자라면 이 항목을 쓰면 설치 내역과 상태를 볼 수 있어 한결 편리하다.

변경사항 적용에 성공한 후 끝낼 것인지 물어보기:
꾸러미를 설치하거나 제거한 후 시냅틱을 끝낼 것인지 질문을 한다.


'열 및 글꼴' 갈피
꾸러미에 대해 표시할 내용을 늘리거나 줄일 수 있다.  또 시냅틱 자체에서만 사용할 글꼴을 적용할 수도 있다.

'색상' 갈피
꾸러미 상태에 따라 색상을 지정할 수 있다. 색상 누르개를 눌러 골라주면 된다.

'파일' 갈피
중요도를 볼 때 더 앞에 있으면 좋을 부분이다. 설치를 위해 내려받은 꾸러미의 운명을 정해준다.

임시파일:
기본 값은 '다운로드한 패키지를 캐시에 남겨두기' (내려받은 꾸러미를 임시 저장해두기) 지만 설치 후 다운로드한 패키지 지우기('설치 후 내려받은 꾸러미 지우기')를 택하면 HDD공간을 절약할 수 있다. '더 이상 사용할 수 없는 패키지만 지우기' ('사용불가능한 꾸러미만 지우기')를 택하면 내려받은 꾸러미를 대부분 보관한다.
밑에 '캐시한 패키지 파일 지우기' ('임시 저장한 꾸러미 지우기')를 선택하면 그간 쌓여있던 꾸러미를 지워준다.

사용기록 파일
'사용기록 유지'는 꾸러미 설치/제거/판올림한 기록의 유효기간 없이 계속 보관을 뜻한다. '다음보다 오래된 기록 파일은 지우기' ('정한 날짜 이상 되면 기록 지우기')는 유효기간을 정해 해당 기간 이후에 설치/제거/판올림 기록은 삭제한다. 공간을 절약하려면 후자를, PC사용기록을 남겨서 보고 싶다면 전자를 택할 것.

'네트워크' 갈피

인터넷에 직접 연결 : 대부분 사용자는 이 값을 선택하면 문제없이 꾸러미를 받을 수 있다.  (기본값)

직접 프록시 설정: 인터넷을 프록시 서버를 통해 접속 한다면, 프록시 내용을 입력해 주어야 한다. 단 프록시 연결상태임에도 '인터넷에 직접 연결'을 택했을 때 꾸러미를 받아오는데 문제가 없다면 굳이 설정할 필요는 없다.

'배포판' 갈피

항상 높은 버전을 선호('항상 높은 판을 선호'): 판 숫자가 높은 새 꾸러미가 나오면, 이 꾸러미로 판올림을 사용자에게 안내한다.

항상 설치한 버전을 선호 ('항상 설치된 판을 선호'): 현재 판이 마음에 들어 더 높은 판을 쓸 생각이 없다면 이 것을 선택. 판올림 하자고 조르지 않는다. 현재에 만족할 뿐.

다음의 버전을 선호 ('특정 배포판을 선호'): 우분투는 매 배포판마다 꾸러미(무른모)의 판을 고정한다. 원하는 판을 선택해주면 그 판이 등장할 때 고정된 판으로 꾸러미(무른모) 판을 구성해 준다.

끝. 일주일 정도 붙잡고 썼습니다. 휴~ 중간에 내가 왜 이런 오타쿠같은 짓을 선택했나 싶었지만 시작한 것 끝을 맺어야 신뢰다 싶어 끝을 맺어 봅니다. 오류가 없게 하기 위해 노력했습니다만, 부족한 부분이 있으면 나중에 고쳐 쓰겠습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
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
글 보관함