Go 신입 개발자 기술면접

Go 신입 · 취준 (0~1년) 종합 3문항 조회수 20 · 2026-08-23 (일) 17:40:33
1 Go 기초 문법
Easy

Q. Go 언어에서 goroutine이 무엇인지 설명하고, 일반 함수 호출과 어떻게 다른지 말씀해주세요.

go 키워드를 사용했을 때 함수가 어떻게 실행되는지 생각해보세요.

A. 모범답안

goroutine은 Go 런타임에서 관리하는 경량 스레드로, go 키워드를 함수 앞에 붙여서 실행합니다. 일반 함수 호출은 동기적으로 실행되어 함수가 끝날 때까지 기다리지만, goroutine은 비동기적으로 실행되어 메인 함수가 기다리지 않고 다음 코드를 즉시 실행합니다. goroutine은 OS 스레드보다 훨씬 가볍고 수천 개를 동시에 실행할 수 있습니다. Go 런타임이 여러 goroutine을 적은 수의 OS 스레드에 스케줄링하여 효율적으로 관리합니다.

핵심 포인트
  • • 경량 스레드
  • • go 키워드로 실행
  • • 비동기 실행
  • • Go 런타임이 스케줄링
답변에 넣으면 좋은 키워드
goroutine 동시성 경량 스레드 비동기 go 키워드 스케줄링
실무에서는

웹 서버에서 여러 클라이언트 요청을 동시에 처리하거나 백그라운드 작업을 비동기로 실행할 때 사용합니다.

Follow-up 질문

goroutine을 사용할 때 메인 함수가 종료되지 않도록 하려면 어떻게 해야 할까요?

2 데이터베이스
Easy

Q. 관계형 데이터베이스에서 Primary Key와 Foreign Key의 역할과 차이점을 설명해주세요.

각 키가 테이블에서 어떤 역할을 하고, 데이터 무결성과 어떤 관계가 있는지 생각해보세요.

A. 모범답안

Primary Key는 테이블에서 각 행을 고유하게 식별하는 컬럼으로, 중복된 값이나 NULL 값을 가질 수 없습니다. Foreign Key는 다른 테이블의 Primary Key를 참조하여 두 테이블 간의 관계를 설정하는 컬럼입니다. Primary Key는 데이터의 고유성을 보장하고, Foreign Key는 참조 무결성을 유지하여 존재하지 않는 데이터를 참조하지 못하게 합니다. 예를 들어 주문 테이블의 user_id는 사용자 테이블의 id를 참조하는 Foreign Key가 됩니다.

핵심 포인트
  • • Primary Key는 고유 식별자
  • • Foreign Key는 다른 테이블 참조
  • • 참조 무결성 보장
  • • 테이블 간 관계 설정
답변에 넣으면 좋은 키워드
Primary Key Foreign Key 고유성 참조 무결성 관계 NULL
실무에서는

사용자와 주문, 게시글과 댓글처럼 연관된 데이터를 관리하고 데이터 일관성을 유지할 때 사용합니다.

Follow-up 질문

Foreign Key 제약조건을 설정하면 부모 테이블의 데이터를 삭제할 때 어떤 일이 발생하나요?

3 트러블슈팅
Medium

Q. Go로 작성한 웹 API 서버를 배포했는데, 몇 시간 후 서버가 응답하지 않고 멈춰있는 상황이 발생했습니다. goroutine을 사용하는 코드가 있는데 어떤 원인들을 의심해볼 수 있고, 어떻게 디버깅하시겠습니까?

goroutine이 계속 생성되거나 종료되지 않는 상황, 그리고 goroutine 간 통신 문제를 생각해보세요.

A. 모범답안

먼저 goroutine leak을 의심할 수 있는데, goroutine이 계속 생성되지만 종료되지 않아 메모리가 고갈되는 상황입니다. channel에서 데이터를 보내거나 받을 때 상대편이 없어서 영원히 blocking되는 deadlock 상황도 가능합니다. 디버깅을 위해 runtime.NumGoroutine()으로 실행 중인 goroutine 수를 모니터링하고, pprof를 사용해 goroutine 스택을 분석합니다. 또한 channel 사용 시 context나 timeout을 설정하여 무한 대기를 방지하고, defer로 channel을 적절히 닫아주는지 확인합니다. 로그를 추가하여 어느 goroutine에서 멈추는지 파악하는 것도 중요합니다.

핵심 포인트
  • • goroutine leak 가능성
  • • channel deadlock 확인
  • • pprof로 goroutine 분석
  • • timeout과 context 사용
답변에 넣으면 좋은 키워드
goroutine leak deadlock channel pprof runtime.NumGoroutine context timeout
실무에서는

운영 중인 서버에서 메모리 사용량이 계속 증가하거나 응답 지연이 발생할 때 goroutine 관리 문제를 진단하고 해결해야 합니다.

Follow-up 질문

goroutine leak을 예방하기 위해 코드 작성 시 어떤 패턴이나 원칙을 따르면 좋을까요?

댓글 0

로그인 후 댓글을 작성할 수 있습니다.

아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요!