배는 사람이나 짐 따위를 싣고 물 위로 떠다니도록 나무나 쇠로 만든 구조물을 말한다. 배의 원시적 형태는 나무를 묶어 만든 뗏목배, 통나무의 가운데 부분을 파낸 통나무배, 수피(獸皮) · 목피(木皮)를 이용한 가죽배 등이다.
삼면이 바다에 둘러싸이고 내륙에도 하천이 많은 우리나라는 일찍부터 배를 잘 만들어 이용했는데, 삼한시대에 이미 중국과 일본을 왕래하였다. 신라는 견당선(遣唐船)을 파견하여 문물을 교환하였고, 고려는 초기부터 대형 군선(軍船)과 조운선(漕運船)을 운영하였다. 조선은 판옥선(板屋船)과 거북선[龜船] 등을 개발하였고, 1883년부터 기선(機船)을 도입하여 세곡을 운송하였다.
이러한 배를 운항(運航)하는 사람을 뱃사공 혹은 사공이라 한다. 한자로는 고공(篙工), 선부(船夫), 선인(船人), 초공(梢工) 등으로 적는다. 배의 크기나 성격에 따라 뱃사공의 숫자나 명칭이 다르다. 때문에 뱃사공은 선원 모두를 지칭하기보다는 배의 운항을 책임지는 선장(船長)을 지칭하는 것으로 보아야 한다.
조선시대 전선(戰船)과 귀선에는 사공이 각각 여덟 명씩 있었다. 사공의 우두머리인 도사공과 돛을 다루는 사공, 키를 잡는 사공, 닻을 다루는 사공, 함선의 운행 전반에 관한 일을 맡아 보는 사공 등이다. 옹기를 실어 나르던 옹기배에는 3~4명의 사공이 있었다. 배의 치(키)를 잡고 항해 전반에 관한 사항을 결정하는 사공, 공과 함께 배의 운영 및 옹기 판매 등에 관여하는 웃사공, 사공의 명령에 따라 돛의 높낮이를 조정하는 돛잡이, 배의 살림을 맡아 식사를 준비하고 옹기 판매에 관여하는 화장 등이다. 한강의 뗏목은 보통 2명의 뗏사공으로 구성되었는데, 물길을 훤히 아는 노련한 사람으로서 여울과 유속, 각 지점의 물 특성 등을 꿰고 있는 앞사공(앞구잽이)과 뒷사공(뒷구잽이)으로 구성되었다. 경우에 따라서는 3명이 승선하기도 한다. 섬진강의 떼배에는 두 명의 사공이 운항에 관여한다. 떼배를 운항할 항로나 위험 등을 피하는 방법 등을 지시하는 앞잡이와 앞잡이의 신호에 따라 떼배 운항에 관여하는 뒷잡이이다.
이처럼 먼 거리로 배를 운항하는 사공은 바람과 물때를 이용한 항해 기술, 자연물과 별자리 등을 이용한 위치 확인, 구름이나 노을, 안개 등의 상태에 따른 기후 예측 등 배 운항 전반에 관한 지식을 갖추고 있어야 했다. 따라서 배를 관리하고 항해를 지휘할 수 있는 사공이 되기 위해서는 다양한 경험과 습득 지식이 필요하다.
큰 강이나 깊은 내에는 사람이나 짐 등을 실어나르는 나룻배가 있었다. 나루터는 규모에 따라 진(津) 또는 도(渡)라고 하였으며, 이에 배치된 나룻배를 진선(津船) 또는 도선(渡船)이라 하였다.
강을 끼고 있는 마을 사람들은 강을 건너 농사를 짓거나, 장보기 및 학생들의 통학 등에 나룻배를 이용하기도 하였다. 마을에서 공동으로 배를 장만하여 사공을 따로 두거나 배를 가진 개인이 배를 운영하기도 한다. 나룻배를 이용한 승객은 삯을 지불한다. 그런데 대개 승객은 같은 마을 주민이다. 마을 주민들은 따로 뱃삯을 내지 않고, 1년에 봄, 가을 두 차례에 일정한 양의 보리와 나락(벼)을 내는 것으로 뱃삯을 지불했다.
강이나 하천마다 교량이 가설되고 도로가 만들어진 요즘에는 떼배나 나룻배, 옹기배 등을 볼 수가 없다. 이에 따라 이를 운항하던 뱃사공도 볼 수가 없다. 오늘날에는 현대화된 기계배가 운항되고 있다. 기계는 현대화되었지만, 예측할 수 없는 자연에 순응하기 위해서는 여전히 선장(사공)의 다양한 경험 지식이 필요하다.